目录的 “IT ”时刻及其对 MinIO、对象存储和人工智能的意义
在现代数据湖中,目录是高效组织和查询数据的支柱。最近的新闻报道,包括 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 Enterprise Object Store Catalog 混淆。MinIO Enterprise Object Store Catalog 是一个元数据管理工具,允许管理员使用 GraphQL 接口查询对象命名空间元数据。它在 MinIO Enterprise Console 中提供实时、无缝的集成,从而实现高效的数据治理、审计、合规性检查和运营分析。主要功能包括自动索引、实时访问和无需外部服务的空间利用率优化。该目录简化了复杂的查询,并增强了大规模对象存储环境中的元数据管理。换句话说,目录通常在处理层运行,有助于优化查询引擎,而 MinIO Enterprise Object Storage Catalog 则对数据湖本身中的数据进行操作。
新闻中的目录
最近的发展突显了该行业向标准化目录解决方案的转变。Databricks 宣布其 Unity 目录现在支持 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 部署选择最佳硬件)来提供尽可能高的性能。我们对 GET 上的 MinIO 进行了基准测试,其速度为 325 GiB/s (349 GB/s),PUT 上的 MinIO 为 165 GiB/s (177 GB/s),仅具有 32 个现成的 NVMe SSD 节点。
向 LanceDB 学习
虽然没有完全按照其逻辑目的执行,但这种方法的一个成功例子是供应商专注于非核心功能,并将核心功能让位于开放标准,这是LanceDB在Lance V2中采用的Apache Arrow。通过利用 Arrow 明确定义的类型和编码,LanceDB 避免了重新发明轮子,而是专注于在最重要的地方增加价值。其他查询引擎可以从这种方法中学习。要么将 Apache Arrow 的元数据管理作为标准,要么选择 Iceberg REST API 或他们选择的任何其他内容。但是,通过选择标准并坚持下去,查询引擎供应商可以专注于真正推动市场创新的关键差异化因素。
数据编目的新时代
碎片化数据编目的时代正在结束。随着行业围绕开放标准(如 Apache Iceberg REST API)团结起来,重点可能会转向创新和以用户为中心的开发。这个新时代不仅有望提高效率和互操作性,而且随着现代数据湖越来越多地用于人工智能和机器学习应用,它有可能将性能和能力提升到新的水平。MinIO 凭借其高性能、可扩展的对象存储,有望在这一转型中发挥关键作用,帮助组织比以往任何时候都更有效地利用其数据资产。