AWS 宣称在客户另有需求之前将一直坚持使用 Iceberg

B站影视 2025-01-23 15:10 2

摘要:尽管业界对 Iceberg 的认可度在不断提升,但关于其竞争对手 Delta Lake (由 Databricks 创建并在 Linux 基金会管理下开源) 的未来仍存在疑问。目前,Delta Lake 是 Microsoft 和 SAP 等软件巨头的首选格式

AWS 在其分析、机器学习和存储技术栈中全面采用 Apache Iceberg 开放表格式 (OTF),这是对其广受欢迎的 S3 对象存储用户需求的积极回应。

尽管业界对 Iceberg 的认可度在不断提升,但关于其竞争对手 Delta Lake (由 Databricks 创建并在 Linux 基金会管理下开源) 的未来仍存在疑问。目前,Delta Lake 是 Microsoft 和 SAP 等软件巨头的首选格式。

但对于全球最大的云平台提供商而言,在 S3 服务用户另有要求之前,他们已经确定选择 Iceberg。

这一立场的重要性源于以下事实:S3 在全球企业数据存储软件市场占有约 23% 的份额,而 AWS 的年收入预计将达到 1050 亿美元,使其成为规模最大的云基础设施提供商。

Iceberg 的重要性还体现在 Databricks 愿意支付 10 亿美元 (可能高达 20 亿美元) 收购 Tabular (Iceberg 原创者创立的公司),尽管这项技术本身是开源的。

AWS 副总裁兼杰出工程师 Andy Warfield 向 The Register 表示:"我们直接使用 Iceberg。我们在 Iceberg 开源项目中有核心贡献者,AWS 积极参与 Iceberg 本身的开发,包括设计 API 和与其他开发者合作。我们之所以选择这个方向,是因为我们看到最大的 S3 分析客户都在使用它。"

"如果客户有其他需求,我们当然会考虑增加对其他技术的支持。但目前,Iceberg 在设计上非常具有吸引力,同时也是构建这类结构化存储支持的流行且备受支持的方向。"

去年年底,AWS 推出了 S3 Tables,这是一种新型存储桶,Warfield 将其描述为"托管的 Iceberg 表。它提供了一个 Iceberg 目录,用户可以在其中创建命名空间和表,每个表都是一级资源。用户可以直接在表上进行访问控制策略和安全策略设置。"

AWS 此前表示,由于存储桶预先分区,访问性能将提升 10 倍。AWS 还会自动运行所有维护和优化任务。

Iceberg 起源于 2015 年,当时 Netflix 完成了从本地数据仓库和分析堆栈向基于 AWS S3 对象存储的迁移。他们最初尝试通过 Hive Tables 进行查询,但遇到了性能问题和"一些非常令人意外的行为"。

这些挑战促使团队开发了 Iceberg 开放表格式,该格式专为大规模分析工作负载而设计,支持包括 Spark、Trino、Flink、Presto、Hive 和 Impala 在内的查询引擎。它承诺帮助组织将其选择的分析引擎用于数据处理,而无需承担将数据迁移到新存储的费用和不便。Iceberg 于 2018 年 11 月作为开源项目捐赠给 Apache 软件基金会。自 2022 年初以来,它获得了包括 Google、Snowflake 和 Cloudera 在内的数据仓库和数据湖巨头的公开支持。

2023 年,AWS 首次公开宣布支持 Iceberg,预览版允许用户使用其云原生数据仓库 Redshift 在外部数据湖中运行 Iceberg 表的分析查询,但仅限于新建表,不支持从 Parquet 转换为 Iceberg 的表。

Warfield 表示,大约三年前,随着 S3 用户和 AWS 努力解决在 S3 中创建类数据库数据表示的问题,对 Iceberg 的兴趣开始增长。他们通过划分列和在所谓的行组中创建表示来解决这个问题,避免了查询整个文件的需求。虽然这种方法带来了好处,但也有成本。

