一、架构设计

Iceberg 官网中是这样定义的:

1
Apache Iceberg is an open table format for huge analytic datasets

Iceberg 是大型分析型数据集上的一个开放式表格式。通过该表格式,将下层的存储介质(HDFS、S3、OSS等)、文件格式(Parquet、Avro、ORC等)与上层计算引擎(Flink、Spark、Presto、Hive等)进行解耦。

二、阅读环境准备

三、Kernel

3.1. Table Format

3.2. Table

Iceberg 作为一个开放的 Table format,从设计之初就有一个高度抽象的设计,而 Table 是顶层的核心概念之一。

四、API

Iceberg 作为 HDFS 和S3 等存储系统之上的数据组织框架,提供了丰富的 API 接口。

4.1. Catalog

Iceberg 中, Catalog 和 SessionCatalog 用于管理 Iceberg 表和相关元数据。

4.2. Action

Iceberg 中, ActionsProvider 用于扩展 Iceberg 库,向 Iceberg 表添加自定义的操作和功能。

五、User Interface

5.1. Engines

5.2. 云原生

5.2.1. Kubernetes