테이블 포맷이란 무엇인가 (Parquet vs Iceberg)
Delta Lake vs Iceberg 2026: Which Table Format Wins? — 미상 (실전 프로덕션 경험 기반 블로그, 2026) What Are Table Formats and Why Do They Matter? (pp.1-2)
이 모듈을 다 읽으면
- 파일 포맷(Parquet)과 테이블 포맷(Iceberg)이 서로 다른 layer를 담당한다는 것을 설명할 수 있다
- 테이블 포맷이 추가하는 4가지 핵심 기능(ACID, 타임트래블, 스키마 진화, 파티션 관리)을 나열할 수 있다
- 이 카테고리(Iceberg)와 Delta Lake의 관계가 '경쟁 상품 비교'가 아니라 '비교를 통한 이해 보조'임을 이해한다
Parquet은 컬럼 지향 저장을 담당하는 파일 포맷일 뿐 트랜잭션·스키마 변경 개념이 없다. Iceberg 같은 테이블 포맷은 그 위에 ACID 트랜잭션, 타임트래블, 스키마 진화, 파티션 관리를 얹어 '파일 더미'를 실제 데이터베이스 테이블처럼 동작하게 만든다. 이 모듈은 원문이 Delta Lake와 Iceberg를 나란히 다루지만, 이 학습 프로그램의 스코프는 Iceberg 자체이므로 Delta Lake는 '왜 이런 차이가 나는가'를 설명하는 보조 비교 대상으로만 취급한다.
Parquet은 파일 포맷일 뿐이다
Parquet은 데이터를 컬럼 지향(columnar)으로 디스크에 저장하는 방식을 정의하는 파일 포맷이다. 압축, 인코딩, 컬럼 프루닝(필요한 컬럼만 읽기)을 담당하지만, 그 자체로는 트랜잭션이라는 개념이 없다. 즉 Parquet 파일 여러 개가 한 폴더에 놓여 있어도, 그 폴더가 지금 이 순간 '테이블의 정확한 상태'를 나타낸다는 보장이 없다. 두 프로세스가 동시에 파일을 추가하거나, 쓰기 도중 장애가 나면 어떤 파일이 유효한 데이터이고 어떤 파일이 반쯤 쓰인 쓰레기인지 구분할 방법이 파일 시스템 레벨에는 없다.
이것이 원문이 강조하는 핵심 비유다: Parquet은 벽돌이고, 테이블 포맷은 그 벽돌들을 하나의 건물로 만드는 설계도다. 벽돌만 쌓아 놓으면 그냥 폴더 안의 파일 더미이고, 쓰기 작업 중 무엇이 잘못되지 않기를 기도하는 수밖에 없다.
핵심 포인트
- Parquet은 컬럼 지향 저장·압축·인코딩·컬럼 프루닝을 담당하는 파일 포맷이다
- Parquet 자체에는 트랜잭션, 업데이트, 삭제, 스키마 변경이라는 개념이 없다
- 테이블 포맷 없이는 '파일 폴더'가 있을 뿐 '신뢰할 수 있는 테이블'은 없다
테이블 포맷이 추가하는 4가지 핵심 기능
Iceberg나 Delta Lake 같은 테이블 포맷은 Parquet(혹은 ORC, Avro) 파일 위에 얇은 메타데이터 계층을 얹어 다음 4가지를 제공한다.
첫째, ACID 트랜잭션 — 동시에 여러 쓰기가 들어와도 데이터가 깨지지 않도록 원자성을 보장한다. 둘째, 타임트래블 — 과거 특정 시점의 테이블 상태를 그대로 조회할 수 있다. 셋째, 스키마 진화 — 컬럼을 추가해도 이미 만들어진 다운스트림 소비자(리포트, 다른 파이프라인)가 깨지지 않는다. 넷째, 파티션 관리 — 쿼리가 필요한 데이터만 읽도록 도와준다.
이 4가지가 정확히 어떤 메커니즘으로 구현되는지는 포맷마다 다르다. 뒤따르는 모듈들에서 Iceberg가 이 4가지를 각각 어떤 자료구조와 알고리즘으로 실현하는지 깊이 다룬다.
핵심 포인트
- 테이블 포맷은 ACID 트랜잭션, 타임트래블, 스키마 진화, 파티션 관리 4가지를 공통으로 제공한다
- 같은 4가지 기능이라도 Iceberg와 Delta Lake는 서로 다른 메커니즘으로 구현한다
- 메달리온 아키텍처처럼 데이터 레이크에 신뢰성을 요구하는 설계라면 테이블 포맷이 사실상 필수다
이 모듈에서 다루는 범위
원문은 Delta Lake와 Apache Iceberg를 대등하게 비교하는 블로그다. 그러나 이 학습 프로그램의 기술 카테고리는 Iceberg 하나뿐이며, Delta Lake는 스코프 밖이다. 따라서 이어지는 모듈들은 Iceberg 자체의 아키텍처·기능·생태계를 깊이 파고드는 데 집중하고, Delta Lake는 '왜 Iceberg가 이런 설계를 택했는가', '같은 문제를 다른 방식으로 풀면 어떤 트레이드오프가 생기는가'를 이해하기 위한 대조군으로만 짧게 언급한다. Delta Lake 자체의 세부 동작(트랜잭션 로그 포맷, OPTIMIZE 내부 구현 등)을 암기할 필요는 없다.
핵심 포인트
- 이 학습 프로그램의 카테고리는 Iceberg이며 Delta Lake는 비교 맥락으로만 다룬다
- Delta Lake 세부 사항을 암기 대상으로 삼지 않는다 — Iceberg 이해를 돕는 대조군으로만 활용한다