- 저장은 "어디에 두느냐"가 아니라 **"읽는 쪽이 빠르고 싸게 읽도록 미리 배치하느냐"**의 문제다.
- **파티션 키는 가장 자주 필터하는 컬럼(보통 날짜)**으로. 너무 잘게 쪼개면 small files problem이 생긴다.
- 포맷의 기본값은 Parquet + Snappy — 열 기반, 압축률, 분할 가능의 삼박자.
- Gzip으로 압축한 CSV/JSON은 분할 불가능해 병렬 읽기가 막힌다. "압축 여부"보다 "분할 가능한가"가 중요.
- SageMaker 입력 모드는 File / Pipe / FastFile. 데이터가 디스크보다 크면 Pipe·FastFile로 GPU를 굶기지 않는다.
같은 데이터라도 어떻게 저장하느냐에 따라 쿼리 비용이 수십 배 차이 나고 학습 속도가 몇 배 갈린다.
파티셔닝은 데이터를 특정 키(보통 날짜)로 폴더로 쪼개 저장하는 것이다. 쿼리가 WHERE 조건으로 필요한 파티션만 읽으면 나머지는 스캔하지 않는다 — **파티션 프루닝(partition pruning)**이다.