DataHub数据血缘与元数据管理平台的架构
DataHub作为现代化的数据血缘和元数据管理平台,请介绍其核心架构组件(MAE/MCE/Ingestion/Search/Graph Service),与Apache Atlas相比的主要优势,以及如何通过UI查看字段级血缘(Column-Level Lineage)。
回答
编译有声
DataHub架构:
-
核心组件:
- 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
- Ingestion(摄入层):
-
与Atlas对比优势:
| 特性 | DataHub | Atlas |
|---|---|---|
| UI体验 | 现代化React界面 | 传统Java Web |
| 字段级血缘 | ✅ 原生支持 | ❌ 需自定义 |
| 自动识别 | SQL Parser+Spark Lineage | 需手动Hook |
| 部署难度 | Docker Compose/K8s轻量 | 复杂依赖多 |
| 社区活跃度 | 高速增长 | 增长缓慢 |
-
字段级血缘查看:
- UI上点击表名 → 『Lineage』Tab
- 展开到列级别:
t1.col_a → t2.col_b - 支持上下钻:点击列展开该列的全链路血缘
- 通过SQL Parser自动解析ETL中的列映射关系
-
快速部署:
# 使用Docker curl -L https://github.com/datahub-project/datahub/raw/master/docker/compose/quickstart/docker-compose.yml > docker-compose.yml docker-compose up -d