Lakehouse-Essential의 마지막 7단계. 앞선 여섯 단계에서 익힌 축(메타데이터 구조·트랜잭션·진화·유지보수·카탈로그)으로 Iceberg·Delta Lake·Hudi·Paimon을 나란히 비교합니다. _delta_log 로그 리플레이, Hudi timeline과 COW/MOR, Paimon의 LSM·changelog까지 각 포맷의 내부를 ...
Iceberg 테이블의 '현재'를 쥐고 있는 카탈로그를 파고듭니다. 테이블 이름을 metadata.json 포인터로 매핑하고 커밋의 원자적 CAS를 실제로 수행하는 카탈로그의 역할, Hive·Hadoop·JDBC·Glue·Nessie로 파편화됐던 구현을 HTTP API 스펙 하나로 표준화한 REST Catalog와 그 커밋 프로토콜, 그리고 RBAC·...
돌아가는 Iceberg 테이블과 건강한 Iceberg 테이블을 가르는 운영 지식을 다룹니다. 스트리밍 쓰기가 양산하는 작은 파일을 rewrite_data_files(bin-pack·sort·z-order)로 합치고, 커밋마다 쌓이는 스냅샷을 expire_snapshots로 만료시켜 파일 삭제로 잇고, 고아 파일 정리와 매니페스트 리라이트까지 포함한 정...
Iceberg가 Hive 테이블과 결정적으로 갈라지는 지점 — 재작성 없는 진화를 파고듭니다. 컬럼을 이름이 아닌 고유 ID로 추적해 add/drop/rename/reorder/타입 승격을 안전하게 만드는 스키마 진화, 파티션을 물리 경로가 아닌 컬럼에서 유도되는 메타데이터로 만드는 숨은 파티셔닝(transform), 그리고 월→일 같은 파티션 스펙 ...
Iceberg의 커밋은 새 metadata.json을 쓰고 카탈로그의 포인터를 compare-and-swap으로 교체하는 한 동작입니다. 파일은 불변이고 포인터만 상태이기에 이 교체 하나가 원자성의 전부이며, 그 위에서 스냅샷 격리·시간여행(VERSION AS OF)·롤백·optimistic concurrency의 충돌 감지와 재시도가 성립하는 원리를...
Iceberg의 모든 능력이 나오는 뿌리를 해부합니다. 카탈로그가 가리키는 메타데이터 파일(vN.metadata.json)에서 매니페스트 리스트(snap-*.avro), 매니페스트(*.avro), 데이터 파일로 이어지는 계층 구조와, 커밋이 새 스냅샷을 만들며 매니페스트를 재사용하는 방식, 그리고 파티션 요약과 컬럼 min/max 통계가 파일 list...
오브젝트 스토리지에 Parquet를 쌓는 것만으로는 테이블이 되지 않습니다. 디렉터리와 파일 목록에 의존하는 Hive 테이블 모델이 원자성·일관성·성능에서 무너지는 지점을 구체적인 실패 시나리오로 짚고, 파일 집합 위에 스냅샷·스키마·통계라는 메타데이터 계층을 얹어 '테이블'을 만드는 오픈 테이블 포맷의 발상, 그리고 그것이 레이크하우스를 성립시키는 ...
Data-Engineering-Essential 오버뷰의 '저장' 단계에서 개념만 소개한 오픈 테이블 포맷을 Apache Iceberg 중심으로 파고드는 심화 스핀오프. 문제의식부터 메타데이터·매니페스트 구조, ACID·스냅샷·시간여행, 파티션/스키마 진화, compaction·유지보수, REST Catalog·거버넌스, 그리고 Iceberg vs D...