DataHub(datahub-project/datahub)项目全面系统介绍
一、项目基础概况
1. 项目起源与定位
DataHub 是 LinkedIn 开源、面向现代数据栈的一站式元数据平台/数据目录,仓库地址:https://github.com/datahub-project/datahub,开源协议 Apache 2.0。 核心定位:实时元数据图谱平台,解决企业数据孤岛、数据不可发现、无统一治理、数据链路不可视、数据资产无管理等痛点,是数据治理、数据可观测、数据发现一体化基础设施。
2. 技术栈与代码仓库结构
仓库采用多语言分层开发,核心目录分工:
1. Java 后端核心
- metadata-service(GMS,通用元数据服务,核心存储读写层)
- metadata-dao-impl、metadata-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. 采集能力特性
- 全量+增量同步:自动过滤无变更元数据,降低存储与计算压力;
- 自定义采集扩展:支持编写 Python Recipe 自定义连接器,通过 API 推送自有系统元数据;
- 采集调度:内置
ingestion-scheduler定时任务,可视化管理采集任务、失败重试、日志排查; - 自动捕获字段级血缘:从 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. 数据可观测与数据质量
- 内置数据质量规则接入:完整性、唯一性、及时性、空值校验;
- 数据新鲜度监控:表多久未更新,超时自动标记异常;
- 资产健康分:综合注释完整度、负责人配置、数据新鲜度、质量评分;
- 异常告警:元数据变更、数据延迟、质量失败推送通知。
6. 权限与访问安全(Metadata Auth)
- 细粒度权限控制:全局/数据域/单资产三级权限;
- 角色体系:管理员、治理专员、数据开发者、业务只读用户;
- 资产访问申请流程:线上申请、负责人审批;
- 集成 LDAP、OIDC、SAML 企业统一登录;
- 审计日志:记录所有元数据修改、资产查看、权限变更操作。
(五)实时元数据事件驱动自动化(DataHub Actions)
DataHub 基于 Kafka 元数据变更流(MCL)提供事件响应框架,实现治理自动化: 1. 触发事件类型:资产新增、表结构变更、字段注释修改、负责人变更、数据质量失败; 2. 内置自动化场景: - 自动给缺失负责人的资产发送提醒; - 表结构变更自动通知下游报表维护人; - 自动同步业务术语到 dbt 文档; - 元数据异常自动推送企业微信/钉钉/Slack; 3. 自定义 Action:编写 Python 脚本实现企业自有自动化流程,提供 GitHub Action 配套工具。
(六)开放 API & 全生态集成
- GraphQL 主接口:前端、第三方系统统一查询入口,支持复杂血缘、资产批量查询;
- REST API:元数据增删改查、采集任务管理、权限操作;
- Python SDK:用于自定义采集、外部系统推送元数据;
- 生态配套工具:
- dbt 深度集成:自动同步模型、血缘、描述;
- Airflow Operator:任务执行后自动上报元数据;
- MCP Server:对接 AI 大模型,让 AI 可查询企业数据资产;
- GitHub Action:PR 自动分析 dbt 变更的数据影响范围。
(七)可视化前端平台能力
- 全局搜索首页、资产总览大盘(资产数量、健康度、未治理资产统计);
- 数据表详情、血缘图谱、业务术语管理、数据域管理页面;
- 采集任务运维面板:查看采集日志、失败重跑、配置修改;
- 用户/团队管理、权限配置、审计日志查询;
- 内置 Demo 环境,无需本地部署即可体验全部功能。
(八)部署与运维能力
- 快速体验:Docker Compose 一键本地启动 Quickstart,5分钟完整可用;
- 生产部署:官方 Helm Chart 支持 K8s 分布式高可用部署;
- 版本升级工具
datahub-upgrade:平滑迁移元数据,兼容新旧版本模型; - 性能压测工具
perf-test、冒烟测试smoke-test; - 完善监控:采集任务状态、Kafka 消费延迟、GMS 服务指标。
三、项目核心优势
- 实时流式元数据架构:区别于传统定时批处理元数据平台,元数据变更秒级同步,支持实时事件自动化;
- 原生字段级血缘:无需额外组件,自动解析 SQL 生成细粒度链路,变更影响分析能力行业领先;
- 模型可扩展:PDL 自定义实体、自定义属性,适配企业独特指标、埋点、业务资产;
- 全栈开源无锁:Apache 2.0 协议,无商业功能阉割,完整代码开源可二次开发;
- 现代数据栈全覆盖:dbt、数据湖、云数仓、调度、BI、ML 全链路原生支持;
- 数据原生治理一体化:数据发现、血缘、术语、质量、权限、自动化全部内置,无需多套系统拼接。
四、典型落地场景
- 数据资产盘点:自动拉取全公司所有数据表、报表,形成统一数据地图;
- 数据需求自助查询:业务人员搜索业务指标、看懂字段口径,减少数据团队咨询压力;
- 数据变更风险管控:上线前自动分析表修改影响的下游报表,避免线上故障;
- 数据治理落地:统一业务术语、划分数据域、推动资产完善注释与负责人;
- 数据可观测建设:监控数据延迟、数据质量,自动告警;
- 数据网格(Data Mesh)支撑:按业务域隔离资产,实现分布式数据所有权、统一元数据检索。
五、社区与生态
- 社区渠道:Slack 交流群、每月线上分享会(Town Hall)、官方月度更新博客;
- 企业落地:LinkedIn、Expedia、Klarna、上海华瑞银行、ThoughtWorks 等大量企业生产使用;
- 学习资源:官方完整文档 docs.datahub.com、YouTube 教学视频、线下技术分享;
- 贡献机制:开源社区提交 PR,contrib 目录存放社区实验性功能。
六、与同类元数据平台对比核心差异
- 对比 Apache Atlas:Atlas 偏 Hadoop 生态、批处理为主;DataHub 实时流架构、字段血缘、前端体验更强、现代云原生数据源支持更好;
- 对比 OpenMetadata:OpenMetadata 架构偏批同步,DataHub 原生 Kafka 实时事件流,自动化 Action 生态更完善,企业级权限、数据域治理更成熟。