Apache Gravitino 概要介绍
摘要:Apache Gravitino是一个高性能、地理分布式的联邦元数据湖管理系统,提供统一的多源异构元数据管理方案。它支持关系型数据库、大数据存储、文件系统等多种数据源,具备REST API服务、实时元数据同步、统一访问控制和数据血缘追踪等核心功能。Gravitino能与Spark、Trino等计算引擎深度集成,并提供Python生态和云原生支持。该项目已在小米、腾讯等企业落地,通过直接管理模

作者: shaofeng shi
最后更新: [2025-12-29]
背景
在大数据时代,企业往往需要管理来自多云多域、异构数据源的元数据,如 Apache Hive、MySQL、PostgreSQL、Iceberg、Lance、S3、GCS 等; 此外,随着 AI 模型训练和推理的大量应用,海量的多模态数据、模型元数据等也需要一种方案进行管理。传统的做法是为每个数据源单独管理元数据,这不仅增加了运维复杂度,还容易造成数据孤岛。Apache Gravitino 作为一个高性能、支持地理分布式的联邦元数据湖,为我们提供了统一管理多源元数据的解决方案。
Gravitino 最初是由 Datastrato 公司发起并创立,在2023年开源,2024年捐赠给 Apache 孵化器,在2025年5月从 Apache 孵化器毕业,成为 Apache Top Level Project。目前已经在小米、腾讯、知乎、Uber、Pinterest 等企业落地生产环境。
什么是 Apache Gravitino?
Apache Gravitino 是一个高性能、地理分布式、联邦化的元数据湖管理系统,为用户提供统一的数据和AI资产管理平台,它能够:
- 统一元数据管理:为不同类型的数据源提供统一的元数据模型和API
- 直接元数据管理:直接管理底层系统,变更会实时反映到源系统
- 多引擎支持:支持Trino、Spark、Flink等多种查询引擎
- 地理分布式部署:支持跨区域、跨云的部署架构
- AI资产管理:不仅管理数据资产,还支持AI/ML模型的元数据管理
核心概念包括:
- Metalake:元数据的容器/租户,通常一个组织对应一个metalake
- Catalog:来自特定元数据源的元数据集合
- Schema:第二级命名空间,对应数据库中的schema概念
- Table:最底层的对象,表示具体的数据表

