Apache Gravitino 技术调研报告

统一联邦元数据湖 — Catalog of Catalogs

2026年7月28日 最新版本 v1.3.0 Apache License 2.0 2,600+ Stars

1. 概述

Apache Gravitino 是一个高性能、支持地理分布的联邦元数据湖(Federated Metadata Lake)开源项目。其核心定位为 "Catalog of Catalogs" — 不替换企业现有的 Catalog 系统,而是在所有 Catalog 之上提供一个统一的元数据治理层。

Gravitino 最初由 Datastrato 公司发起,2024年进入 Apache 孵化器,2025年6月3日正式毕业成为 Apache 顶级项目(TLP),2025年9月发布首个稳定大版本 1.0.0。截至2026年6月,最新版本为 1.3.0

1.3.0
最新版本
2,600+
GitHub Stars
3,300+
代码提交
40+
每版本贡献者
核心洞察:传统思路是"把数据统一到一个系统"(代价高、团队抵制),Gravitino 的思路是"统一元数据,数据留在原地"— Federation over Migration。

2. 核心能力

2.1 统一元数据模型

Gravitino 抽象出一套通用的元数据对象层级,覆盖关系型数据、文件、消息队列、AI 模型等:

Metalake(租户)
Catalog(数据源)
Schema(库)
Table / Fileset / Model / Topic

2.2 直接管理(非采集)

不像 DataHub/Atlas 那样被动收集元数据,Gravitino 直接连接底层系统 — 在 Gravitino 里做的修改立即反映到底层,反之亦然。

2.3 多引擎支持

Trino、Spark、Flink、DuckDB、Doris 等引擎可通过 Gravitino Connector 或标准 Iceberg REST 协议统一访问所有数据源。

2.4 联邦 IRC(Federated Iceberg REST Catalog)

1.3.0 核心亮点:一个 Gravitino IRC 可联邦其他 Iceberg REST Catalog,不复制 metadata,bearer-token 转发给数据所有者,由所有者做授权和审计。

2.5 多云单一 Catalog

1.3.0 支持一个 IRC endpoint 同时服务 S3 + GCS + ADLS,按 URI scheme 自动路由,每次请求下发 path-scoped 临时凭证(Credential Vending)。

2.6 AI 资产管理

能力说明版本
Model CatalogML 模型注册、版本管理0.8+
Lance REST Service向量数据集的 REST 访问1.1+
MCP Server让 LLM Agent 通过 MCP 协议发现/操作数据1.0+

3. 架构设计

查询引擎层
Trino Spark Flink DuckDB Doris Python Client
接口层
REST API (:8090) Iceberg REST (:9001) MCP Server Web UI
认证 & 鉴权
Simple Basic (内置IDP) OAuth2/OIDC Kerberos RBAC + DAC
核心对象模型
Metalake Catalog Schema Table Fileset Model Topic Function
连接器层
Hive Iceberg AWS Glue MySQL PostgreSQL Kafka HDFS/S3/GCS Lance
数据源
Amazon S3 GCS ADLS HDFS RDS Kafka Cluster

4. 统一权限控制(重点)

4.1 双重访问控制模型

模型原理适用场景
RBACPrivilege → Role → User/Group数据使用者的细粒度操作权限
DAC (Ownership)创建者自动成为 Owner,Owner 拥有管理权元数据对象的管理权(ALTER/DROP)

4.2 权限类型覆盖

资源类型关键 Privilege
TableCREATE_TABLE, SELECT_TABLE, MODIFY_TABLE
ViewCREATE_VIEW, SELECT_VIEW
Topic (Kafka)CREATE_TOPIC, PRODUCE_TOPIC, CONSUME_TOPIC
Fileset (S3/HDFS)CREATE_FILESET, READ_FILESET, WRITE_FILESET
Model (AI)REGISTER_MODEL, LINK_MODEL_VERSION, USE_MODEL

4.3 权限继承与 DENY 优先

权限沿对象层级自顶向下继承(Metalake → Catalog → Schema → Table)。DENY 永远优先于 ALLOW,无论出现在哪一层。

4.4 Authorization Pushdown

Gravitino 可将策略翻译并同步到底层系统(Apache Ranger / 数据源原生 ACL),保证即使绕过 Gravitino 直接访问底层,权限依然生效。

4.5 与 Apache Ranger 的分工

维度GravitinoApache Ranger
控制层面元数据面 — 拦截 metadata 请求数据面 — 拦截 SQL 执行
最细粒度表级行级 / 列级(含脱敏)
拦截位置Catalog 层引擎内部 Plugin
跨数据源✅ 天然统一⚠️ 需每个数据源配 Plugin
当前 Gap:IRC 模式下 per-user identity propagation 尚未支持(官方标注 planned for future release)。目前只有 Gravitino Trino Connector + forwardUser=true 可实现 per-user 鉴权。

5. 引擎集成方式

两条接入路径

