2. 血缘核心概念:血缘节点、血缘边、血缘关系类型
数据血缘(Data Lineage)是工程分析平台中追踪数据从产生、加工、流转到最终消费的完整路径。理解血缘的核心概念——节点、边与关系类型,是构建血缘系统的基础。本节将逐一拆解这三个要素,并辅以表格与图示,帮助您建立清晰的概念框架。
2.1 血缘节点(Lineage Node)
血缘节点是血缘图谱中的基本实体,代表数据生命周期中的一个静态锚点。每个节点都承载着特定的元数据信息,例如表名、字段名、ETL 任务标识等。根据粒度不同,节点可分为以下三类:
| 节点类型 | 粒度 | 典型示例 | 元数据关键字段 |
|---|---|---|---|
| 表级节点 | 粗粒度 | ods_order、dwd_sale、ads_report |
数据库名、表名、Schema、表类型(视图/物理表) |
| 字段级节点 | 细粒度 | order_id、user_name、amount |
所属表名、字段名、数据类型、是否主键/外键 |
| ETL 过程节点 | 过程粒度 | spark_etl_job_v1、dataflow_pipeline_01 |
任务名称、调度时间、执行引擎、脚本路径 |
工程提示: 在工程分析平台中,节点通常以
NodeID 作为唯一标识,推荐采用 类型_层级_名称 的命名规范,例如 TABLE_ODS_ORDER、FIELD_ORDER_ID,便于后续检索与去重。
2.2 血缘边(Lineage Edge)
血缘边是连接两个节点的有向线段,用于描述数据流动的方向与依赖关系。每条边都包含源节点(Source)与目标节点(Target),并携带转换语义。边的核心属性包括:
- 方向性:从上游指向下游,即数据从源节点流向目标节点。
- 转换类型:标识数据在传递过程中是否发生变换(如过滤、聚合、映射)。
- 依赖权重:部分场景下需要标记边的强弱依赖(如强制依赖 vs 可选依赖)。
- 时间戳:记录血缘关系的发现时间或最后更新时间。
设计要点: 血缘边应支持 多对多 关系。例如,一个目标字段可能由多个源字段通过复杂表达式计算得出,此时需要生成多条边来完整表达。
2.3 血缘关系类型
根据数据流转的抽象层级,血缘关系可划分为三种核心类型。下表从定义、粒度、典型场景三个维度进行对比:
| 关系类型 | 定义 | 粒度 | 典型场景 |
|---|---|---|---|
| 表级血缘 | 描述表与表之间的数据依赖关系,不关心具体字段 | 粗粒度 | 数据仓库分层依赖(ODS → DWD → DWS → ADS) |
| 字段级血缘 | 描述字段与字段之间的精确映射关系,可追溯至列级别 | 细粒度 | SQL 中的 SELECT a.col1, b.col2 FROM ... 映射 |
| ETL 级血缘 | 描述 ETL 任务(过程)与输入/输出表之间的依赖关系 | 过程粒度 | 调度系统中 Job A 产出表 T1,Job B 消费表 T1 |
常见误区: 不要将 ETL 级血缘与表级血缘混为一谈。ETL 级血缘关注的是 任务与数据 的依赖,而表级血缘关注的是 数据与数据 的依赖。在血缘图谱中,ETL 级节点通常作为中间节点连接输入表与输出表。
2.4 血缘关系类型综合图示
下图展示了三种血缘关系类型在同一数据流中的协同工作方式。图中以 ETL 任务为中心,左侧为输入表级节点与字段级节点,右侧为输出表级节点与字段级节点,箭头方向代表数据流动方向。
2.5 三种血缘关系类型的工程映射
在实际工程分析平台中,三种血缘关系类型通常通过不同的元数据采集方式获取,并存储在同一张血缘图谱中。下表总结了各自的采集来源与存储建议:
| 关系类型 | 采集来源 | 存储结构建议 | 更新频率 |
|---|---|---|---|
| 表级血缘 | SQL 解析(INSERT INTO ... SELECT FROM)、调度系统 DAG |
节点表 + 边表(source_table_id, target_table_id) |
每日增量 |
| 字段级血缘 | SQL 解析(SELECT 子句字段映射)、ETL 脚本静态分析 |
字段映射表(source_field_id, target_field_id, transform_expr) |
每次任务执行后 |
| ETL 级血缘 | 调度系统 API、任务日志、数据目录工具 | 任务依赖表(job_id, input_table_id, output_table_id) |
实时/准实时 |
架构建议: 推荐采用 图数据库(如 Neo4j、JanusGraph)存储血缘关系,利用其原生图遍历能力高效查询上下游影响分析。对于字段级血缘,建议在边属性中存储转换表达式(如
SUM(amount)、CONCAT(a, b)),以便后续进行精确的字段级影响分析。
2.6 血缘关系类型在工程分析平台中的典型应用
理解三种血缘关系类型后,可以支撑以下关键工程场景:
- 影响分析:当某张源表或字段发生变更时,通过字段级血缘快速定位所有下游依赖的报表、指标或模型。
- 故障排查:通过 ETL 级血缘定位数据质量问题的根因,判断是上游任务失败还是中间转换逻辑出错。
- 数据资产盘点:通过表级血缘梳理数据仓库分层结构,识别孤岛表与冗余链路。
- 合规审计:通过字段级血缘追溯敏感字段(如手机号、身份证)的流转路径,确保数据脱敏合规。
最佳实践: 在构建血缘系统初期,建议先实现 表级血缘 与 ETL 级血缘,快速覆盖核心链路;待平台稳定后,再逐步下钻至 字段级血缘,实现精细化治理。