1️⃣ Partquet 이란?
데이터를 열(column) 단위로 저장하는 고성능 파일 포멧
즉, csv나 excel처럼 데이터를 행 단위로 쭉 저장하는게 아니라
각 열별로 데이터를 묶어서 저장하는 구조
2️⃣ 엑셀 데이터를 partquet 형태로 바꿔서 불러오는 이유
엑셀형태에서는 데이터의 용량이 클 경우 로드하는데 오래 걸릴 수 있습니다.
그래서 속도,용량,처리 효율면에서 더 좋은 Parquet을 사용하는 겁니다.
3️⃣ Parquet이 구조적으로 빠른 이유
1. 열 기반(Columnar) 저장 구조
- 데이터를 행(row)이 아니라 열(column)단위로 저장
- 필요한 컬럼만 선택적으로 읽을 수 있어 불필요한 데이터 I/O를 최소화
- 따라서 I/O 속도(파일을 읽고 쓰는 속도)가 빠름
2. 필요한 컬럼만 읽는 “Column Pruning”
- CSV: 파일 전체인 모든 열을 읽고 나서 city만 추출해야 함 → 느림
- Parquet: city 열 블록(column chunk)만 읽음 → 빠름
- 분석할 때 필요한 열만 로딩을 하므로 메모리 절약과 속도를 향상 시킬 수 있다
3. 고성능 압축 구조 (Encoding + Compression)
- 단순한 zip 압축이 아니라, 열 단위로 특화된 압축 알고리즘을 적용
- Dictionary Encoding: 중복된 문자열을 숫자로 치환
- Run-Length Encoding: 동일 값 반복 시 “값 + 횟수”로 저장
- 👉 파일 크기 ↓, 메모리 사용량 ↓ (예: 1GB CSV → 150MB Parquet 가능)
4. Row Group 구조로 병렬 처리 가능
- Parquet 파일은 내부적으로 여러 Row Group으로 나뉨
- 각 그룹이 독립적으로 읽히므로 멀티코어 CPU 병렬 처리에 유리
- 예: Spark나 DuckDB에서 여러 Row Group을 동시에 읽음 → 대용량 데이터에 강함
5. 메타데이터 기반 “필터 푸시다운(Filter Pushdown)”
- 각 컬럼마다 min, max, null count 등의 통계 정보를 저장
- 쿼리 실행 시, 조건에 맞지 않는 Row Group은 아예 스킵
→ 예: WHERE age > 30이면 max(age)=28인 블록은 읽지 않음 - 쿼리 최적화 효과로 속도 대폭 향상
