핵심 요약
타다의 Parquet 활용 사례에서 저장 용량을 대폭 줄이고 처리 속도를 크게 향상시켰습니다.
구현 방법
- Apache Spark를 활용한 JSON 로그를 Parquet로 저장하는 데이터 파이프라인 구성
- 저장 용량 및 성능 개선을 위한 Parquet 설정 최적화: parquet.enable.dictionary, parquet.block.size(32MB), parquet.page.size(2MB), parquet.dictionary.page.size(8MB), parquet.string.min-max-statistics(true)
- top-level 컬럼 프루닝과 predicate pushdown의 효과를 확인하고, 필요한 경우 상위 레벨 컬럼으로 재구성
주요 결과
- 저장 용량: gzipped JSON 23GB → Parquet 6GB(약 74% 감소)
- 쿼리 성능: 의심스러운 로그인 탐지 쿼리 15분→약 30초로 30배 이상 가속
- 세부 로그 처리: 한 사람 로그 조회/처리 시간 5분→약 30초로 대폭 단축
- 추가 이점: Parquet의 string min-max 통계와 row group skipping으로 추가 성능 향상, 네트워크 I/O 감소에 따른 처리 속도 개선
