【2】数据湖架构中 Iceberg 的核心特性

Apache Iceberg是一种开放式表格式,用于大规模分析数据集,提供ACID事务性和Schema演化功能。它解耦了计算与存储,支持多种计算引擎和存储介质。Iceberg的文件组织包括Metadata、Snapshot、Manifest和File,确保数据一致性。其特色包括行级更新、隐藏分区、时间旅行和快照,允许灵活的分区调整和历史数据查询。此外,Iceberg的强Schema约束避免了数据不匹配问题,增强了数据管理的灵活性和查询性能。

在业界的数据湖方案中有 Hudi、Iceberg 和 Delta 三个关键组件可供选择。

一、Iceberg 是什么?

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 的文件的组织形式。

如下图所示,Iceberg 文件组织分为四层,分别为Metadata、Snapshot、Manifest、File。

  • Metadata 文件:该文件记录了最新的快照信息和历史的快照记录。并且记录了最新的 Schema 信息。
  • Snapshot 文件(图中Snap-x):由于 Iceberg 基于 MVCC(多版本并发控制) 的设计理念,每次 Commit 都会生成一个 Snapshot, 该 Snapshot 是当时表的全局快照,即选定某个快照读取时,读到的是全量数据。Snapshot 文件记录了历史的 Manifes
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值