重磅!Onehouse 携手微软、谷歌宣布开源 OneTable

2023-11-20 10:02:58 浏览数 (1)

作者 Kyle Weller 和 Tim Brown

湖仓一体架构模式的两个关键支柱是开放性和互操作性。在云存储系统(如S3、GCS、ADLS)上构建数据湖仓,并将数据存储在开放格式中,提供了一个您技术栈中几乎每个数据服务都可以利用的无处不在的基础。

这种架构的核心是表格式:Apache Hudi、Apache Iceberg 和 Delta Lake。每个项目都有独特的技术特点和日益增长的庞大社区,这使得对于特定场景选择哪种格式变得越来越困难。

在今年二月,Onehouse 宣布推出了 OneTable[1],并邀请了任何感兴趣的机构参与合作并在这些项目之间构建桥梁。微软和谷歌是其中两个特别感兴趣的合作伙伴,同时也受到了来自客户需求的驱动。在几个月的合作和对 MVP(最简可行产品) 的大量测试之后,我们很高兴地宣布开源 OneTable ,并发布在了 GitHub https://github.com/onetable-io/onetable

在官方网站了解更多关于 OneTable 的信息:https://onetable.dev

观看来自 Onehouse、微软和谷歌的演示,描述 OneTable 的工作原理,并展示跨 Spark、Trino、Microsoft Fabric 和 Google BigQuery 和 BigLake 的演示:https://opensourcedatasummit.com/

为了了解 OneTable 是什么以及它是如何工作的,首先让我们了解 Apache Hudi、Apache Iceberg 和 Delta Lake 数据湖表格式的基础。这三个项目都在 Apache Parquet 文件之上提供了一个特殊的元数据层。Hudi 使用元数据时间线,Iceberg 使用 Avro 格式的清单文件,Delta 使用 JSON 事务日志,但这些格式的共同点是 Parquet 文件中的实际数据。

OneTable 不是一种新的表格式,而是为 Hudi、Delta、Iceberg 元数据的全向无缝转换提供了所必须的工具和抽象。全向意味着您可以从任一格式转换为其他任一格式,您可以在任何需要的组合中循环或轮流使用它们,性能开销很小,因为从不复制或重新写入数据,只写入少量元数据。在使用 OneTable 时,来自所有 3 个项目的元数据层可以存储在同一目录中,使得相同的 "表" 可以作为原生 Delta、Hudi 或 Iceberg 表进行查询。

元数据转换是通过轻量级的抽象层实现的,这些抽象层定义了用于决定表的内存内的通用模型。这个通用模型可以解释和转换包括从模式、分区信息到文件元数据(如列级统计信息、行数和大小)在内的所有信息。除此之外,还有源和目标层的接口,使得其能转入,或从这个模型转出。这些接口允许用户扩展和发展当前 OneTable 为三种主要表格格式提供的功能。例如,开发人员可以实现源层面接口来支持 Apache Paimon,并立即能够将这些表暴露为 Iceberg、Hudi 和 Delta,以获得与数据湖生态系统中现有工具和产品的兼容性。更多详细信息请参考 GitHub 代码库:https://github.com/onetable-io/onetable

组织机构们目前如何使用 OneTable

Onehouse 当前已经支持了多个客户在生产环境中使用 OneTable。一些客户希望他们的数据在 Databricks Delta 和 Snowflake 的私有预览 Iceberg 表中都可查。一些用户需要 Hudi 的快速摄入和增量处理,但同时他们也想利用好 BigQuery 对 Iceberg 表支持的一些特殊缓存层。一些用户只需要一个格式,但他们希望保证未来的兼容性,Onehouse 同时为他们提供了所有 3 种格式。

观看这个 Open Source Data Summit 上的一个有趣的演示,展示了 Microsoft Fabric 如何将 Hudi、Delta 和 Iceberg 的三个表格汇总到一个 PowerBI 仪表板中:

前路漫漫

今天宣布 OneTable 开源只是旅程的开始。该项目目前提供了全向互操作性的基础和支持,但同时还有很多令人兴奋的事情需要在社区中共同设计和建设。以下路线图大致概括了我们希望在未来的一年及以后推动的技术演进。

这个项目成功的基础要素之一是它是中立的,并由强大的社区原则所治理。我们今天从一个拥有强大及多元社区支持的位置起航。除了最初的代码贡献者外,我们还有许多导师和倡导者在为项目提供支持,他们来自微软、谷歌、Cloudera、Netflix、苹果、Adobe、亚马逊、LinkedIn 等公司。为了确保开放性的根基得到优先保障,我们也很高兴地宣布将把该项目提交到 Apache Software Foundation 进行孵化:https://cwiki.apache.org/confluence/display/INCUBATOR/OneTable Proposal

一个好的开源项目和一个伟大的开源项目的区别在于社区。所以今天我们热切地邀请您加入我们!来 GitHub 代码库[2],尝试快速入门[3],加一颗小星星,提出问题,发起讨论,或提交您的 PR,并成为早期 committer 中的一员。如果您有想法、问题或想直接与人交流,请联系任何当前的 GitHub 贡献者,他们将很乐意进一步交流。

关注 OneTable 的 LinkedIn[4] 和 Twitter[5],以获得最新的更新!

前进吧!

引用链接

[1] 宣布推出了 OneTable: https://www.onehouse.ai/blog/onetable-hudi-delta-iceberg [2] GitHub 代码库: https://github.com/onetable-io/onetable [3] 尝试快速入门: https://onetable.dev/docs/how-to [4] LinkedIn: https://www.linkedin.com/company/onetable-oss/ [5] Twitter: https://twitter.com/OnetableOSS

0 人点赞