Apache Iceberg​ 数据湖表格式中的核心术语

Apache Iceberg​ 数据湖表格式中的核心术语 Data Files (数据文件)定义这是 Iceberg 表中实际存储业务数据的文件。位置通常位于表的数据存储目录下的 data目录中。格式常见的格式是 Parquet以 .parquet结尾例如图片中的例子 00000-0-root_…_0025-00001.parquet。特性每次对表进行更新如插入、删除、修改操作都会产生新的数据文件。Snapshot (表快照)定义快照代表了表在某个特定时刻的完整状态。内容每个快照包含一个清单列表Manifest List这个清单列出了当时表所包含的所有数据文件Data Files。作用就像是数据库在某个时间点的备份视图查询引擎可以通过快照确定要读取哪些数据文件。Manifest List (清单列表)定义这是一个元数据文件它列出了构建当前快照Snapshot所需的所有清单文件Manifest File。存储内容每个 Manifest File 的路径。每个 Manifest File 存储的数据文件的分区范围。增加或删除了多少个数据文件等信息。作用在查询时它可以帮助快速过滤掉不需要扫描的文件从而加速查询。Manifest File (清单文件)定义这也是一个元数据文件它列出了组成快照Snapshot的具体数据文件Data Files的详细信息。存储内容每行描述一个数据文件数据文件的状态新增、删除等。文件路径。分区信息。列级别的统计信息如每列的最大值、最小值、空值数等——这是 Iceberg 高效剪枝Pruning的关键。文件大小和行数。格式通常以 Avro 格式存储以 .avro结尾例如图片中的例子 8138fce4-40f7-41d7-82a5-922274d2abba-m0.avro。作用查询引擎在扫描表时会利用这里的列统计信息跳过不相关的数据文件例如查询条件要求年龄30而某文件统计显示年龄最大值25则该文件可直接跳过。总结关系链这四个术语构成了一个自下而上的层级结构用于管理表的版本和数据Data Files (数据文件)​ →被记录在 Manifest File (清单文件)​ 中 →多个 Manifest File 被记录在 Manifest List (清单列表)​ 中 →最终构成 Snapshot (表快照)。