Apache Polaris到底是個(gè)啥?
今年的数据领域变化几乎和AI领域一样大,许多参与者正在整合。2022年夏天,我写过一篇关于数据表格式大战的文章,从那以后,生态系统变得越来越有趣。我不会深入探讨数据湖和数据仓库之间的区别,但可以说,我们正看到所有要素都在向解耦数据存储和计算的方向靠拢。表格式是标准化轻量级存储标准的一部分。正如我几年前所提到,Apache Iceberg似乎已经成为大家的首选。这些格式通常基于Apache Parquet在对象存储上,并提供追踪新数据和数据状态变化的功能。
2023年,Databricks 宣布 开源了他们的Unity Catalog项目,而Onehouse 宣布 OneTable现在叫做X-Table。这些项目旨在让你通过一个统一的界面访问Delta、Hudi和Iceberg三种流行的表格式。到了2024年6月……
发生了什么事?雪花公司正在举行其一年一度的Snowflake年度峰会,并于2024年6月3日宣布了Apache Polaris(孵化中),这是一个面向Apache Iceberg的中立供应商开放目录。次日,也就是Databricks大会前一周,Databricks宣布收购了由Iceberg的最初创建者成立的Tabular公司。从外部来看,这仍然显得很奇怪,因为Iceberg只是一个规范,并不是一款产品,而且Tabular也不是Iceberg的主要贡献者。在我看来,Databricks可能会将Deltalake整合进Iceberg中。
幕后,Snowflake 一直在尝试收购 Tabular。但在最后一刻有些变故,Databricks 突然提出更高报价,Snowflake 的报价因此被放弃了。Snowflake 已经承诺支持 Iceberg 作为外部存储两年,这无论怎么看都对他们很有意义。
雪花在宣布后的发布速度方面有口碑,因此引起了一些怀疑,甚至有人怀疑是否有实际开发。结果发现,雪花其实已经为此努力了一段时间,并在很短的时间内就提供了相关功能,而德里奥、Starburst、CelerData 和 Upsolver 等供应商在不到两个月的时间内就展示了使用它的解决方案:一个令人惊喜的消息,也是未来积极信号。
这一切都是为了设置Apache Polaris,希望这能让你感受到一个良好的目录在这一切中的关键作用。如果没有一个统一的系统来描述你数据湖中的所有Parquet文件,你的计算工具又怎能正常运行呢?
极星简介Apache Polaris 是一个用于 Apache Iceberg 表的开源目录实现。其主要特性包括:
- REST API 实现:Polaris 实现了 Iceberg 的 REST API,使多个查询引擎之间可以无缝协作。
- 多引擎兼容性:它允许各种查询引擎(如 Apache Spark、Apache Flink、Trino 等)通过单一目录系统读写 Iceberg 表。
- 集中管理:Polaris 提供了对支持 REST 协议的查询引擎的 Iceberg 表的集中和安全访问。
- 命名空间和元数据管理:它支持创建命名空间以进行逻辑分组和管理元数据。
- 存储配置:Polaris 提供了强大的存储配置功能,支持云提供商如 S3、Azure 和 Google Cloud Storage。
- 安全特性:它实现了基于角色的访问控制(RBAC)并使用凭证管理来保护查询执行的安全。
- 开源性质:Polaris 完全开源,允许社区贡献并保持供应商中立。
- 互操作性:它使多个引擎能够在单个数据副本上使用,减少存储复制和 ETL 处理的成本。
- 一致的访问控制:Polaris 可以在一个地方统一管理并维护基于角色的访问控制和存储层的安全性。
- 灵活的托管:它可以托管在各种基础设施之上,提供灵活性并减少供应商锁定风险。
文档中有一个可爱的小小图形,可以在任何地方放图片。
再次借用北极星文档里的这张图片,让我们来看看这张实体层级结构图中都显示了什么:
我们可以在单个 Polaris 安装中拥有多个目录;在这个图中,仅 Catalog1 定义了任何命名空间或表。一个目录可以是内部的也可以是外部的。内部表支持读写功能,这意味着你完全控制它们。外部表当前仅限于只读,并且旨在反映外部目录中的数据,例如 Glue 目录,一旦与外部目录连接,Polaris 将视其为数据的唯一真实来源。
目录会帮你整理你的冰山表;你需要用你的存储配置来配置它,以匹配你所在的云系统。这构成了冰山表规范的第一个架构层。
命名空间可以嵌套到任意级别,并用于在目录中逻辑地组织 Iceberg 表。一个 Iceberg 表始终属于一个命名空间。完成配置后,您可以使用 Polaris 目录描述您的 Iceberg 表,使它们能够通过多种工具方便地访问和管理。
这是一次快速概览,介绍了正在发生的事情及其样子。Snowflake内部提供了一个方便的用户界面来管理实现;其他供应商也有自己的操作方式,如果你想的话,也可以直接通过Spark来操作。
概要
我仍然相信Apache Iceberg将会在“表格格式战争”中胜出。Apache Polaris专注于Iceberg并不是坏事。我想要深入研究Polaris中RBAC是如何实现的,看看它是否像我非常喜欢的Tabular产品的实现一样稳健。我认为Polaris对Iceberg社区来说是一个巨大的胜利,将进一步加速其采用。我听说Dremio的Nessie项目将被整合进来,我很想知道它将会是什么样子。我记得他们的git-like语义主要是被Iceberg的标签和分支覆盖了——我去年写了一篇文章比较了Iceberg、Hudi和Delta Lake的标签和分支(见:https://hackernoon.com/branches-and-tags-comparing-iceberg-hudi-and-delta-lake-tables)——这又是一个留待以后再讨论的故事。
我非常欣赏这里发生的事情。如果你也身处这个圈子,这就是你应该跟上的正确潮流。
查看下面链接中的其他“什么是……”文章:
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章