在这里插入图片描述

作者: 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:最底层的对象,表示具体的数据表

Gravitino 整体架构

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 的各项能力、各个集成组件的配置和使用方法,敬请关注。

下一步


Apache Gravitino正在快速发展中,本文基于最新版本编写。如遇到问题,建议查阅官方文档或在GitHub上提交issue。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