Parquet 파일

HanJu Han·2024년 12월 11일

ML 엔지니어링

목록 보기
7/8

Parquet 파일의 장점

1. 뛰어난 데이터 압축률

예를 들어, 다음과 같은 주식 거래 데이터가 있다고 가정해보죠:

날짜        종목    거래량    거래대금
2024-01-01  삼성전자  50,000   3,500,000,000
2024-01-01  SK하이닉스 30,000   2,100,000,000
...

이 데이터가 CSV 파일이라면 100MB를 차지한다고 할 때, Parquet으로 변환하면 약 20MB로 압축됩니다. 왜 이렇게 압축이 잘 될까요?

Parquet는 컬럼 기반 저장방식을 사용하기 때문입니다. '날짜' 컬럼만 모아서 저장하고, '종목' 컬럼만 모아서 저장하죠. 같은 타입의 데이터가 모여있으니 효율적으로 압축할 수 있습니다.

2. 빠른 쿼리 성능

예를 들어 "2024년 1월의 삼성전자 평균 거래량"을 구하고 싶다면:

CSV의 경우:

  • 모든 row를 읽어야 함
  • 100MB 전체를 메모리에 로드
  • 각 row마다 날짜와 종목을 확인

Parquet의 경우:

  • '날짜'와 '종목' 컬럼만 읽음
  • 20MB 중 약 5MB만 로드
  • 데이터가 이미 컬럼별로 정리되어 있어 빠른 검색

3. 스키마 저장

CSV는 다음과 같은 헤더만 저장:

date,symbol,volume,amount

Parquet는 더 자세한 메타데이터를 저장:

date: timestamp
symbol: string
volume: int64
amount: int64

실제 성능 비교를 시각화하면 다음과 같습니다:

성능 비교 (초)
    │
10  │   ██
    │   ██
 5  │   ██   ██
    │   ██   ██
 0  │   ██   ██
    └───────────
     CSV  Parquet

4. 분산 처리에 최적화

빅데이터 처리 시 여러 서버에서 동시에 데이터를 읽어야 할 때:

  • CSV: 전체 파일을 각 서버에 복사해야 함 (100MB x 서버 수)
  • Parquet: 필요한 컬럼만 각 서버에 분배 가능 (5MB x 서버 수)

이러한 장점들 때문에 특히 대규모 데이터 분석이나 머신러닝 파이프라인에서 Parquet 포맷을 선호합니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글