DataHub(datahub-project/datahub)项目全面系统介绍-开源项目


DataHub(datahub-project/datahub)项目全面系统介绍

一、项目基础概况

1. 项目起源与定位

DataHub 是 LinkedIn 开源、面向现代数据栈的一站式元数据平台/数据目录,仓库地址:https://github.com/datahub-project/datahub,开源协议 Apache 2.0。 核心定位:实时元数据图谱平台,解决企业数据孤岛、数据不可发现、无统一治理、数据链路不可视、数据资产无管理等痛点,是数据治理、数据可观测、数据发现一体化基础设施。

2. 技术栈与代码仓库结构

仓库采用多语言分层开发,核心目录分工: 1. Java 后端核心 - metadata-service(GMS,通用元数据服务,核心存储读写层) - metadata-dao-implmetadata-models:元数据模型、持久层 - datahub-graphql-core:GraphQL 查询服务,支撑前端血缘、资产查询 - datahub-kubernetes:K8s 部署、helm 配套 2. Python 采集与工具 - metadata-ingestion:元数据采集核心框架(Ingestion),各类数据源连接器 - datahub-actions:事件驱动自动化框架 - python-build:Python 打包构建脚本 3. 前端 Web - datahub-frontend / datahub-web-react:React 可视化操作页面 4. 工程与部署 - docker:一键本地快速启动 Docker Compose - docs/docs-website:官方文档站点 - contrib:社区实验性功能、自定义扩展 5. 配套生态仓库 - acryldata/datahub-helm:K8s Helm 部署包 - acryldata/datahub-actions:元数据事件自动化 - acryldata/meta-world:自定义采集脚本、治理模板

3. 核心架构设计(流优先+元数据图谱)

DataHub 采用实时流式元数据架构,三层架构: 1. 接入层(Client) - 采集器(Ingestion)、前端页面、GraphQL/REST API、第三方工具推送 - 产生 MCE(元数据变更事件)写入 Kafka 2. 服务层(GMS 核心) - 通用元数据服务处理元数据持久化,写入 MySQL; - 写入完成推送 MAE(元数据确认事件)至 Kafka; - 消费 Kafka 同步元数据到 Elasticsearch(全文检索)、图存储(血缘关系) 3. 持久存储层 - MySQL:实体基础属性、所有权、业务文档 - Elasticsearch:全文检索、资产搜索 - Kafka:元数据变更日志 MCL(核心实时能力基石) - 图存储:存储实体关联关系(表、字段、管道、BI、用户之间血缘)

核心设计理念:Model-First(PDL 元数据模型优先),使用 PDL(Pegasus 类 Protobuf)统一定义所有元数据实体(Dataset、Dashboard、User、Pipeline、指标等),支持自定义扩展实体与属性。

二、全维度核心功能体系

(一)多源元数据自动采集(Ingestion 采集引擎)

1. 海量数据源连接器开箱即用

覆盖现代数据栈几乎所有组件,支持定时拉取、实时推送、Hook 埋点三种采集模式: - 数仓/数据库:Hive、BigQuery、Snowflake、Redshift、MySQL、Postgres、MongoDB、ClickHouse - 数据湖:S3、HDFS、Iceberg、Hudi - 数据管道:Airflow、dbt、Flink、Spark、Kafka - BI 报表:Tableau、Looker、Superset、PowerBI - 指标平台、API 服务、ML 模型、业务埋点系统

2. 采集能力特性

  1. 全量+增量同步:自动过滤无变更元数据,降低存储与计算压力;
  2. 自定义采集扩展:支持编写 Python Recipe 自定义连接器,通过 API 推送自有系统元数据;
  3. 采集调度:内置 ingestion-scheduler 定时任务,可视化管理采集任务、失败重试、日志排查;
  4. 自动捕获字段级血缘:从 dbt、SQL、Spark 任务自动解析上下游字段映射关系,无需手动录入。

(二)全域数据资产目录与智能发现(Data Discovery)

1. 统一资产地图

平台统一管理全部元数据实体(Entity): - 数据资产:数据表、视图、分区、字段、指标、数据湖文件 - 工具资产:ETL/调度管道、BI 看板、报表、ML 模型、API - 人员资产:用户、团队、数据负责人(Owner) - 治理资产:业务术语、数据域、标签、访问策略

