世界真的是个圈,绕来绕去最后还是回到了点。
Apache Iceberg 是一个面向数据湖(Data Lake)的大规模分析表格式(Open Table Format),最初由 Netflix 于 2017 年开发,并于 2018 年捐赠给 Apache Software Foundation,现已成为 Apache 顶级项目(Top-Level Project)。
它解决了传统 Hive 表和数据湖在大数据环境中的许多问题,例如:
- 元数据过大
- 查询速度慢
- 小文件过多
- 无法支持事务
- 难以进行 Schema 演进
- 无法方便地实现 Time Travel
目前 Iceberg 已成为现代 Lakehouse 架构中最流行的表格式之一。
有关大数据表的很多设计理念都来自于 Google 的一篇论文:Bigtable: A Distributed Storage System for Structured Data
这篇论文发布在 2006 年,距现在已经 20 年了,但大表格是数据分析的基础。
bigtable-osdi06.pdf (216.0 KB)
Apache Iceberg 的设计模式也是针对此类大表格进行的。
使用的是 Java ,整体编译过程第一次会耗时 1.5 个小时。
里面的依赖挺多。

