
ETL 성능 향상을 위한 몇 가지 팁들
두줄요약
HiveQL과 RDBMS 쿼리 구조를 개선해 ETL 처리 성능을 높이는 방법을 소개했습니다. 데이터 검증, 로그, 스케줄링을 통한 안정적인 ETL 운영 방식도 정리했습니다.
문제 상황
- 대규모 ETL의 지연으로 인한 목표 시간 미준수와 다른 작업 자원 점유
- HiveQL·RDBMS 쿼리의 비효율적 필터링·조인·인덱스 사용
해결 방법
- Hive 조건절의 UDF를 기본 함수로 교체해 파티션 프루닝 활용
COUNT(DISTINCT)를 중간GROUP BY로 분리해 다수 리듀서에 작업 분산- 큰 테이블의 조인 순서 조정, OUTER JOIN 전 파티션 필터 적용, 필요한 컬럼만 조회
성능/운영 포인트
- ETL 대량 처리에서 불필요한 인덱스와 함수 기반 WHERE 조건 최소화
- OR 조건의 함수·개별 쿼리·UNION 전환 검토
- 샘플 데이터 적재, 소스 데이터·시스템 검증, 실행 시간·오류·행 수 로그 유지
적용해볼 점
- ETL 개발 시작 전 기본 키·데이터 관계·누락 데이터·자료형 확인
- 소스 로드와 최종 적재 지점의 불일치 비교로 데이터 누락·중복 원인 분리
- 작업 시기와 자원 효율을 고려한 ETL 스케줄링