"Parquet 在这方面变得更好了,"Warfield 说。"我们获得了更适合数据库的数据表示,但由于 S3 是不可变的,一旦你用 Parquet 写入表,就无法执行人们习惯于在数据库中进行的修改操作。你无法更新它。因此,在 OTF 引入之前的三年里,我们看到的最好情况是数据完全静态,人们通过添加额外的 Parquet 文件来进行追加。"

Iceberg 和其他 OTF 为 Parquet 结构添加了元数据层。Iceberg 创建一个根节点,通过存储通常为 JSON 文件的新元数据来指向表的当前视图。新的根节点可以像数据库原子更新一样,移动客户看到的数据表视图。

"你可以进行这些相对较小的更新,但这使得表完全可变,"Warfield 说。"两年前,与客户的对话转向了从仅使用 Parquet (有时在其上使用 Hive 作为元存储) 到实际尝试使用 Iceberg。"

AWS 对 Iceberg 的实践体现在 S3 Tables 上,同时也体现在机器学习平台 Sagemaker 上,该平台已经重新定位以适应数据仓库、分析和数据湖的某些方面。

"从 S3 存储团队的角度来看,他们对 S3 Tables 非常兴奋,因为任何将高度结构化数据放在这里的人突然获得了从任何分析或机器学习工具以及自己的应用程序中使用它的能力。从 Sagemaker 的角度来看,支持 Iceberg API 意味着他们现在不仅可以使用 S3 和 S3 Tables,还可以使用存储在任何地方的 Iceberg 数据,"Warfield 说。

由于 Snowflake、Google 和其他众多供应商也加入了 Iceberg,这一举措有望简化与其他技术已启动项目的集成。这对 AWS 的 Redshift 也有影响,客户已经在上面构建项目超过十年了。

AWS 数据仓库有自己的存储方法 - Redshift Managed Storage (RMS),Warfield 表示这是云供应商试图解决 OTF 也在解决的一些问题。通过 Sagemaker Lakehouse Catalog,只要支持 Iceberg API,这些数据就可以向 AWS 产品组合之外的更广泛的分析工具开放。

"通过在 Sagemaker Lakehouse Catalog 中引入 Iceberg REST Catalog 支持,分析团队已经开放了 RMS 可以被任何分析平台访问的能力,这极大地提高了数据的灵活性和可访问性。相反,Redshift 通过 Iceberg REST Catalog 可以处理任何 Iceberg 存储,"他说。

通过在其存储、分析和机器学习产品组合中采用 Iceberg,AWS 正在为推动 Iceberg 实现其早期承诺做出贡献。

"所有这些都是由大量进行分析的客户的响亮声音推动的。他们的数据分布在各个地方,他们的团队偏好使用不同的工具。有很多新的采用和用户的巨大投资,以确保任何工具都能与任何数据配合使用,任何数据都可供每个工具使用,"Warfield 说。

关于 Microsoft 在其 Fabric 平台中的方法仍有疑问。这个无处不在的供应商承诺在某种程度上与 Iceberg 集成,尽管 Delta 仍将是其原生表格式。

Databricks 已经谈到试图合并 Delta 和 Iceberg,它承认这可能需要几年时间,而且在任何情况下都将取决于 Apache 对 Iceberg 的治理,而 Databricks 并不控制这一点。

据说在 Apple 使用 Iceberg 的范围很广,一位前 Apple 软件工程经理表示,采用 Iceberg 作为事实上的标准,而不是合并两个标准,将是更好的选择。Iceberg 提交者和 PMC 成员 Russel Spitzer (最近加入 Snowflake 担任首席工程师) 在 10 月份告诉 The Register,他希望供应商都在底层使用 Iceberg,以消除表格式作为设计点。

Warfield 表示,AWS 与 Databricks 进行了对话,因为后者在 S3 之上构建系统,并正在努力确保用户在任何这些分析平台上的所有数据都可供所有人使用,并能在所有系统上运行。

但由于这家云巨头重申了对 Iceberg 的承诺,现在球在 Databricks 的场地上。

来源:至顶网

相关推荐