Apache Gravitino 简介

发布: (2026年1月17日 GMT+8 07:05)
8 min read
原文: Dev.to

Source: Dev.to

作者: shaofeng shi
最后更新: 2025‑12‑29

概览

在大数据时代,企业常常需要管理来自多云、多域以及异构数据源(例如 Apache Hive、MySQL、PostgreSQL、Iceberg、Lance、S3、GCS 等)的元数据。随着 AI 模型训练和推理的快速普及,大规模的多模态数据和模型元数据也需要统一的管理方案。

传统方法对每个数据源的元数据单独管理,这会增加运维复杂度并导致数据孤岛。Apache Gravitino——一个高性能、地理分布式的联邦元数据湖——提供了统一的多源元数据管理解决方案。

项目历史

里程碑日期
Datastrato Inc. 发起并创立
开源2023
捐赠至 Apache 孵化器2024
晋升为 Apache 顶级项目2025 年 5 月

已在小米、腾讯、知乎、Uber 和 Pinterest 等公司投入生产使用。

什么是 Apache Gravitino?

一个高性能、地理分布式、联邦的元数据湖管理系统,提供统一的数据与 AI 资产管理平台。它可以:

  • 统一元数据管理 – 为多种数据源提供统一的模型和 API。
  • 直接元数据管理 – 更改实时反映到底层系统。
  • 多引擎支持 – 可与 Trino、Spark、Flink 等协同工作。
  • 地理分布式部署 – 支持跨区域、跨云的架构。
  • AI 资产管理 – 同时管理数据资产和 AI/ML 模型元数据。

核心概念

概念描述
Metalake元数据的容器/租户;通常是“一组织 ↔ 一个 metalake”。
Catalog来自特定来源的元数据集合。
Schema二级命名空间(相当于数据库模式)。
Table最底层对象,代表具体的数据表。

支持的数据源

类别类型
关系型数据库MySQL, PostgreSQL, OceanBase, Apache Doris, StarRocks, …
大数据存储Apache Hive, Apache Iceberg, Apache Hudi, Apache Paimon, Delta Lake (in development)
消息队列Apache Kafka
文件系统HDFS, S3, GCS, Azure Blob Storage, Alibaba Cloud OSS
AI/ML 数据格式Lance (columnar format optimized for AI/ML workloads)

REST API 服务

Gravitino Core REST API

  • 对所有元数据对象(Metalake、Catalog、Schema、Table 等)提供完整的 CRUD
  • 用户、组、角色和权限管理
  • 高级功能:标签、策略、模型等
  • 认证方式:Simple、OAuth2、Kerberos

Iceberg REST Service

  • 实现 Apache Iceberg REST API 规范
  • 支持 Hive、JDBC 以及自定义后端作为存储
  • 跨 S3、HDFS、GCS、Azure 等的表管理与查询能力

Lance REST Service

  • 实现 Lance REST API 规范
  • 为 AI/ML 工作负载(向量数据存储与检索)进行优化
  • 命名空间和表管理

Direct Metadata Management

  • 实时同步 – 将元数据更改立即传播到底层源。
  • 双向同步 – 同时实现从 Gravitino → 源以及源 → Gravitino 的同步。
  • 事务支持 – 确保元数据操作的原子性和一致性。
  • 版本管理 – 元数据版本控制与历史追踪。

统一权限管理

功能描述
RBAC灵活的用户、组和角色的权限处理。
Ownership Model每个元数据对象都有明确的所有者。
Permission Inheritance从 Metalake 到表的层级继承。
Fine‑grained Control多层级权限(Metalake → Catalog → Schema → Table)。

支持的权限类型

  • 用户和组管理
  • 目录和模式创建
  • 对表、主题、文件集的读/写
  • 模型注册与版本控制
  • 标签和策略应用

Data Lineage (OpenLineage)

  • 自动血缘收集 – 通过 Spark 插件。
  • 统一标识符 – 将跨源的标识符标准化为 Gravitino ID。
  • 多源支持 – Hive、Iceberg、JDBC、文件系统等。

部署模式

  • 单节点 – 开发与测试。
  • 集群 – 高可用性与负载均衡。
  • Kubernetes – 容器化部署并自动扩缩。
  • Docker – 提供官方 Docker 镜像。

存储后端

  • 关系型数据库:MySQL、PostgreSQL、…
  • 分布式存储系统(可插件化)。

认证方式

  • 简单(用户名/密码)
  • OAuth2
  • Kerberos(用于 Hive 后端)

凭证管理

  • 云存储凭证供应(S3、GCS、Azure、…)
  • 动态凭证刷新
  • 安全凭证传递机制

与计算引擎的集成

Gravitino 深度集成主流计算引擎和数据处理框架,提供统一的数据访问体验。

  • Apache Spark – 无缝的元数据同步和血缘追踪。
  • (其他引擎如 Trino、Flink 等也受支持。)

Source:

Apache Gravitino 的集成能力

Gravitino 提供了一套丰富的连接器和 SDK,帮助您以最小的工作量接入现有的数据基础设施。以下章节概述了每个集成点及其关键特性。

🌟 Gravitino Spark Connector

支持 Spark SQL 和 DataFrame API

  • 自动收集和追踪数据血缘
  • 对多种数据源的统一访问

🔎 Trino Connector

通过 Gravitino Trino Connector 服务进行集成

  • 跨异构数据源的联合查询
  • 高性能的分析查询能力

通过 Gravitino Flink Connector 服务进行集成

  • 流批统一的数据处理
  • 实时数据处理与分析

🐍 PyIceberg

面向 Python 环境的 Iceberg 表访问

  • 连接 Gravitino Iceberg REST 服务
  • 支持数据科学和机器学习工作流
  • 提供兼容 Pandas 的数据接口

🚀 Daft

现代分布式数据处理框架

  • 为 AI/ML 工作负载进行优化
  • 支持多模态数据处理
  • 与 Gravitino 元数据管理深度集成

☸️ Kubernetes

在 Kubernetes 集群上的原生部署

  • Helm Chart 与 Operator,轻松安装
  • 自动扩缩容和故障恢复能力
  • 与云原生监控、日志系统集成

🌐 REST API

完整的元数据管理 RESTful 接口

  • 支持对目录、模式、表等的全部 CRUD 操作
  • 标准化的 HTTP 端点
  • 多种认证方式(如 token、OAuth)

☕ Java SDK

原生 Java 客户端库

  • 类型安全的 API
  • 内置连接池和重试机制
  • 完备的异常处理

🐍 Python SDK

Python 客户端库

  • 支持异步操作
  • 与 Jupyter Notebook 无缝集成
  • 为数据科学工作流量身定制

为什么这些集成很重要

这些能力使 Gravitino 能够 无缝集成 到现有的数据生态系统,为用户提供 统一且高效 的数据管理体验。后续文章将深入探讨每个组件的配置和使用模式——敬请期待!

👉 继续阅读: Setup Guide

⭐️ 关注并为项目加星: Apache Gravitino Repository

注意: 本文档基于 Apache Gravitino v1.1.0 的特性。欲获取最新信息,请查阅官方文档或在 GitHub 上提交 Issue。

Back to Blog

相关文章

阅读更多 »