Apache赞助成功:谷歌与Apache Iceberg

Apache赞助成功:谷歌与Apache Iceberg

💡 原文英文,约2900词,阅读约需11分钟。
📝

内容提要

Apache Iceberg是ASF下的开源表格式项目,Google的三位工程师分享了他们的贡献。Talat Uyarer强调V4规范改进元数据、支持流式写入和细粒度访问控制;Ahmed Abualsaud开发Beam的IcebergIO多语言连接器,提升SQL集成;Parth Desai关注开放湖仓架构,支持AI和跨引擎互操作。开源协作推动项目发展。

🔎

延伸解读

V4规范:从批量到流式的关键升级

Talat Uyarer指出,Iceberg V4规范通过引入单文件提交、元数据改用Parquet存储以及重新设计列统计信息,显著降低了高频率流式写入的I/O开销和写放大问题。这些改动并非小修小补,而是针对流式工作负载对元数据结构的重新思考,使Iceberg在保持读性能的同时,能更好地支持低延迟写入,满足企业级流式数据湖的需求。

多语言连接器的设计挑战与解决思路

Ahmed Abualsaud在开发Beam的IcebergIO时,面临跨语言配置和动态Schema等挑战。他们采用字符串模板实现语言无关的动态目标写入,并考虑引入Variant类型处理半结构化数据。这种设计让Python、SQL和YAML用户无需关心Java依赖即可使用连接器,并通过ManagedIO实现底层升级,体现了开源协作中跨语言兼容性的重要性和创新解决方案。

开放存储层:避免数据锁定,释放引擎选择自由

Parth Desai强调,Iceberg通过定义开放的表元数据规范,使不同计算引擎(如BigQuery、Spark、Flink)能并发读写同一数据表,无需移动或复制数据。这降低了数据迁移的成本和风险,将竞争焦点从存储层转移到引擎性能和用户体验上,保护开发者免受供应商锁定,是构建开放湖仓架构的核心价值。

Q&A

Apache Iceberg V4规范的主要改进有哪些?

V4规范通过重新设计元数据结构,引入单文件提交(Single-File Commits)以减少I/O开销,支持高频流式写入;将元数据存储为Apache Parquet格式以加速列式读取;重新设计列统计信息;并引入细粒度访问控制,通过Iceberg REST Catalog作为集中安全控制平面。

Apache Iceberg V4中的细粒度访问控制是如何工作的?

V4引入了两种访问控制模型:访问决策交换模型(Access Decision Exchange Model)适用于可信客户端,目录将评估后的策略推送给客户端执行;物化扫描模型(Materialized Scan Model)适用于不可信环境,目录在返回文件指针前预先应用行过滤器和列掩码。

Talat Uyarer提出的Relative Paths提案解决了什么问题?

Relative Paths提案旨在将Iceberg元数据中的绝对文件路径改为相对于基础URI的引用,从而将逻辑表结构与物理存储层解耦,使得迁移数据集、克隆测试或设置灾难恢复备份变得更加简单,无需重写元数据。

Apache Beam的IcebergIO连接器如何实现多语言支持?

IcebergIO连接器采用Java编写核心实现,然后通过Beam的可移植性框架封装在ManagedIO层,使得Python、SQL和YAML管道无需关心Java依赖即可使用。配置设计为语言无关,例如使用字符串插值(如"namespace.table_{year}")代替原生函数来支持动态目标写入。

在Beam和Iceberg生态中引入SQL支持有什么好处?

SQL作为声明式接口,允许用户表达数据处理需求而无需了解底层分布式系统细节,降低了使用门槛。它使得数据科学家、分析师和工程师能够共享通用语言,例如用SQL将实时Kafka流与Iceberg历史数据连接,并将结果写回Iceberg,且同一SQL逻辑可从本地测试扩展到生产级管道。

Parth Desai认为Apache Iceberg如何支持AI和GenAI的发展?

Parth认为开源数据格式将成为AI基础模型与企业专有数据结合的基础。未来RAG将直接在湖仓内执行,利用Iceberg的规模和向量搜索能力;Iceberg的时间旅行和快照功能支持数据版本和血缘追踪,成为AI安全机制,确保模型可复现、可审计,并帮助调试幻觉问题。

为什么Apache Iceberg能够实现跨引擎的互操作性?

因为Iceberg定义了开放的表格式规范,包括表元数据、模式演化和事务保证,使得不同的计算引擎(如BigQuery、Spark、Flink)可以并发读写同一张Iceberg表,而无需移动或复制数据,从而避免了数据孤岛和供应商锁定。

🏷️

标签

➡️

继续阅读