ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

元数据管理:OpenMetadata、DataHub、CKAN、Amundsen、Marquez、Metacat、Open Data Discovery、Magda

2026/8/8 2:27:17 拓冰建站 浏览量
元数据管理:OpenMetadata、DataHub、CKAN、Amundsen、Marquez、Metacat、Open Data Discovery、Magda

前作数仓系列之元数据及其管理偏向于理论介绍,本文汇总几个元数据管理相关工具或项目。

元数据管理解决方案监控整个生命周期中的数据,包括数据分析,数据价值,数据治理以及风险和合规性。

OpenMetadata

官网,开源(GitHub,14.7K Star,2.3K Fork)元数据管理平台,集成数据治理、数据协作、数据观测、数据发现(官方宣传)功能于一体,实际上也包括数据质量、数据血缘等功能;支持84+连接器。

优点:

  • 提供在线体验Demo环境,有助于推广拉新
  • UI界面美观漂亮,界面操作逻辑符合国人使用习惯
  • 项目年轻,能够在已有的众多数据资产项目中吸取经验
  • 集成数据质量模块
  • 支持开放数据标准
  • 基于数据可观测的新理念设计

五层结构

从下到上包括:

  • Schemas:JSON Schema定义所有元数据实体,是整个系统的词汇表。使用类型、实体和实体之间关系的模式,定义元数据的核心抽象和词汇。开放元数据标准的基础,支持具有自定义属性的实体和类型的可扩展性
  • Metadata Store:MySQL/PG存储元数据,ES/OpenSearch负责搜索索引
  • REST APIs:Java21+Dropwizard构建的REST API,主端口8585
  • Ingestion Framework:摄取框架,Python编写的采集框架,通过Airflow调度,84+数据源连接器
  • User interface:用户界面,用户发现所有数据并就所有数据进行协作的单一位置

核心功能

  • 数据协作:通过活动源获取事件通知。使用webhook发送警报和通知。添加公告以通知团队即将发生的更改。添加任务以请求描述或术语表术语批准工作流程。添加用户提及并使用对话线程进行协作
  • 数据质量和分析器:标准化测试和数据质量元数据。将相关测试分组为测试套件。支持自定义SQL数据质量测试。有一个交互式仪表板可以深入了解详细信息
  • 数据血缘:支持丰富的列级沿袭。有效过滤查询以提取沿袭。根据需要手动编辑谱系,并使用无代码编辑器连接实体
  • 全面的角色和策略:处理复杂的访问控制用例和分层团队
  • 连接器:支持连接到各种数据库、仪表板、管道和消息传递服务的84个连接器
  • 术语表:添加受控词汇来描述组织内的重要概念和术语。添加词汇表、术语、标签、描述和审阅者。
  • 数据安全:支持Google、Okta、自定义OIDC、Auth0、Azure、Amazon Cognito和OneLogin作为SSO的身份提供商。支持AWS SSO和Google基于SAML的身份验证

Schema-First:一份定义驱动三端代码。所有实体定义只写一次JSON Schema,make generate命令,可生成Java POJO(后端)、Python Pydantic 模型(Ingestion)、TypeScript interface(前端)三端模型代码。前后端对同一个"表"的理解永远一致,后端加字段,前端必然同步知道。

核心实体定义在openmetadata-spec/src/main/resources/json/schema/

  • table.json:13种表类型,28+数据类型
  • tag.json:分类标签
  • glossary.json:术语表
  • testCase.json:数据质量测试用例
  • testSuite.json:测试套件
  • lineage.json:列级血缘关系

连接器是元数据平台的命脉:

类别数量代表
数据库50+MySQL、PG、BigQuery、Snowflake、Redshift、ClickHouse、MongoDB、Databricks、Oracle
仪表盘15+Tableau、Looker、PowerBI、Superset、Metabase、Grafana、Redash
管道15+Airflow、Dagster、dbtCloud、Fivetran、Airbyte、NiFi、Flink
消息队列5Kafka、Kinesis、Pub/Sub、Redpanda
存储2S3、GCS
ML模型3MLflow、SageMaker

