目录的“IT”时刻及其对对象存储和 AI 的意义

在 现代数据湖 中,目录是有效组织和查询数据的核心。包括 Databricks 收购 Tabular 和 Snowflake 开源 Polaris 在内的近期新闻报道,让目录成为热门话题。然而,行业正处于十字路口,不同的实现方式造成了碎片化的生态系统。如何才能缓解这种社区内部的分裂?
许多供应商已经开始围绕 Apache Iceberg 凝聚,并针对或提供对 Iceberg 的 REST 目录 API 的支持。在 MinIO,我们热衷于采用成熟的行业标准 REST API。我们对这种方法的承诺体现在我们与 Amazon 的 S3 API 的强大兼容性。
我们发现,标准化不仅没有扼杀创新,反而促进了创新,使软件供应商能够专注于用户需求,而不是基础设施。这种用户关注最终会推动整个市场的创新。标准化及其优势可以也应该扩展到现代数据栈的其他组件,例如目录。围绕一个开放标准达成一致,可以简化操作,促进创新,并提高现代数据湖的价值,特别是对于 AI 和 ML 工作负载。
定义 REST 目录 API
Apache Iceberg REST 目录 API 提供了一个标准化接口来管理元数据和访问现代数据湖中的表数据。该 API 允许以任何语言(包括 Python、Rust、Java 等)与任何目录进行无缝集成,从而无需自定义连接器。REST 目录 API 的核心功能包括创建、列出和删除表,以及检索和更新表元数据。
通过实现该 API,不同的目录服务可以互操作,允许用户利用各种目录实现的优势,而不会被锁定在单个供应商或技术中。这些实现中的每一个都与存储层交互并提供元数据服务,从而能够跨不同环境一致地管理 Iceberg 表。
在 2024 年 4 月,有人提出了一个 提案,建议将 REST 目录的许多操作从客户端迁移到服务器端。这一变化将增强 REST 目录本身已经令人印象深刻的可扩展性,使企业功能(如 Nessie 的 Git 式目录版本控制)成为可能。一旦被采用,它将为所有目录建立一个标准化接口,促进 Apache Iceberg 框架内的创新和新益处。
现代数据湖中的目录
现代数据湖中目录的作用是提供执行数据查询所需的元数据。这些元数据对于管理、组织和查询存储在现代数据湖存储层中的大量数据至关重要。与现代数据湖中的任何其他层一样,性能、简单性和能够在任何地方部署的能力都是至关重要的基础功能。换句话说,当存储层针对现代数据湖进行了优化时,目录才能发挥最佳作用。
这种对目录的定义不应该与 MinIO 企业版对象存储目录 混淆。MinIO 企业版对象存储目录是一个元数据管理工具,允许管理员使用 GraphQL 接口查询对象命名空间元数据。它在 MinIO 企业版控制台中提供实时无缝集成,从而实现高效的数据治理、审计、合规性检查和运营分析。主要功能包括自动索引、实时访问和优化空间利用率,无需外部服务。目录简化了复杂的查询,并增强了跨大型对象存储环境的元数据管理。换句话说,总的来说,目录在处理层运行,有助于优化查询引擎,而 MinIO 企业版对象存储目录则在数据湖本身的数据上运行。
新闻中的目录
最近的发展突显了行业向标准化目录解决方案的转变。Databricks 宣布其 Unity Catalog 现在支持 Apache Iceberg 的 REST 目录 API。此举是 Databricks 更广泛的开源 Unity Catalog 倡议的一部分。Unity Catalog 的开源特性有望减少供应商锁定,并促进互操作性,与行业推动开放标准的趋势一致。
Snowflake 的 Polaris 是另一个重大发展,它是一个开源的 Iceberg REST 目录 API 实现。此举体现了向标准化和互操作性的转变,强化了现代数据湖社区中协作创新的趋势。Snowflake 的开源战略突出了主要供应商推动行业走向更加统一和高效的生态系统的潜力。
Gravitino 是一个新兴的开源目录项目,也在朝着这个方向努力。Gravitino 旨在提供一个轻量级且高度可扩展的目录解决方案,完全拥抱 Iceberg REST API。通过专注于模块化和易于集成,Gravitino 旨在满足从小型初创公司到大型企业的各种数据环境。其设计优先考虑灵活性,允许用户无缝地整合独特的特性和自定义工作流。随着 Gravitino 的不断发展,它有望成为开源目录领域的关键参与者,促进一个更加互联和高效的数据管理生态系统。
Dremio 的 Nessie 是一个开源目录,它允许进行类似 Git 的数据版本控制,也刚刚 宣布 支持 Iceberg REST API。Nessie 的独特方法允许用户跟踪更改,创建分支,并以以前在数据空间中无法实现的控制和透明度级别合并数据集。他们对 Iceberg 的 REST API 的采用与他们对现代数据湖的创新方法相一致。
标准化数据湖目录
通过 Apache Iceberg 的 REST 目录 API 来标准化现代数据湖目录的旅程既有希望,也必不可少。Chris Riccomini 最近在他的 Substack 中描述了未来标准化的愿景,即 Materialized View。Chris Riccomini 对现代数据湖目录的核心功能和非核心功能的定义很有见地。他认为,当供应商围绕一个开放标准的核心功能聚集时,他们就可以专注于重要但非核心的企业功能。
Chris 将核心功能定义为为查询引擎提供执行查询所需的必要元数据的功能——可以将其视为基本信息架构。非核心功能涵盖其他所有内容,例如用户界面、数据发现、血缘关系和治理。
通过围绕一个通用标准达成一致,并构建在世界上性能最高的、可以部署在任何地方的对象存储之上,现代数据湖社区可以克服碎片化,减少供应商锁定,并培育一个更加协作和创新的生态系统。这一愿景虽然雄心勃勃,但完全可以实现,它有可能彻底改变我们大规模管理和利用数据的方式。
无论你在哪里运行 MinIO,你都将获得最佳的性能,因为它利用底层硬件(请参阅 选择 MinIO 部署的最佳硬件)来提供尽可能高的性能。我们已经 基准测试 了 MinIO,在 32 个现成的 NVMe SSD 节点上,GET 操作的性能达到了 325 GiB/s(349 GB/s),PUT 操作的性能达到了 165 GiB/s(177 GB/s)。
从 LanceDB 中汲取教训
虽然尚未完全执行到逻辑终点,但供应商专注于非核心功能并将核心功能让位于开放标准的成功案例来自 LanceDB 在 Lance V2 中对 Apache Arrow 的采用。通过利用 Arrow 明确定义的类型和编码,LanceDB 避免了重复造轮子,而是专注于在最需要的地方增加价值。其他查询引擎可以借鉴这种方法。无论是围绕 Apache Arrow 的元数据管理作为标准集结,还是选择 Iceberg REST API 或他们选择的任何其他标准。但是,通过选择一个标准并坚持下去,查询引擎供应商可以专注于关键的差异化因素,这将真正推动市场的创新。
数据目录的新时代
碎片化数据目录的时代即将结束。随着行业围绕开放标准(如 Apache Iceberg REST API)集结,焦点可以转向创新和以用户为中心的发展。这个新时代不仅承诺更高的效率和互操作性,而且有潜力释放新的性能和功能级别,因为现代数据湖越来越多地用于 AI 和机器学习应用。MinIO 凭借其高性能、可扩展的对象存储,将在这一转型中发挥关键作用,帮助组织比以往更有效地利用其数据资产。如果你在使用 MinIO 实现 AI 数据基础架构骨干时有任何疑问,请通过 hello@min.io 或我们的 Slack 频道与我们联系。