发布时间:2022-09-22 04:00
在业界的数据湖方案中有 Hudi、Iceberg 和 Delta 三个关键组件可供选择。
Iceberg 官网中是这样定义的:
Apache Iceberg is an open table format for huge analytic datasets
即 Iceberg 是大型分析型数据集上的一个开放式表格式。通过该表格式,将下层的存储介质(HDFS、S3、OSS等)、文件格式(Parquet、Avro、ORC等)与上层计算引擎(Flink、Spark、Presto、Hive等)进行解耦,如下图所示。
计算与存储的解耦给我们带来了更多的灵活性,在计算引擎上有了更多的选择,可以根据实际的需求选择不同的计算引擎。通过表格式屏蔽了下层的存储细节,对上层引擎呈现的都只是一张 Iceberg 表。
为了便于理解 Iceberg 的几个重要的特性,我们先简单介绍下 Iceberg 的文件的组织形式。
如下图所示,Iceberg 文件组织分为四层,分别为Metadata、Snapshot、Manifest、File。