每个连接器目录结构一致:connection.py连接、metadata.py提取元数据、lineage.py解析血缘、service_spec.py定义服务规格。

列级血缘分两条路:数据库内置查询(如Snowflake的ACCESS_HISTORY)和SQL日志解析。SQL解析用自研的collate_sqllineage库,基于ANTLR做15+方言的语法分析,最终用NetworkX DiGraph构建有向血缘图。

数据质量方面,内置25种测试类型,分两大类:

  • 列级测试(14种):唯一性、非空、值域范围、正则匹配、集合包含/排除、长度、统计分布(均值、中位数、标准差)
  • 表级测试(11种):行数校验、列数校验、列存在性、自定义SQL、表对比(Table Diff)

测试定义在仓库里就是JSON文件,如columnValuesToBeUnique.json定义唯一性校验的模板参数,tableRowCountToBeBetween.json定义行数范围校验。通过UI无代码创建测试用例,按Test Suite组织,执行结果直接展示在仪表盘上。

Profiler模块(ingestion/src/metadata/profiler/)负责自动采样统计,支持不同数据库的专用采样策略。实际效果:给BigQuery里的订单表加"金额不为空""状态在枚举范围内"的约束,每天自动跑,结果自动推——不用写一行代码。

治理分四层:

  • 标签(Tags):层级分类标签,UI手动打标或Auto Classification自动分类
  • 术语表(Glossary):统一定义"收入""活跃用户"这类业务术语,关联到具体数据资产
  • 所有权(Ownership):给表、仪表盘、管道指定Owner和Steward
  • 数据域(Domains)与数据产品(Data Products):按业务域组织资产,形成可发现、可复用的数据目录

权限基于RBAC,SSO支持Google、Okta、Azure AD、Auth0、AWS Cognito、SAML、LDAP,JWT认证。基本覆盖企业常见身份体系。实现完整OAuth 2.0授权服务器:

  • RFC 7636 PKCE授权码流程,复用OpenMetadata已有的SSO认证
  • Token加密存储(Fernet),Access Token 1小时、Refresh Token 7天自动轮转
  • MCP工具执行时使用用户身份,遵守RBAC策略,权限边界和UI一致

MCP集成,支持三个工具:GetLineageTool、SearchTool、DiscoveryTool。

Python采集(Ingestion)框架的调度依赖Apache Airflow,如果团队目前没用Airflow,就得多引入一个组件。

实战

如果想快速体验功能,建议使用官方在线sandbox,使用Google单点登录,左侧边栏如下:


以及

探索

数据集市(Data Marketplace)

治理-术语库

解读:

  • 术语库下有若干个术语
  • 术语有从属关系、描述、状态、所有者,可添加标签
  • 可对术语点赞、点踩
  • 术语有版本历史

治理-本体浏览器

信息量有点大

治理-列批量操作

解读:

  • 列名可能重复,出现在不同资产(表)里
  • 列名唯一出现在某资产里时,资产列可跳转
  • 描述,其实就是状态,有4种:完成、不完整、不一致、丢失的
  • 搜索条件默认有列名、服务、资产类型、状态,支持添加自定义过滤条件


添加过滤

基于源码和Docker Compose部署:

gitclone https://github.com/open-metadata/OpenMetadata.gitcdOpenMetadatadockercompose-fdocker/docker-compose-quickstart/docker-compose.yml up-d

莫名其妙,这是在下载电影吗???

其中.git隐藏文件夹有2.83G

早知道可使用浅克隆,参考Git拓展。

浏览器打开管理界面http://localhost:8586,默认账号:admin/admin,API文档打开http://localhost:8585

DataHub

官网,Linkedin开源(GitHub,12.5K Star,3.6K Fork)、为现代数据栈而生的元数据平台,目的就是为了解决多种多样数据生态系统的元数据管理问题,提供元数据检索、数据发现、数据监测和数据监管能力,解决数据管理的复杂性。官方文档。

