什么是 Apache Iceberg?
Apache Iceberg 是一种分布式、社区驱动、遵循 Apache 2.0 许可证、100% 开源的数据表格式,有助于简化数据湖中存储的大型数据集的数据处理。数据工程师之所以选择 Apache Iceberg,是因为它在任何规模下都快速、高效、可靠,并能记录数据集随时间的变化。Apache Iceberg 可以轻松与 Apache Spark、Apache Flink、Apache Hive、Presto 等主流数据处理框架集成。
使用 Apache Iceberg 有哪些优势?
- 熟悉的SQL - 任何熟悉结构化查询语言 (SQL) 的人都可以构建数据湖并执行大多数数据湖操作,而无需学习新的语言。
- 数据一致性 - 提供数据一致性,确保任何读取和写入数据的用户都能看到相同的数据。
- 数据结构 - 轻松更改数据结构(也称为模式演变),这意味着用户可以在不破坏底层数据的情况下添加、重命名或删除数据表的列。
- 数据版本控制 - 提供数据版本控制支持,允许用户跟踪数据随时间的变化。这启用了时间旅行功能,使用户可以访问和查询数据的历史版本,并分析更新和删除之间数据的变化。
- 跨平台支持 - 支持各种不同的存储系统和查询引擎,包括 Apache Spark、Apache Hive 和 Presto。
- 增量处理 - 支持增量处理,允许用户仅处理自上次运行以来发生变化的数据,也称为 CDC(变更数据捕获)。这有助于提高数据处理的效率和性能。
Apache Iceberg 有哪些常见用例?
- 覆盖大规模分析数据湖 - 使用 ACID 功能分离读取器层和写入器层
- 流式数据提取 - 通过文件大小管理和文件合并,避免在流式用例中经常发生的过多小文件创建
- 遵守数据隐私法规 - 根据您的政策或法规运行更新/删除记录
- 实施变更数据捕获 (CDC) 系统 - 使用记录级更新/删除操作构建 CDC 系统
- 查询历史版本 - 回溯以执行趋势分析,分析一段时间内的数据变化,或恢复/回滚到先前版本以解决问题
哪些 AWS 服务支持 Apache Iceberg?
(截至 2023 年 8 月 1 日)
- AWS Glue - Iceberg 1.0.0/0.13.1 版本原生支持 Glue 4.0/3.0。有关如何在 AWS Glue 中使用 Iceberg 框架的更多信息,请访问此链接。
- Amazon EMR - 从 emr-6.5.0 开始提供原生支持。最新支持版本为 Iceberg 1.3.0(适用于 emr-6.12.0)。有关如何在 Amazon EMR 中使用 Iceberg 框架的更多信息,请访问此链接。
- Amazon Athena (Trino) - 元数据管理等有限支持,仅限 V2 表。有关如何在 Amazon Athena 中使用 Iceberg 表的更多信息,请访问此链接。
- Amazon Redshift Spectrum - 两个表版本均受支持。基本查询和 Iceberg 物化视图功能。有关如何在 Amazon Redshift 中使用 Iceberg 表的更多信息,请访问此链接。