开源的文件和表格式因其互操作性潜力而引起了数据行业的极大兴趣,它使许多技术能够安全地在单个数据副本上操作。更高的互操作性不仅可以降低使用多种工具和处理引擎带来的复杂性和成本,还可以防止被供应商锁定。
尽管很多人已经在使用开放文件和表格式,但引擎和catalog之间存在许多相互依赖的限制,这造成了锁定,从而降低了 Iceberg 开放标准的价值。这给数据架构师和数据工程师带来了困扰,即如何解决这些限制并在复杂性和锁定之间做出权衡。为了提高互操作性,Apache Iceberg 社区开发了 REST 协议的开放标准。开放 API 规范是实现互操作性的一大步,将Iceberg运行在任何存储之上,而与供应商无关。
所以Snowflake推出Polaris Catalog,为企业和Iceberg社区提供一种全新的选择,包括Apache Iceberg 与 Amazon Web Services (AWS)、Confluent、Dremio、Google Cloud、Microsoft Azure、Salesforce 等的互操作性,同时支持企业级安全。
- • 无需移动和复制不同引擎和catalog的数据,而是可以通过一个地方的单个数据副本与多个引擎进行互操作。
- • 可以将其托管在 Snowflake 管理的基础设施或其他基础设施中。
1 跨引擎读写互操作性
许多组织一般使用各种处理引擎来执行特定工作负载,并希望可以轻松的添加或更换处理引擎,总结就是希望能够自由地在单个数据副本上安全地使用多个引擎,以最大限度的减少数据移动或者选择多种存储带来的数据冗余成本。
Catalog在多引擎架构中起着至关重要的作用,它们通过支持原子事务使表上的操作可靠。这意味着多个用户可以同时修改表,并确保查询结果都准确,为了实现这一点,所有 Iceberg 表的读写操作(即使来自不同的引擎)都通过Catalog进行路由。
适用于所有引擎的标准化catalog协议可实现多引擎互操作性,幸运的是Apache Iceberg 社区已为 REST 协议创建了开源规范。由于此 REST API 规范可实现互操作性,越来越多的开源和商业引擎和catalog正在增加对此 REST API 规范的支持。
Polaris Catalog 实现了 Iceberg 的开放 REST API,目前支持的引擎包含Apache Doris、Apache Flink、Apache Spark、PyIceberg、StarRocks、Trino和Dremio,当然你也可以使用Snowflake 通过 Polaris Catalog 读取和写入 Iceberg 表。
2 随处运行无锁定
开源 Polaris Catalog可以托管在Snowflake 的AI Data Cloud上,也可以使用 Docker 或 Kubernetes 等容器在自己的基础设施中自行托管,也可以随时自由的更换底层的基础设施。
3 Polaris与Horizon
一旦将Snowflake Horizon 与 Polaris Catalog集成后,Snowflake Horizon 的治理和发现功能(column masking policies, row access policies, object tagging和sharing)便可在 Polaris Catalog 上运行。因此无论 Iceberg 表是由 Snowflake 还是其他引擎(如 Flink 或 Spark)在 Polaris Catalog 中创建的,你都可以将 Snowflake Horizon 的功能扩展到这些表,就像它们是原生 Snowflake 对象一样。
原文参考:
代码语言:javascript复制https://www.snowflake.com/blog/introducing-polaris-catalog/?utm_cta=website-polaris-end-cta