采用基于推送的数据收集架构(当然也支持pull拉取的方式),能够持续收集变化的元数据。当前版本已集成大部分流行数据生态系统接入能力,包括但不限于:Kafka、Airflow、MySQL、SQL Server、Postgres、LDAP、Snowflake、Hive、BigQuery。

优点:

  • 底层架构灵活先进,未扩展集成而生,支持推送和拉去模式
  • UI界面简单易用,技术人员及业务人员友好
  • 接口丰富,功能全面

不足:

  • 前端界面不支持国际化,界面的构建和使用逻辑不够中国化
  • 版更更新迭代快,使用后升级是个难题
  • 较多功能在建设中,如Hive列级血缘
  • 部分功能性能还需要优化,如SQL Profile

架构图

CKAN

官网,世界领先的开源(GitHub,5.1K Star,2.1K Fork)数据门户平台,用于制作开放数据网站的工具,使发布、共享和处理数据变得容易。数据管理系统,为编目、存储和访问数据集提供强大平台,具有丰富前端、完整API(用于数据和目录)、可视化工具等。

优点:

  • Python主要开发语言,上手入门不难
  • 历史悠久,有大量的政府、研究组织用来开放公开数据
  • 使用简单、独立部署
  • 功能聚焦,中小规模数据编目、开发、预览及下载

不足:

  • 聚焦于数据门户,即编目组织数据、提供数据预览及下载
  • 海量数据传输,性能有问题
  • 不支持现代大数据同步、集成
  • 功能相对单一

Amundsen

官网,Lyft开源(GitHub,4.8K Star,964 Fork)数据发现和元数据管理平台,旨在提高数据分析师、数据科学家和工程师与数据交互时的生产力。

提供用户友好的界面,使用户可搜索、浏览和贡献数据集的元数据信息,支持与其他数据工具和平台的集成。通过索引数据资源(表格、仪表板、数据流等)并基于使用模式(如查询频率高的表格会优先于查询频率低的表格)提供页面排名式的搜索功能来实现这一目标。

优点:

  • Lyft大厂开源,社区活跃,版本更新较多
  • 定位清晰明确,与Datahub类似,致力于成为现代数据栈中的数据目录产品
  • 支持对接较多的数据平台与工具
  • 微服务架构:支持通过Databuilder框架自定义元数据采集任务,支持ES/OpenSearch、PostgreSQL/MySQL、AWS Neptune、Neo4j作为后端存储

不足:

  • 中规中矩的UI界面,操作便捷性不足
  • 血缘、标签、术语等功能方面不如Datahub使用便捷

对比其他项目

工具核心差异点
Atlas与Hadoop生态深度耦合,偏重安全与治理;Amundsen轻量且UI友好
DataHub原生支持流式元数据(Kafka)、GraphQL API;更早专注"搜索体验优化"
OpenMetadataApache开源目录,侧重元数据事件流与治理工作流;专注于搜索与协作体验

Marquez

官网,主要使用Java开发、开源(GitHub,2.3K Star,407 Fork)数据资产的可视化及血缘展示。

优点:

  • 界面美观,操作细节设计比较棒
  • 部署简单,代码简洁
  • 依靠底层OpenLineage协议,结构较好

不足:聚焦数据资产/血缘的可视化,数据资产管理的一些功能,需要较多开发工作。

Metacat

Netflix开源(GitHub,1.7K Star,286 Fork)的数据发现和元数据管理平台,提供统一的接口来查找和浏览各种数据集的元数据信息,并支持与其他数据工具和服务的集成。

核心架构涉及三项关键服务:执行服务(Genie)、元数据服务(Metacat)和事件服务(Microbots)。


充当所有数据存储的元数据访问层,也是各种计算引擎可用来访问不同数据集的集中式服务。

三个主要目标:

  • 元数据系统的联合视图
  • 用于数据集元数据的统一 API
  • 数据集的任意业务和用户元数据存储

功能

  • 数据抽象和互操作性
  • 业务和用户定义的元数据存储
  • 数据发现
  • 数据变更审计和通知
  • Hive Metastore优化

