실제로 쓰는 결정 트리
등장인물은 앞에서 다 만났어. 이제 내가 실제로 쓰는 결정 트리를 줄게 — 위에서부터 순서대로 대 보면 돼:
- Downstream 파이프라인이 읽어? → Parquet (partitioned, zstd). 여기서 답의 90% 가 끝나.
- 데이터가 이미 DB 안에 살아? → 파일로 꺼내지 마. Warehouse 안에서 SQL/dbt 로 계산해.
- 받는 사람이 Excel 사용자야? → 경계에서만 CSV, sidecar schema 와 함께. 파이프라인 stage 로는 만들지 말고.
- Nested/log 모양 데이터야? → newline-delimited JSON (NDJSON / JSONL). gzip 또는 zstd 로 압축.
- Notebook 단계 사이 단기 scratch? → Arrow IPC (Feather). 로드가 제일 빠른 건 Parquet 의 디코딩 단계를 건너뛰기 때문이지, 압축을 건너뛰기 때문이 아냐. Pandas 의
df.to_feather()로 가면 돼. 이쪽은 여전히 LZ4 frame 이 기본이라 (어떤 40만 행 프레임에선 6.5MB 대 15.2MB 였어 — 비율은 본인 컬럼마다 달라)compression='uncompressed'를 쓸 일이 거의 없어. 대신 raw PyArrow 로 내려갈 거면 Track 3 의 Arrow 레슨부터 읽어 — 그 경로는 기본값이 반대야. - 작은 데이터인데 diff 로 보고 싶어? → version control 안의 CSV. ~10MB 넘어가면 Parquet 으로 갈아타.
HDF5, Avro, ORC, Iceberg, Delta Lake, Hudi 는?
빠르게 훑자:
- HDF5 — 과학 데이터, 계층 구조, modern stack 이전 세대. 물리학과 유전체학엔 아직 살아 있어. 새 분석 작업엔 고르지 마.
- Avro — row-oriented, Kafka 파이프라인의 단골. 스트림엔 괜찮아. At-rest 분석은 여전히 Parquet 이고.
- ORC — Hadoop 시대의 columnar 경쟁자. 이미 ORC 세상에 살고 있는 게 아니라면 Parquet 을 골라.
- Iceberg / Delta Lake / Hudi — Parquet 위에 얹는 테이블 포맷. ACID 트랜잭션, schema evolution, time travel 을 더해 줘. Warehouse 급 lakehouse 엔 꼭 필요하고, 머신 한 대짜리 파이프라인엔 과해. 파일 트리로 버티는 단계를 넘어서면 그때 배워.