2. 强大全文检索

  • 多维度检索:表名、字段名、业务描述、标签、负责人、数据源类型、业务术语;
  • 语义模糊匹配:支持中文/英文混合搜索,支持按热度、更新时间、访问量排序;
  • 筛选器:环境(prod/dev)、数据域、数据源类型、标签、所有者快速过滤资产。

3. 资产结构化信息展示

单表详情页完整承载全维度元数据: - Schema:字段名、类型、主键、注释、枚举值、样例数据; - 技术指标:行数、存储大小、更新时间、分区信息、数据新鲜度; - 业务文档:Markdown 文档、业务口径、使用场景; - 关联标签、归属数据域、绑定业务术语; - 访问记录、最近查询、点赞收藏、评论协作。

(三)端到端字段级数据血缘(Data Lineage)

DataHub 核心差异化能力之一,字段级细粒度血缘,区别于多数仅支持表级血缘的工具: 1. 自动血缘采集 - dbt、Spark SQL、Hive SQL、Airflow、Flink 任务自动解析 SQL 生成上下游字段映射; - 支持手动 YAML 文件录入血缘,适配自研ETL系统; 2. 可视化血缘图谱 - 可视化展示:原始数据 → 中间层 → 数仓宽表 → BI 报表/指标全链路; - 支持展开/收缩节点,点击任意字段查看单字段上下游链路; 3. 变更影响分析(核心运维价值) - 修改一张表/一个字段,一键查看所有下游依赖报表、任务、指标; - 元数据变更事件实时推送,提前预警数据变更引发的报表故障; - 支持导出影响范围报告,支撑数据迭代、下线评估。

(四)企业级数据治理全套能力

1. 业务术语表(Business Glossary,统一业务语言)

  • 分层术语组:按业务线(用户、交易、流量)嵌套管理术语;
  • 术语完整定义:业务口径、计算逻辑、统计周期、负责人、关联指标;
  • 术语绑定:批量关联数据表、字段、指标,消除业务与技术歧义;
  • 支持版本管理、审批流程、变更记录追溯。

2. 数据域(Domain)资产分层管理

按业务部门/业务板块划分数据域(如用户域、订单域、营销域): - 域负责人、域内资产统一归类; - 域内资产聚合看板,统计资产数量、未注释表、无负责人资产; - 权限隔离:不同业务域人员仅可见本域资产。

3. 所有权与协作管理

  • 资产负责人(Owner):指定主负责人、备份负责人,自动推送资产变更通知;
  • 多人协作:资产评论、需求留言、@负责人协同;
  • 关注收藏:订阅资产更新,数据表变更实时消息提醒。

4. 自定义标签体系

  • 技术标签:分层(ODS/DWD/DWS)、存储引擎、数据敏感度;
  • 业务标签:活动、埋点、用户分层;
  • 合规标签:涉密、隐私数据、需要脱敏;
  • 支持批量打标、标签检索、标签治理看板。

5. 数据可观测与数据质量

  1. 内置数据质量规则接入:完整性、唯一性、及时性、空值校验;
  2. 数据新鲜度监控:表多久未更新,超时自动标记异常;
  3. 资产健康分:综合注释完整度、负责人配置、数据新鲜度、质量评分;
  4. 异常告警:元数据变更、数据延迟、质量失败推送通知。

6. 权限与访问安全(Metadata Auth)

  • 细粒度权限控制:全局/数据域/单资产三级权限;
  • 角色体系:管理员、治理专员、数据开发者、业务只读用户;
  • 资产访问申请流程:线上申请、负责人审批;
  • 集成 LDAP、OIDC、SAML 企业统一登录;
  • 审计日志:记录所有元数据修改、资产查看、权限变更操作。

(五)实时元数据事件驱动自动化(DataHub Actions)

