湖仓表格式 — 从元数据理解 Apache Iceberg
Apache Iceberg 표를 Spark 4.1·pyiceberg·DuckDB 로 함께 쓰고 읽으며, metadata.json 에서 데이터 파일까지 이어지는 목록 나무와 스냅샷, JDBC 카탈로그의 원자적 교체, 필드 ID 로 안전해지는 스키마 진화, 숨은 파티셔닝과 파티션 진화, 타임트래블·롤백·태그·브랜치, 낙관적 동시성과 잃어버린 갱신, copy-on-write 와 merge-on-read, 압축·스냅샷 만료·고아 파일 정리까지 다룹니다. 모든 판정은 실제 metadata(스냅샷 사슬·스펙 ID·삭제 파일 종류·파일 수)로 합니다. SQL 과 파이썬을 쓸 줄 알고 Spark 로 파일을 써 본 분을 위한 과정입니다.
중급 · 레슨 27 · 实验 9
커리큘럼
表格式与元数据树
目录(Catalog)
- 目录是把一个名字连到一个元数据文件的原子指针 reading
- Spark 与 pyiceberg 共用一个目录,重命名表,并找回已删除的表 lab
- 测验:目录 quiz
模式演进与列 ID
- 改了列名旧文件照样能读,原因在列 ID reading
- 添加、重命名、放宽、删除再添加列 — 一个文件都不重写 lab
- 测验:模式演进与列 ID quiz
隐藏分区与分区演进
- 分区是规则而不是列 — 隐藏分区与分区演进 reading
- 把按月分区的表改成按天 — 旧文件保持不动 lab
- 测验:隐藏分区与分区演进 quiz
时间旅行、回滚、标签与分支
并发写入与乐观并发
- 无锁并发写入 — 乐观并发保护什么、不保护什么 reading
- 两个写入者同时提交同一张表 — 谁赢、留下什么、丢了什么 lab
- 测验:并发写入与乐观并发 quiz