3. 数据血缘核心概念
在金融数据治理中,数据血缘不是一张“画着箭头的图”,而是一套从物理实现到业务语义、从表级粒度到字段级粒度的多层描述体系。理解这套体系的关键,是先把六个高频概念拆开:技术血缘、业务血缘、字段级血缘、表级血缘、上下游依赖、影响分析与溯源分析。它们回答的问题不同,服务的人群不同,落地成本也不同。
一、核心原理:血缘的“两个视角”与“两个粒度”
数据血缘可以沿两个正交维度理解。第一个维度是视角:技术血缘描述数据在系统、任务、SQL、存储之间的物理流转;业务血缘描述数据在业务指标、报表、产品、监管口径之间的语义流转。第二个维度是粒度:表级血缘只关心“哪张表流向哪张表”;字段级血缘精确到“A表的客户号经过哪些加工变成B表的统一客户标识”。
上下游依赖是血缘的方向性表达:上游是数据来源,下游是消费方。影响分析是正向推演:当上游发生变更,哪些下游会受影响;溯源分析是反向追查:当下游数据异常,问题来自哪个上游。两者方向相反,但共用同一张血缘图。
二、方法流程:从采集到双向分析
落地一套可用的血缘体系,通常遵循“采集—解析—建模—分析—应用”五步。技术血缘靠 SQL 解析、任务日志、ETL 元数据自动采集;业务血缘靠指标定义、报表映射、数据字典人工维护;字段级血缘则依赖 SQL AST 解析与字段映射规则。
- 采集:从调度系统、数仓、BI 工具、数据字典抽取元数据与任务依赖。
- 解析:对 SQL 做语法树分析,识别 source→target 的表级与字段级映射。
- 建模:以图结构存储节点(表、字段、指标、报表)与边(加工、依赖、映射)。
- 分析:正向做影响分析,反向做溯源分析,支持路径查询与剪枝。
- 应用:变更评审、故障定位、口径核对、监管报送、数据资产盘点。
-- 字段级血缘解析示例:从 SQL 中提取映射
INSERT INTO dwd_loan_detail (cust_id, loan_amt, dt)
SELECT c.customer_no AS cust_id,
l.principal + l.interest AS loan_amt,
'${bizdate}' AS dt
FROM ods_customer c
JOIN ods_loan l ON c.customer_no = l.cust_no;
-- 解析结果(字段级):
-- ods_customer.customer_no -> dwd_loan_detail.cust_id
-- ods_loan.principal -> dwd_loan_detail.loan_amt
-- ods_loan.interest -> dwd_loan_detail.loan_amt
-- 常量 '${bizdate}' -> dwd_loan_detail.dt
三、案例/场景:一次监管口径变更的影响分析
某银行监管报送要求“贷款余额”口径从“本金余额”调整为“本金+应收利息”。数据治理团队接到变更后,先做影响分析:在字段级血缘图中定位 dwd_loan_detail.loan_amt,正向遍历下游,发现它流向 dws_loan_agg.loan_balance、ads_risk_report.loan_total,最终影响 3 张监管报表和 2 个风险指标。
随后做溯源分析验证:抽取报表中异常数值,反向追查至 ods_loan.interest 字段,确认该字段在部分分行未回填,导致口径调整后数据偏差。整个过程依赖字段级血缘,若只有表级血缘,只能定位到“某张表有问题”,无法精确到字段与表达式。
loan_amt。两者之间需要一张映射表,否则影响分析会出现“业务说变了、技术说没变”的断层。四、误区/复盘:六个概念最容易混淆的地方
| 概念 | 回答的问题 | 方向 | 典型粒度 | 主要使用者 |
|---|---|---|---|---|
| 技术血缘 | 数据在系统间如何流转 | 上游→下游 | 表级/字段级 | 数据开发、运维 |
| 业务血缘 | 指标与报表来自哪些业务口径 | 业务→数据 | 指标级/报表级 | 业务、合规、审计 |
| 字段级血缘 | 某个字段由哪些字段加工而来 | 双向 | 字段 | 数据治理、分析师 |
| 表级血缘 | 表与表之间的依赖关系 | 双向 | 表 | 调度、架构 |
| 上下游依赖 | 谁先谁后、谁依赖谁 | 方向性 | 任务/表 | 调度、运维 |
| 影响分析 | 变更后哪些下游会受影响 | 正向 | 表/字段/指标 | 变更管理 |
| 溯源分析 | 异常数据来自哪个上游 | 反向 | 字段/表 | 故障排查、审计 |
复盘来看,六个概念的关系可以概括为:技术血缘与业务血缘是两种视角,表级与字段级是两种粒度,上下游依赖是方向表达,影响分析与溯源分析是两种分析动作。它们共同构成金融数据治理的“血缘底座”,缺一层,变更管理与故障定位就会失准。