Jeffrey Erickson | 资深撰稿人 | 2025 年 11 月 17 日
Iceberg 表由 Netflix 工程师创建,当时该流媒体服务的实时分析工作已超出其基于 Apache Hive 的数据仓库的处理极限。他们的解决方案是什么?开发一种位于批量数据存储层上方的表格式。他们将这种格式命名为 Iceberg 表,并发现这个新系统确实为处理海量、频繁更新的数据存储提供了一个可扩展性和可预测性更强的平台。
发现 Iceberg 技术解决了大型、复杂数据湖仓一体用户普遍面临的问题后,该公司于 2018 年将该技术开源并捐赠给 Apache 软件基金会。Iceberg 迅速收获了热情的用户群体,并于 2020 年成为 Apache 顶级项目。如今它已被开发人员社区广泛采用,并受到 Oracle Autonomous AI Database 等超大规模云数据管理系统的支持。以下是关于 Iceberg 功能和使用方式的概览。
Apache Iceberg 是一种开源表格式,旨在简化海量数据湖和数据湖仓一体的管理,同时提高查询性能。
Iceberg 表不同于 Postgres、MySQL 或 Oracle 等数据库中的传统关系表。关系表将元数据和数据都存储在数据处理所在的数据库中,非常适合结构化应用程序数据。此外,还可以强制实施数据库中表之间的严格关系。而 Iceberg 表则将数据和元数据都存储在某种形式的文件系统存储层中,例如本地文件系统、Amazon S3、Google Cloud Storage 或 Oracle Object Storage。数据与元数据的存储及计算分离后,数据处理便与数据本身解耦,最终用户可灵活选择适合其特定需求的处理引擎。
Iceberg 表结合了数据湖的可扩展性和灵活性与传统数据仓库的可靠性和性能,为数据分析提供支持,因而成为数据湖仓一体中的流行格式。例如,它们支持对海量非结构化数据执行实时分析和批量处理工作负载,同时提供符合 ACID 标准的事务。ACID 事务为数据库事务提供原子性、一致性、隔离性和持久性,从而确保数据完整性,是关系数据库和数据仓库的基础。Iceberg 表将这种完整性扩展到了数据湖仓一体事务中。
同时,Iceberg 表还十分灵活,支持为不同的工作负载指定不同的数据类型。对于批量分析,Iceberg 支持 Parquet 或 ORC 等列格式,以及 Avro 等基于行的格式。例如,要在 Iceberg 中使用 Parquet 文件,您需要创建一个 Iceberg 表,并使用 Iceberg 提供的工具将其配置为使用 Parquet 作为数据文件格式。Iceberg 表还支持高效查询功能,如数据分区和剪枝,这减少了每次查询需要扫描的数据量。
Iceberg 表格式的另一个优势是其先进的数据版本控制功能,例如快照和时间旅行。通过时间旅行,对表的每次更改都以新快照形式记录,用户可查询表在历史任意时间点的数据。此功能对审计、调试和合规用途非常实用,当然也可用于必要时回滚更改。
Iceberg 表是一种专为数据湖中的大规模分析设计的开源表格式。Iceberg 表具备自描述特性,即包含有关自身模式与数据的元数据,从而简化查询和管理。
关键要点
Iceberg 表是一种开源表格式,由 Apache 基金会管理,专为数据湖仓一体中的大规模数据分析设计。Apache Iceberg 表解决了在多个用户或进程同时写入同一数据集的场景下,管理和查询大型数据集的挑战。
为实现这一目标,Iceberg 表提供了若干关键架构功能和管理优势。首先,Iceberg 表具备自描述特性,即包含有关自身模式与数据的元数据。它们驻留在云存储层中,例如 Amazon S3、Oracle Object Storage、Google Cloud Storage 或 Hadoop Distributed File System (HDFS),而不是数据库或其他查询引擎的一部分。这带来了许多优势。例如,由于它们与处理查询所需的计算能力分开保存,因此 Iceberg 表可以与您偏好的数据处理引擎配合使用,例如 Apache Spark 和 Flink、Trino,以及 Oracle Autonomous AI Database 或其他企业数据管理系统。
Iceberg 表为管理和查询大型复杂数据湖仓一体提供了一系列实用的功能,如数据版本控制和 ACID 事务。此外,Iceberg 的模式演进能力使组织能够随时间推移调整其数据模式,而无需进行复杂且耗时的表重写。强大的数据版本控制功能包括时间旅行能力,这有助于维护清晰可追溯的数据变更历史,并支持用户查询数据在任意历史时间点的状态。
Iceberg 表在数据格式和处理引擎方面提供了灵活性,因此工程师可以为每个工作负载(如批量分析或事务处理)选择最适合的数据存储格式。
Iceberg 表架构中的数据安全,由 Apache 基金会的原生功能,以及云存储供应商和访问、查询 Iceberg 表的数据管理系统所提供的功能共同保障。最终成果将融合数据加密、访问控制、数据脱敏等数据治理功能,以及用于从故障或攻击中恢复的复制与同步能力。
Apache Iceberg 是一种开放表格式,旨在帮助高效管理和查询 PB 级数据集。它的开发初衷是解决数据湖现有文件格式的局限性,这些格式未提供在表层面管理数据的方法。
与传统表不同,Iceberg 表专为应对频繁更新、删除和模式演进的大数据集的复杂性设计。事实证明,无论是进行批处理、实时流处理还是交互式查询,Iceberg 都是一种稳健且高效的数据管理方式。以下是获得这些优势的方法:
Apache Iceberg 的诸多优势使其成为希望高效、可靠地管理和处理大型数据集的组织的理想选择。
Apache Iceberg 是一种适用于大数据工作负载的高性能表格式,支持一系列数据类型和多种查询引擎以及 ACID 事务。以下是 Apache Iceberg 的五个常见用例。
Iceberg 表由 Netflix 工程师创建,旨在提升流媒体分析和其实时推荐引擎的速度和灵活性,并且它在这类用例中表现出色。Iceberg 现为由 Apache 基金会运营的开源项目,仍被 Netflix 及越来越多的组织使用,包括以下:
Oracle Autonomous AI Database 支持 Apache Iceberg 表。如果您的数据集已在其他云上以 Iceberg 格式存储,Oracle Autonomous AI Database 可轻松读取它们,从而减少数据复制,提高运营灵活性。现在您可以充分利用 Iceberg 表来管理大型复杂数据集并优化查询性能,同时通过 Oracle 数据管理平台享受跨平台数据可访问性,您可以使用您偏好的大语言模型 (LLM) 构建可扩展的 AI 驱动型应用程序,并在云中或您的数据中心中部署。
Apache Iceberg 已经永久性地改变了数据管理格局。它诞生于 Netflix 等公司正艰难应对海量数据集和混合数据类型管理的时期。随着这些情况变得越来越普遍,Iceberg 表已成为现代数据生态系统的主流组成部分。随着更多企业希望简化其数据管道并从大数据分析中获取洞察,预计这一趋势将会持续。
您的数据基础设施是否已为支持相似性搜索和其他 AI 计划做好准备?我们的电子书为您规划了构建坚实数据基石的路径,助您为 AI 应用的成功部署奠定基础。
Apache Iceberg 比 Delta Lake 更好吗?
Delta Lake 和 Apache Iceberg 都不能被视为普遍更优的选择。两者都是用于管理数据集以进行分析的表格式。区分两者的一个简单方式是:Delta Lake 在 Spark 生态系统中表现最优,而 Iceberg 提供更广泛的兼容性,并与一系列数据管理引擎都能良好配合。
Apache Iceberg 的用途是什么?
Apache Iceberg 用于简化超大规模、复杂、多平台数据集的管理与查询,将其整合到单个统一数据层中,以进行分析处理。
注:为免疑义,本网页所用以下术语专指以下含义: