목록 보기
Apache Spark에서 컬럼 기반 저장 포맷 Parquet(파케이) 제대로 활용하기
백엔드

Apache Spark에서 컬럼 기반 저장 포맷 Parquet(파케이) 제대로 활용하기

타다
타다
2018년 5월 24일

두줄요약

Spark 로그 저장 포맷을 JSON에서 Parquet로 전환하고 인코딩 옵션을 조정했습니다. 저장 용량을 74% 줄이고 쿼리 성능을 10~30배 높였습니다.

문제 상황

  • gzip 압축 JSON 원본 로그 직접 처리에 따른 과도한 데이터 읽기와 분석 I/O 비용
  • Spark용 저장 포맷을 Parquet로 전환했지만 초기 저장 용량 개선 폭의 기대치 미달

원인 분석

  • 많은 익명 사용자 ID로 인한 dictionary 크기 증가와 plain encoding 폴백
  • nested field의 column pruning·predicate pushdown 미지원
  • 이전 Parquet 파일 호환성 문제에 따른 binary 문자열 min-max 통계 비활성화

해결 방법

  • block size 축소와 dictionary page size 확대로 dictionary encoding 적용 범위 확보
  • 빈번한 predicate 대상 컬럼의 top level 이동
  • parquet.string.min-max-statistics 활성화로 row group skipping 적용

성능/운영 포인트

  • 102GB JSON 로그 기준 gzip 23GB에서 Parquet 6GB로 74% 저장 용량 절감
  • 네트워크 I/O 감소와 컬럼 선별·조건 푸시다운으로 쿼리 처리 성능 10~30배 향상
  • Spark의 Parquet 구현 및 버전별 지원 기능 확인 필요

다음 읽기

#S3 주제를 이어서 읽기

VCNC가 Hadoop대신 Spark를 선택한 이유

MapReduce 중심 분석 시스템을 Spark·Zeppelin·AWS 기반으로 점진 전환했습니다. 분석 시간을 약 8시간에서 1시간으로 줄이고 관리 부담과 대시보드 운영 복잡도를 낮췄습니다.

타다
타다
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...