DataHub 基于 Kafka 元数据变更流(MCL)提供事件响应框架,实现治理自动化: 1. 触发事件类型:资产新增、表结构变更、字段注释修改、负责人变更、数据质量失败; 2. 内置自动化场景: - 自动给缺失负责人的资产发送提醒; - 表结构变更自动通知下游报表维护人; - 自动同步业务术语到 dbt 文档; - 元数据异常自动推送企业微信/钉钉/Slack; 3. 自定义 Action:编写 Python 脚本实现企业自有自动化流程,提供 GitHub Action 配套工具。

(六)开放 API & 全生态集成

  1. GraphQL 主接口:前端、第三方系统统一查询入口,支持复杂血缘、资产批量查询;
  2. REST API:元数据增删改查、采集任务管理、权限操作;
  3. Python SDK:用于自定义采集、外部系统推送元数据;
  4. 生态配套工具:
    • dbt 深度集成:自动同步模型、血缘、描述;
    • Airflow Operator:任务执行后自动上报元数据;
    • MCP Server:对接 AI 大模型,让 AI 可查询企业数据资产;
    • GitHub Action:PR 自动分析 dbt 变更的数据影响范围。

(七)可视化前端平台能力

  1. 全局搜索首页、资产总览大盘(资产数量、健康度、未治理资产统计);
  2. 数据表详情、血缘图谱、业务术语管理、数据域管理页面;
  3. 采集任务运维面板:查看采集日志、失败重跑、配置修改;
  4. 用户/团队管理、权限配置、审计日志查询;
  5. 内置 Demo 环境,无需本地部署即可体验全部功能。

(八)部署与运维能力

  1. 快速体验:Docker Compose 一键本地启动 Quickstart,5分钟完整可用;
  2. 生产部署:官方 Helm Chart 支持 K8s 分布式高可用部署;
  3. 版本升级工具 datahub-upgrade:平滑迁移元数据,兼容新旧版本模型;
  4. 性能压测工具 perf-test、冒烟测试 smoke-test
  5. 完善监控:采集任务状态、Kafka 消费延迟、GMS 服务指标。

三、项目核心优势

  1. 实时流式元数据架构:区别于传统定时批处理元数据平台,元数据变更秒级同步,支持实时事件自动化;
  2. 原生字段级血缘:无需额外组件,自动解析 SQL 生成细粒度链路,变更影响分析能力行业领先;
  3. 模型可扩展:PDL 自定义实体、自定义属性,适配企业独特指标、埋点、业务资产;
  4. 全栈开源无锁:Apache 2.0 协议,无商业功能阉割,完整代码开源可二次开发;
  5. 现代数据栈全覆盖:dbt、数据湖、云数仓、调度、BI、ML 全链路原生支持;
  6. 数据原生治理一体化:数据发现、血缘、术语、质量、权限、自动化全部内置,无需多套系统拼接。

四、典型落地场景

  1. 数据资产盘点:自动拉取全公司所有数据表、报表,形成统一数据地图;
  2. 数据需求自助查询:业务人员搜索业务指标、看懂字段口径,减少数据团队咨询压力;
  3. 数据变更风险管控:上线前自动分析表修改影响的下游报表,避免线上故障;
  4. 数据治理落地:统一业务术语、划分数据域、推动资产完善注释与负责人;
  5. 数据可观测建设:监控数据延迟、数据质量,自动告警;
  6. 数据网格(Data Mesh)支撑:按业务域隔离资产,实现分布式数据所有权、统一元数据检索。

五、社区与生态

  1. 社区渠道:Slack 交流群、每月线上分享会(Town Hall)、官方月度更新博客;
  2. 企业落地:LinkedIn、Expedia、Klarna、上海华瑞银行、ThoughtWorks 等大量企业生产使用;
  3. 学习资源:官方完整文档 docs.datahub.com、YouTube 教学视频、线下技术分享;
  4. 贡献机制:开源社区提交 PR,contrib 目录存放社区实验性功能。

六、与同类元数据平台对比核心差异

  1. 对比 Apache Atlas:Atlas 偏 Hadoop 生态、批处理为主;DataHub 实时流架构、字段血缘、前端体验更强、现代云原生数据源支持更好;
  2. 对比 OpenMetadata:OpenMetadata 架构偏批同步,DataHub 原生 Kafka 实时事件流,自动化 Action 生态更完善,企业级权限、数据域治理更成熟。

datahub-Gitbhub