Apache Gravitino 核心特性概述
统一元数据管理
Gravitino 提供了一个统一的元数据管理层,支持多种数据源的集成:
支持的数据源类型:
- 关系型数据库:MySQL、PostgreSQL、OceanBase、Apache Doris、StarRocks 等
- 大数据存储:Apache Hive、Apache Iceberg、Apache Hudi、Apache Paimon、Delta Lake(开发中)
- 消息队列:Apache Kafka
- 文件系统:HDFS、S3、GCS、Azure Blob Storage、阿里云 OSS
- AI/ML 数据格式:Lance(专为AI/ML工作负载设计的列式数据格式)
REST API 服务
Gravitino 提供了丰富的 REST API 服务,支持不同数据格式的标准化访问:
Gravitino 核心 REST API
- 完整的元数据管理 RESTful API 接口
- 支持 Metalake、Catalog、Schema、Table 等所有元数据对象的 CRUD 操作
- 支持用户、组、角色和权限管理的完整 API
- 提供标签、策略、模型等高级功能的 API 接口
- 支持多种认证方式(Simple、OAuth2、Kerberos)
Iceberg REST 服务
- 遵循 Apache Iceberg REST API 规范
- 支持多种后端存储(Hive、JDBC、自定义后端)
- 提供完整的表管理和查询能力
- 支持多种存储系统(S3、HDFS、GCS、Azure等)
Lance REST 服务
- 实现 Lance REST API 规范
- 专为 AI/ML 工作负载优化
- 支持高效的向量数据存储和检索
- 提供命名空间和表管理功能
元数据实时获取和修改
Gravitino 采用直接元数据管理模式,确保数据的实时性和一致性:
- 实时同步:对元数据的变更会立即反映到底层数据源
- 双向同步:支持从 Gravitino 到数据源,以及从数据源到 Gravitino 的元数据同步
- 事务支持:保证元数据操作的原子性和一致性
- 版本管理:支持元数据的版本控制和历史追踪
统一访问控制
Gravitino 实现了跨多数据源的统一权限管理:
核心特性:
- 基于角色的访问控制(RBAC):支持用户、组、角色的灵活权限管理
- 所有权模型:每个元数据对象都有明确的所有者
- 权限继承:支持层次化的权限继承机制
- 细粒度控制:从 Metalake 到具体表的多层级权限控制
支持的权限类型:
- 用户和组管理权限
- 目录和模式创建权限
- 表、topic、fileset的读写权限
- 模型注册和版本管理权限
- 标签和策略应用权限
统一数据血缘
基于 OpenLineage 标准,Gravitino 提供了完整的数据血缘追踪能力:
- 自动血缘收集:通过 Spark 插件自动收集数据血缘信息
- 统一标识符:将不同数据源的标识符转换为 Gravitino 统一标识符
- 多数据源支持:支持 Hive、Iceberg、JDBC、文件系统等多种数据源的血缘追踪
高可用性和扩展性
部署模式:
- 单机部署:适合开发和测试环境
- 集群部署:支持高可用和负载均衡
- Kubernetes 部署:支持容器化部署和自动扩缩容
- Docker 支持:提供官方 Docker 镜像
存储后端:
- 支持多种元数据存储后端(MySQL、PostgreSQL等)
- 支持分布式存储系统
安全特性
认证方式:
- Simple 认证(用户名/密码)
- OAuth2 认证
- Kerberos 认证(针对 Hive 后端)
凭证管理:
- 支持云存储凭证代理(S3、GCS、Azure等)
- 动态凭证刷新
- 安全的凭证传递机制
Apache Gravitino 的集成能力
Gravitino 与主流计算引擎和数据处理框架深度集成,为用户提供统一的数据访问体验。
计算引擎集成
Apache Spark
- 通过 Gravitino Spark Connector 实现无缝集成
- 支持 Spark SQL 和 DataFrame API
- 自动数据血缘收集和追踪
- 支持多种数据源的统一访问
Trino
- 通过 Gravitino Trino Connector 服务集成
- 支持跨数据源的联邦查询
- 高性能的分析查询能力
Apache Flink
- 通过 Gravitino Flink Connector 服务集成
- 支持流批一体化数据处理
- 实时数据处理和分析
Python 生态集成
PyIceberg
- 支持 Python 环境下的 Iceberg 表访问
- 与 Gravitino Iceberg REST 服务集成
- 支持数据科学和机器学习工作流
- 提供 Pandas 兼容的数据接口
Daft
- 现代化的分布式数据处理框架
- 专为 AI/ML 工作负载优化
- 支持多模态数据处理
- 与 Gravitino 元数据管理集成
云原生集成
Kubernetes
- 支持 Kubernetes 原生部署
- 提供 Helm Charts 和 Operator
- 支持自动扩缩容和故障恢复
- 集成云原生监控和日志系统
API 和 SDK
REST API
- 完整的 RESTful API 接口
- 支持所有元数据管理操作
- 标准化的 HTTP 接口
- 支持多种认证方式
Java SDK
- 原生 Java 客户端库
- 类型安全的 API 接口
- 支持连接池和重试机制
- 完整的异常处理
Python SDK
- Python 客户端库
- 支持异步操作
- 与 Jupyter Notebook 集成
- 支持数据科学工作流
这些集成能力使得 Gravitino 能够无缝融入现有的数据基础设施,为用户提供统一、高效的数据管理体验。后续文章将详细介绍 Gravitino 的各项能力、各个集成组件的配置和使用方法,敬请关注。
下一步
- 敬请期待后续的一系列文章
- 关注和 star Apache Gravitino 代码库
Apache Gravitino正在快速发展中,本文基于最新版本编写。如遇到问题,建议查阅官方文档或在GitHub上提交issue。
更多推荐




所有评论(0)