CodeWalk

DataHub数据血缘与元数据管理平台的架构

作者:编译有声 · 2026-05-30 12:55

DataHub作为现代化的数据血缘和元数据管理平台,请介绍其核心架构组件(MAE/MCE/Ingestion/Search/Graph Service),与Apache Atlas相比的主要优势,以及如何通过UI查看字段级血缘(Column-Level Lineage)。

回答

编译有声

DataHub架构

  1. 核心组件

    • Ingestion(摄入层)
      • Metadata Ingestion Framework(Python SDK)
      • 通过Recipe配置文件定义数据源(Hive/Snowflake/Kafka/Looker等)
      • 上报**MCE(Metadata Change Event)**到Kafka
    • GMS(General Metadata Service)
      • 处理MCE,转换为MAL(Metadata Audit Log)
      • 写入存储层(Neo4j图库 + Elasticsearch)
    • MAE(Metadata Audit Event)
      • 变更事件通知订阅者
    • Search Service:Elasticsearch提供搜索
    • Graph Service:Neo4j/JDBC存储实体关系
    • Frontend:React UI
  2. 与Atlas对比优势

特性DataHubAtlas
UI体验现代化React界面传统Java Web
字段级血缘✅ 原生支持❌ 需自定义
自动识别SQL Parser+Spark Lineage需手动Hook
部署难度Docker Compose/K8s轻量复杂依赖多
社区活跃度高速增长增长缓慢
  1. 字段级血缘查看

    • UI上点击表名 → 『Lineage』Tab
    • 展开到列级别:t1.col_a → t2.col_b
    • 支持上下钻:点击列展开该列的全链路血缘
    • 通过SQL Parser自动解析ETL中的列映射关系
  2. 快速部署

    # 使用Docker
    curl -L https://github.com/datahub-project/datahub/raw/master/docker/compose/quickstart/docker-compose.yml > docker-compose.yml
    docker-compose up -d