대용량의 데이터를 수집하는 야간/시간별 데이터 요약 및 통계를 수행하는 많은 Python ETL 스크립트를 교체하려고합니다. 내가 달성하고 싶은 무엇방대한 야간/시간별 하이브/MySQL 데이터 처리를위한 스프링 배치
는
- 견고성이다 - 실패한 작업/단계가 자동으로 다시 시작해야합니다. 어떤 경우에는 대신 복구 단계를 실행하고 싶습니다.
- 프레임 워크가 충돌에서 복구 할 수 있어야합니다. 나는 여기에 약간의 끈기가 필요하다고 생각한다.
- 모니터링 - 작업/단계의 진행 상태를 모니터링 할 수 있어야하며 성능과 관련하여 기록 및 통계를 확인할 수 있어야합니다.
- 추적 가능성 - 실행 상태를 이해할 수 있어야합니다.
- 수동 개입 - API/UI/명령 줄에서 작업을 시작/중지/일시 중지 할 수 있습니다.
- 단순함 - 대체품을 소개 할 때 제 동료가 화를 잘 내고 싶지 않습니다 ... 간단하고 이해하기 쉬운 API가 있어야합니다.
현재 스크립트는 다음을 수행 : 많은 기계에서
- 수집 텍스트 로그 및 Hadoop DFS로 밀어 넣습니다. 앞으로이 단계에서 Flume을 사용할 수 있습니다 (http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/ 참조).
- 데이터에 대해 Hive 요약 쿼리를 수행하고 새 하이브 테이블/파티션에 삽입 (덮어 쓰기)합니다.
- 새 요약 데이터를 파일로 추출하고 MySql 테이블에로드 (병합)하십시오. 이것은 나중에 온라인 보고서에 필요한 데이터입니다.
- 새로 추가 된 MySql 데이터 (MySql 테이블에서)에 대한 추가 조인을 수행하고 데이터를 업데이트하십시오.
제 아이디어는 스크립트를 스프링 배치로 바꾸는 것입니다. 나는 또한 Scriptella을 들여다 보았다. 그러나이 경우에는 너무 간단하다고 나는 믿는다.
스프링 - 일괄 처리 (주로 오래된 게시물)에서 나쁜 인상을 봤기 때문에 여기에 몇 가지 입력을 얻으려고합니다. 나는 스프링 - 배치 (spring-batch)와 하이브 통합 (Hive integration)에 대해서도 많이 보지 못했으며, 이는 번거로운 일이다.
이 스크립트는 죄에서 태어났습니다.나도 알아, 나는 그들을 썼다 : – Yossale
당신의 유산을 위해 너를 때리기 @yossale –
나는 그것을 고쳐야 만하는 사람이 아니다. .. :) – Yossale