Open Data Discovery

简称ODD,官网,开源(GitHub,1.4K Star,143 Fork)的数据发现和可观测性平台。旨在通过使数据更易于发现、管理、可观察、可靠和安全,帮助数据驱动企业实现数据民主化。ODD支持开放数据标准,数据团队能够在各种数据工具之间进行更高效的数据交换。

优点:

  • 提供在线体验Demo环境,有助于推广拉新
  • UI界面美观漂亮,界面操作逻辑符合国人使用习惯
  • 项目年轻,能够在已有的众多数据资产项目中吸取经验
  • 集成了数据质量模块
  • Datahub有的一些优秀功能都做了规划
  • 支持开放数据标准,感觉也没啥用,国内玩不转
  • 提供了调度工作流告警接口
  • 基于数据可观测的新理念设计
  • ML是第一等公民,这个是对赌未来的AI发展预期

实战

官方提供在线demo,支持Google和GitHub两种授权登录方式。

先看看管理,当前支持:命名空间、数据源、集成、收集者、拥有者、标签、角色、政策

管理-集成

目前支持31种外部集成:Airbyte、Cassandra、CKAN、ClickHouse、CockroachDB、Couchbase、Databricks、Apache Druid、DuckDB、Elasticsearch、Hive、MariaDB、Metabase、MongoDB、SQL Server、MySQL、Neo4j、Oracle、PG、Presto、Redash、Redshift、scylladb、SingleStore、Snowflake、Spark、SQLite、Superset、Tableau、Tarantool、Trino。

管理-数据源

Magda

官网,开源(GitHub,604 Star,105 Fork)数据目录系统,提供数据编目、增强、搜索、跟踪和排序等功能。支持内部、外部数据源,支持大数据及小数据处理,支持通过文件、数据库或API的方式对外提供数据资产服务。

目标用户:数据技术人员,例如数据分析师、数据科学家和数据工程师。

价值目标:为数据技术人员,提供历史数据版本管理、重复数据检测等辅助功能,提高数据查询、管理的效率及质量。

优点:

  • 轻量简单的数据目录管理平台,界面朴素简洁
  • 支持数据预览、地图数据
  • 功能聚焦,独立部署

不足:

  • 功能相对单一,与下面的CKAN一样,定位于数据编目,数据展示及共享
  • 海量数据传输,性能有问题
  • 不支持现代大数据同步、集成

实战

官方提供在线体验demo,不过打不开no healthy upstream

商业平台

Collate

官网,Open Metadata的SaaS版本。

Alation

官网,商业数据目录,UI简单、一致且直观。

Atlan

官网,元数据管理、数据治理统一协同工作台,功能丰富,如数据目录和发现、数据血缘和治理以及数据探索和集成。内置支持多种数据质量工具。

优点:

  • 功能丰富、支持协同工具,Slack等集成
  • UI界面美观、操作指引友好
  • 内置支持多种数据集成工具及数据探索工具

不足:其实是商用产品,仅部分开源(GitHub)。

Monte Carlo

官网,数据平台,可帮助数据团队解决数据停机问题,使他们能够更有效地处理仪表盘,更快地训练更准确的ML模型,并推动分析操作。广泛关注机器学习驱动的数据可观测性,为数据团队提供深入研究数据和大规模识别潜在问题的高级能力。与许多其他专有数据目录解决方案一样,将用户锁定到自己的数据接收协议中。缺少某些ML实体,可能会破坏当今许多组织的交易。

Datakin

官网,Marquez的商用SaaS版本, 支持Apache Hive、Amazon RDS、Teradata、Amazon Redshift、Amazon S3、Cassandra。

Metaphor

官网,DataHub的商业SaaS版本。

Stemma

官网,Amundsen的商业SaaS版本。

Ataccama

官网,AI驱动的数据和元数据企业平台,具有数据质量、主数据管理和数据集成组件。UI,使快速分析团队、高度监管的治理团队和技术数据团队能够轻松处理其数据资产。优点是非常注重数据质量,对敏捷、数据驱动的组织至关重要。