Parquet 파일의 장점
예를 들어, 다음과 같은 주식 거래 데이터가 있다고 가정해보죠:
날짜 종목 거래량 거래대금
2024-01-01 삼성전자 50,000 3,500,000,000
2024-01-01 SK하이닉스 30,000 2,100,000,000
...
이 데이터가 CSV 파일이라면 100MB를 차지한다고 할 때, Parquet으로 변환하면 약 20MB로 압축됩니다. 왜 이렇게 압축이 잘 될까요?
Parquet는 컬럼 기반 저장방식을 사용하기 때문입니다. '날짜' 컬럼만 모아서 저장하고, '종목' 컬럼만 모아서 저장하죠. 같은 타입의 데이터가 모여있으니 효율적으로 압축할 수 있습니다.
예를 들어 "2024년 1월의 삼성전자 평균 거래량"을 구하고 싶다면:
CSV의 경우:
Parquet의 경우:
CSV는 다음과 같은 헤더만 저장:
date,symbol,volume,amount
Parquet는 더 자세한 메타데이터를 저장:
date: timestamp
symbol: string
volume: int64
amount: int64
실제 성능 비교를 시각화하면 다음과 같습니다:
성능 비교 (초)
│
10 │ ██
│ ██
5 │ ██ ██
│ ██ ██
0 │ ██ ██
└───────────
CSV Parquet
빅데이터 처리 시 여러 서버에서 동시에 데이터를 읽어야 할 때:
이러한 장점들 때문에 특히 대규모 데이터 분석이나 머신러닝 파이프라인에서 Parquet 포맷을 선호합니다.