跳到主要内容

数据血缘

问题

什么是数据血缘?为什么重要?

答案

什么是数据血缘

数据血缘(Data Lineage)记录数据从哪来、经过什么处理、到哪去的完整链路。

血缘的价值

场景如何使用血缘
影响分析源表字段变更 → 追踪影响了哪些下游表和报表
问题排查看板数据异常 → 向上追溯到出错的 ETL 节点
成本治理找出无人使用的表 → 下线释放资源
合规审计敏感数据追溯 → 满足 GDPR 要求

血缘采集方式

方式原理工具
SQL 解析解析 SQL 中的表/字段依赖Apache Atlas、DataHub
调度依赖从 Airflow DAG 中提取上下游Airflow Lineage
dbt 自动dbt 的 ref() 自动建立血缘dbt docs
手动标注人工维护Excel/Wiki
dbt 天然的血缘

dbt 通过 ref('model_name') 引用模型,自动生成完整的 DAG 血缘图,运行 dbt docs generate 即可查看。


常见面试问题

Q1: 血缘可以做到字段级别吗?

答案

  • 表级血缘:追踪表与表的依赖(大多数工具默认支持)
  • 字段级血缘:追踪某个字段来自哪个源字段(更精细)
  • 字段级血缘需要深度 SQL 解析,工具如 Apache Atlas、OpenLineage 支持

Q2: 如何利用血缘做成本治理?

答案

  • 从血缘图中找出叶子节点(无下游依赖的表)
  • 结合查询日志,找出 30+ 天无人查询的表
  • 通知负责人确认后下线,释放存储和计算资源

相关链接