特性Gravitino Engine ConnectorIceberg REST Catalog (IRC)
需要额外 JAR
支持引擎Trino, Spark, Flink, Daft任何 Iceberg 兼容引擎
Per-user 鉴权✅ forwardUser=true❌ 计划中
Credential Vending部分✅ 完整
非 Iceberg 表✅ Hive/MySQL 等❌ 仅 Iceberg

HUE → Trino → Gravitino 路径

HUE (LDAP)
Trino (impersonate)
Gravitino (RBAC)
数据

通过 gravitino.client.session.forwardUser=true,Trino 将每个 session user 的身份传递给 Gravitino,实现 per-user 权限裁决。

6. 典型场景

湖仓多 Catalog 统一

Hive + Iceberg + Glue 共存于迁移过渡期,通过 Gravitino 统一入口查询

跨云数据联邦

AWS + GCP + Azure 数据在一个 Catalog 视图中,Credential Vending 按云路由

并购整合

联邦被收购公司的 Catalog,不强制合并,所有权和审计留在对方

Data Mesh

各 BU 自治数据产品,Gravitino 提供统一发现和联邦治理

替代 HMS

突破 Hive Metastore 只能管 Hive/Iceberg 表的限制,成为新一代 Catalog

AI/ML 平台

统一管理 Table + Model + Lance 向量数据集,Data + AI 一体治理

AI Agent 数据助手

MCP Server 让 LLM Agent 有权限地发现和操作企业数据

中心化权限

一处 RBAC + Credential Vending + 审计,覆盖所有数据源

7. 竞品对比

维度GravitinoUnity Catalog (OSS)Apache PolarisAWS Glue CatalogSageMaker Catalog
定位 联邦 Catalog 引擎 中心化 Catalog Iceberg REST Catalog 托管 Catalog 数据资产发现平台
开源 Apache 2.0 Apache 2.0 Apache 2.0 闭源 闭源
多 Catalog 联邦 ✅ 核心特性
多云 S3+GCS+ADLS 有限 AWS Only AWS Only
资产类型 Table+File+Topic+Model+Func Table+Volume+Model+Func 仅 Iceberg Table Table+File (有限) 所有 AWS 数据资产
引擎中立 Trino/Spark/Flink/DuckDB Spark 为主 引擎中立 Athena/Redshift/EMR 不接入引擎
AI 集成 MCP+Lance+Model Model Registry 发现/编目
权限方式 自带 RBAC + Pushdown 自带 ACL 自带 RBAC Lake Formation/IAM 不做权限控制
面向对象 引擎 (机器) 引擎 (机器) 引擎 (机器) 引擎 (机器) 人 (发现/治理)
Gravitino 的差异化:它不是要替代 Unity/Polaris/Glue,而是可以联邦它们 — 把这些 Catalog 都注册为 Gravitino 下的一个 backend。

8. 已知采用者与社区

生产案例

公司场景来源
Pinterest规模化 Iceberg 迁移,Hive/Iceberg 表通过 Gravitino 统一查询公开演讲 (2025)
字节跳动 / BytePlusLAS 服务直接集成 Gravitino 作为元数据治理层BytePlus 官方文档
NexusOne多租户联邦 Iceberg 平台,扩展 Keycloak + Ranger 集成技术博客 (2026.03)

社区贡献者(代码参与)

Uber Apple Intel Pinterest eBay 小米 Cloudflare AWS 腾讯 Yahoo Roku TV Confluent Cloudera DuckDB LlamaIndex

9. 与 AWS 生态的关系

集成路径说明
Gravitino + EMRSpark Connector Plugin / IRC 方式接入 EMR Spark/Trino
Gravitino + Glue Catalog原生 Glue provider,注册为 Catalog backend,EMR 上免额外 JAR
Gravitino + S3 Tables通过 REST backend 代理 S3 Tables Iceberg REST endpoint
Gravitino + Lake Formation互补:Gravitino 管 metadata 访问控制,LF 管 S3 存储层权限
Credential Vending与 AWS STS AssumeRole 模型天然对齐

Gravitino vs SageMaker Catalog

业务用户
SageMaker Catalog
发现/编目/标注
引擎用户
Gravitino
查询/权限/联邦
数据

不是同一个场景的产物。SageMaker Catalog 面向(数据发现/治理),Gravitino 面向引擎(统一访问/权限控制)。一个解决"找到数据",另一个解决"访问数据"。两者可互补。

10. 发展趋势与未来规划

方向内容预期时间
Universal LakehouseIceberg + Delta Lake + Hudi + Paimon 多格式统一管理进行中
ABAC基于属性的访问控制(Sensitivity=High 等动态标签),替代静态 RBAC规划中
KMS 集成密钥管理服务集成,数据加密治理规划中
IRC per-user identity从引擎透传 per-user 身份到 IRC,实现端到端 per-user 鉴权关键待解决
Data Agent 编排MCP + Action System,AI Agent 自主发现并操作数据探索中
多模态数据栈Daft、Ray、Lance 深度集成,支持非表格数据进行中
趋势判断:Gravitino 正从"Metadata Catalog"演进为"Operational Metadata Platform"— 不仅管元数据,还提供 scan planning offload、credential vending、job execution 等运行时能力,向 Data Control Plane 迈进。