
백엔드
Hive에서 Iceberg로: 데이터 반영 속도 12배 향상의 비밀
두줄요약
Hive 기반 전체 재작성 ETL의 한계를 Iceberg와 Flink로 개선한 사례를 소개했습니다. 체크포인트, 2PC, 파티셔닝 최적화로 데이터 반영 속도를 12배 높였습니다.
문제 상황
- HBase 스냅숏과 Hive 기반 ETL에서 전체 데이터 rewrite 구조로 인해 변경 반영 비용과 시간이 데이터 규모에 비례해 증가
- 1시간 주기 반영으로는 상품 데이터 최신성을 보장하기 어려웠고, 공용 Hadoop 리소스 부족까지 겹쳐 지연 반복
원인 분석
- 기존 Hive 방식은 디렉터리 기반 전체 덮어쓰기 중심이라 증분 처리에 부적합
- 스트리밍 환경에서 최신성 보장, 정확히 한 번 처리, 장애 복구 상태 관리가 함께 필요
- 대규모 파일 병합과 삭제 파일 누적으로 읽기 성능 저하, HDFS I/O 병목 발생
해결 방법
- Apache Iceberg 도입으로 row 단위 upsert/delete가 가능한 테이블 형식으로 전환
- Apache Flink와 체크포인트, 2PC를 결합해 최신성 보장과 end-to-end exactly-once 처리 구현
- ID 기반 파티셔닝, 커스텀 트리거, 메모리·타임아웃·압축 최적화로 운영 병목 완화
적용해볼 점
- 증분 반영이 필요한 대용량 ETL은 전체 재작성보다 테이블 형식과 스트리밍 엔진의 조합을 우선 검토
- 상태 관리와 정확히 한 번 처리가 중요한 경우 체크포인트와 커밋 경계를 함께 설계
- 읽기 성능과 운영 부하를 고려해 파티셔닝, 파일 최적화, 외부 시스템 부하 제한을 병행