摘要:导读在大数据和 AI 时代,统一元数据管理解决方案在数据治理中扮演着关键角色,Apache Gravitino 提供了元数据管理的新范式。通过统一命名、权限、血缘等机制,提升了数据使用和治理效率,尤其在 Iceberg 数据湖架构中展现出优势。Apache G
导读在大数据和 AI 时代,统一元数据管理解决方案在数据治理中扮演着关键角色,Apache Gravitino 提供了元数据管理的新范式。通过统一命名、权限、血缘等机制,提升了数据使用和治理效率,尤其在 Iceberg 数据湖架构中展现出优势。Apache Gravitino 0.8 版本还新增了对 AI、机器学习模型的元数据管理功能,进一步增强了数据治理的统一性,并在业内多家公司有落地案例和显著收益。
今天的介绍会围绕下面几点展开:
1. 新时代下数据湖管理的新挑战
2. Apache Gravitino 整体架构设计
3. 为什么需要 Rest Catalog(以 Iceberg 为例)
4. 使用 Gravitino 实现对多种数据湖的统一管理
5. Gravitino 成功案例
6. Gravitino 未来展望
分享嘉宾|史少锋 Datastrato VP of engineering
编辑整理|李天烨
内容校对|李瑶
出品社区|DataFun
01
新时代下数据湖管理的新挑战
1. 多云导致数据孤岛问题凸显,数据地域保护越发加剧此问题
当前数据存储形态呈现多元化格局,公有云、私有云及各类数据中心构成复杂的数据基础设施网络,这种分散化部署模式导致数据孤岛问题日益凸显,数据难以实现跨系统、跨地域的高效流通与协同利用。
随着 AI 应用的快速发展,数据合规性与治理要求达到了前所未有的高度。企业若想充分释放数据资产价值,必须构建统一的数据管理框架,实现对数据资产的全面了解和掌控。
2. 企业数据湖类型众多,如何统一发现、管理和治理?
实际工作中,不同团队、不同工程师及业务人员在数据使用过程中,亟需一种高效统一的数据发现与使用机制。从技术层面来看,Spark、Trino、Flink 等主流计算引擎,以及 Ray、PyTorch、TensorFlow 等常见 AI 机器学习框架,都面临着如何高效访问存储在不同系统中的数据的问题。对于 AI 工程师与算法工程师而言,如何以快速、便捷的方式定位并访问所需数据,已然成为行业新形势下普遍面临的挑战与痛点。
3. 潜藏的问题尤为重要
在这些不同形态数据的背后,还隐藏着更深层次的数据,即描绘数据的数据(也是元数据),例如数据属于哪个业务场景、属主是谁,数据的版权、生命周期、敏感隐私分级等,这些信息对更好地管理和使用数据至关重要。
在新的数据形态下,以往的元数据管理系统无法满足新场景的需求,因此我们孵化出了 Apache Gravitino。
02
Apache Gravitino 整体架构设计
Apache Gravitino 已构建起完善的元数据管理生态体系,其底层架构具备强大的兼容性,可无缝对接数据湖、数据仓库、实时消息流及非结构化数据存储,在 0.8 版本中还引入了对 AI、机器学习模型元数据的管理能力。
在数据湖适配方面,Gravitino 支持 hive、Iceberg、Hudi、Paimon 等主流数据湖表格式,不仅支持元数据的高效读取,还通过标准化统一 API,实现对 catalog、Schema、table 等元数据对象的全流程操作,涵盖创建、修改、删除等核心功能。这一设计显著提升了元数据管理的灵活性与操作效率。
在上层应用层面,Gravitino 深度集成 Trino、Spark、Flink 等主流计算引擎,实现了跨平台元数据的统一管理与协同调度,可有效降低多引擎环境下的管理复杂度与治理成本。
通过构建企业级数据与 AI 资产的全景视图,Gravitino 不仅实现了数据资产的系统化管理,更打通了数据消费链路,并提供统一的数据访问控制与权限管理机制,结合操作日志全链路追踪能力,为企业数据安全管控与合规审计提供坚实保障,助力构建安全、透明、高效的数据治理体系。
1. Apache Gravitino 核心架构
Gravitino 内部顶层的逻辑单元为 Metalake(metadata lake 的缩写),包含一个或多个不同类型的 Catalog,如 HiveCatalog、Iceberg Catalog、Paimon Catalog,或 Fileset Catalog、Modle Catalog、Streaming Catalog 等。Catalog 下面是 Schema,Schema 下面是具体的 Table、Fileset、Modle、Topic 等。每一层都会有自己的元数据,比如表的列、分区、主键等信息,以及 Fileset 的存储位置等,供引擎读取操作使用。
Gravitino 上层提供了一套统一的 REST API,作为操作访问接口。此外针对 Iceberg,提供了 Iceberg REST API 的实现。
在这些标准 API 之上,用户可以方便地构建统一访问、统一血缘、统一权限等数据治理的能力。
2. 统一结构化和非结构化数据的访问
Gravitino 实现了对结构化和非结构化数据的统一访问。
针对结构化数据,Gravitino 为 Spark、Flink、Trino 等引擎提供了 Connector,安装后用户无需关注表所属的具体的 Catalog 或集群,通过三段式的逻辑名称即可在 SQL 中直接访问和使用。
针对非结构化数据,Gravitino 推出了虚拟文件系统解决方案,可将 S3、HDFS、ADLS 或 GCS 上的存储位置快速注册为虚拟 Fileset,通过逻辑名称完成数据访问,无需关注底层存储细节。虚拟文件系统提供了两种实现:其一为基于 Hadoop HCFS 的 GVFS(Gravitino Virtual File System),适用于大数据生态,用户只需将 HDFS 路径替换为 GVFS 路径,即可无缝访问数据;其二为 Python 文件系统,通过封装分布式存储特性,在 Python 环境中可以像操作本地文件一样进行数据读写。
03
为什么需要 REST Catalog(以 Iceberg 为例)
1. Apache Iceberg & Catalog
Apache Iceberg 是一个开放的高性能数据表格式,用来管理超大规模数据集,它提供了 ACID、Full Schema Evolution、隐藏分区等优秀特性。
Iceberg 的 Catalog 将一批表按照 Namespace 进行组织,便于用户管理和搜索目标表,并提供查看 Schema、创建新增表等操作。Iceberg 提供了多种 Catalog 接口适配不同的注册服务,如 HiveCatalog,JDBCCatalog 等;目前社区最为推荐的是 REST Catalog。
2. 为什么不建议用 Hive 作为 Iceberg Catalog
作为大数据领域的经典元数据管理方案,Hive Metastore 受制于早期设计理念与技术条件,在应对大规模量级的表时暴露出诸多局限性,首先,其默认采用单机 MySQL 作为元数据存储引擎,在数据量与并发请求持续攀升的生产环境中,性能与并发处理能力存在天然瓶颈;其次,面对复杂的多表同时提交修改的情况,HMS 的全局锁机制极易引发并发下降、甚至死锁等问题,直接导致数据处理任务性能急剧下降;此外,仅支持基础的 Schema 和 Partition 语义,难以满足现代数据仓库对复杂数据建模的多样化需求。同时,Hive Metastore 本身的部署与运维工作也较为繁琐,维护成本高。
3. Iceberg REST catalog 及优势
REST Catalog 是一套基于 HTTP 的标准 API,请求和响应消息使用 Json 格式,与语言解耦。通过 Server 模式提供服务,既便于记录访问日志,也可以复用控制逻辑,减少不同类型客户端的适配和开发成本。还可以利用缓存,或使用高性能软硬件,提供更好的性能。使用 REST Catalog 的调试难度远低于传统二进制协议(如 HiveMetastore 的 Thrift 协议),监控和审计也更加便捷。
4. Gravitino Iceberg REST Service 及增强
Gravitino Iceberg REST Service 完全兼容 REST Catalog 协议,用户无需新的学习和迁移成本,可以从既有服务平滑切换到 Gravitino。
Gravitino Iceberg REST Service 在如下方面做了功能增强:
可插拔:用户无需关注 Catalog 后端存储细节,可以无感切换,减少对单一存储方式的耦合。安全性:支持 OAuth 认证;Gravitino 还可以利用 Credential vending 机制生成访问数据的临时 token 或静态凭证,为控制客户端对云上数据的访问提供了更加安全的方式。可观测性:提供了统一的指标收集和存储,便于获取表数据的使用情况。Event listener 机制:支持自定义的事件处理逻辑,自定义二次开发。04
使用 Gravitino 实现对多种数据湖的统一管理
1. Gravitino 支持多种数据源
除 Iceberg 外,Gravitino 支持多种数据源,如 Hive、Paimon、Doris、Kafka 等,提供统一的元数据治理功能,帮助用户实现数据资产的高效管理与便捷使用。
目前,主流的大数据引擎(如 Spark、Trino、Flink)都已经可以通过 Gravitino 访问并操作 Hive、Iceberg、Paimon 等数据源;各引擎对 JDBC 数据源的支持即将在 0.9 版本发布,Hudi 的支持社区也已经在进行开发中。
2. 统一命名:简化数据资产的发现、管理和使用
Gravitino 为企业内的表、文件、消息流等各类数据资产赋予唯一数据坐标,通过统一命名实现精准标识。基于统一数据坐标,可以快速定位数据,显著降低查找与沟通成本。
在 Spark、Flink 等多引擎数据处理场景下,以统一坐标贯通各数据系统,可有效减少数据操作错误,提升数据处理效率与协同能力。
3. 统一血缘:追踪数据流动,提升数据质量与可追溯性
基于统一命名,可以实现数据资产在全链路流转与加工过程中的精准追踪,从而构建起覆盖数据全生命周期的端到端统一血缘信息,清晰呈现数据从源头到终端的演变脉络。
Gravitino 与 Openlineage 进行了探讨与合作,Openlineage 是一个专注于数据血缘领域的开源项目,它通过 Job 将 Dataset 串联起来形成数据血缘。Gravitino 借助 Openlineage 在血缘追踪方面的技术优势,进一步完善自身的数据治理能力,为用户提供更精准、更全面的数据血缘分析。
4. 统一权限:确保数据访问的安全性与合规性
过去,多种数据系统的权限模型各不相同,平台管理员需要到各个系统中分别为用户设置访问权限,过程繁琐且容易出错;现在,Gravtino 引入统一 RBAC 权限模型,并通过插件将其写入到源系统中;这样管理员就可以基于 Gravitino 里的元数据和权限模型进行统一的权限管理,大大降低复杂度和出错概率,从而提升了整体的数据安全性。
5. 多集群和多版本管理
Gravitino 支持大数据环境下的多引擎、多集群、多版本管理,通过统一接口,用户和应用程序可使用相同 API 访问不同版本的 hive 集群,从而大幅降低集群迁移、运维的成本。
05
Gravitino 成功案例
Gravitino 已在多家海内外公司实现落地应用,接下来介绍一些成功案例。
1. 应用案例:腾讯云 - TBDS 在某大银行湖仓一体项目
腾讯云 TBDS 大数据套件已经内置 Gravitino,为客户构建了统一元数据管理中枢,可实现多集群元数据的集约化管控与协同调用。通过统一元数据框架,TBDS 深度契合数据资产治理的合规要求,助力客户规范数据全生命周期管理。在版本迭代升级时,TBDS 依托 Gravitino 的技术特性,保障元数据无缝迁移、平稳过渡,有效规避数据迁移风险,为企业数据管理提供了稳定、高效、合规的一站式解决方案。
2. 应用案例:小米 - Open Data Catalog for Data + AI
小米通过 Gravitino 管理 AI 时代下的表格数据和非结构化数据,支持公司机器学习及 AI 技术业务发展。
在 AI 时代浪潮下,小米借助 Gravitino 搭建起统一的数据管理框架,实现了对结构化数据与非结构化数据的高效治理。通过 Gravitino 的强大能力,小米打破数据壁垒,让多元异构数据得以有序整合,为机器学习、AI 技术研发等核心业务提供了坚实的数据底座,对加速 AI 应用落地,推动业务创新发展起到了重要作用。
小米依托 Gravitino 的统一元数据管理能力,全面优化了数据生命周期管理流程。通过精准的元数据洞察,小米高效推进数据冷热分离策略,成功降低 40% 的存储成本。同时,借助 Gravitino 对非结构化数据的统一管理,实现 DataOps 到 MLOps 的在线化,一方面大大提升了数据加工提炼到算法开发、模型训练的开发效率,另一方面削减数据拷贝成本,规避了数据外发泄漏的风险,实现工作流的精简与优化,为 AI 研发与业务创新注入强劲动能。
3. 应用案例:Bilibili 哔哩哔哩
Bilibili 基于 Gravitino 打造了 OneMeta 元数据管理平台,实现了对 Hive、Iceberg、Kafka 以及零散 HDFS 文件的全方位覆盖与整合。通过 Gravitino 强大的元数据追踪能力,高效捕捉数据变更动态,建立起统一的治理审计体系,有效规范了数据使用流程。这一举措不仅让数据管理更加透明、安全,更成功削减数百PB级存储成本,显著提升数据资源利用效率,为内容生态的持续发展提供了坚实的数据支撑。
06
Gravitino 未来展望
当前最新版本为 v0.8,已全面覆盖主流功能需求,并新增了 Model Catalog、对 FUSE 和 CSI 的支持,以及更好的权限管控。下一版本 v0.8.1,主要包括一些 bug fix,以及版本依赖的 clearance。
在历经一年多的稳健发展后,Gravitino 项目已展现出相当高的成熟度,因此很快将推进从 Apache 孵化器毕业的讨论。
在 0.8.1 之后的 0.9 版本,将升级 ICR 至最新版本,进一步增强模型管理能力,提供数据血缘的功能,并对权限、性能等方面进行深度优化。
以上就是本次分享的内容,谢谢大家。
来源:DataFunTalk