2. 基础知识

在风险报告场景中,我们经常遇到一个尖锐的问题:报表上某个风险指标突然异常,究竟是数据源出错、加工逻辑变更,还是口径调整?要回答这个问题,必须建立一套从“数据从哪来、经过什么加工、最终落到哪”的完整认知体系。本章围绕四个核心概念展开:数据血缘、字段级追溯、元数据管理与数据地图,它们是后续所有实战操作的理论地基。

一、核心概念与相互关系

数据血缘(Data Lineage)描述数据在系统间的流转路径,回答“这张表的数据来自哪些上游、又流向了哪些下游”。它通常以表或任务为粒度,呈现的是宏观流向。

字段级追溯(Column-Level Lineage)是血缘的精细化形态,把追溯粒度下沉到字段。它回答的是“报表中‘不良贷款率’这个字段,具体由上游哪张表的哪个字段、经过什么表达式计算而来”。在风险报告中,监管口径往往精确到字段,因此字段级追溯是合规审计与问题定位的关键能力。

元数据管理(Metadata Management)是对“描述数据的数据”进行采集、存储、维护和应用的过程。元数据分为技术元数据(表结构、字段类型、分区、存储路径)、业务元数据(指标定义、口径说明、责任人)和管理元数据(权限、生命周期、血缘关系)。血缘本身就是元数据的一种重要类型。

数据地图(Data Map)是元数据的可视化门户,把分散的表、字段、任务、指标、责任人组织成可检索、可导航的图谱,让使用者像看地图一样快速定位数据资产。

四者关系可以概括为:元数据管理是底座,数据血缘是元数据中的关系网络,字段级追溯是血缘的精细切片,数据地图是面向用户的可视化入口。

二、核心原理:血缘是如何被采集出来的

血缘并非人工绘制,而是通过解析与埋点自动生成。常见采集方式有三类:

  • SQL解析:解析ETL脚本、视图定义、存储过程,提取源表与目标表的映射关系,进一步解析SELECT子句得到字段级映射。
  • 任务调度埋点:从调度系统(如Airflow、DolphinScheduler)读取任务依赖,形成任务级血缘。
  • 运行时采集:通过查询日志、执行计划或数据访问代理,捕获真实发生的读写关系。

字段级追溯的难点在于表达式解析。例如下面这段SQL,需要识别出目标字段npl_ratio同时依赖两个上游字段:

INSERT INTO risk_report.dws_asset_quality
SELECT
    stat_date,
    branch_code,
    SUM(npl_balance) / SUM(loan_balance) AS npl_ratio
FROM risk_dw.dwd_loan_detail
GROUP BY stat_date, branch_code;

解析结果应记录:dws_asset_quality.npl_ratio ← dwd_loan_detail.npl_balance 与 dwd_loan_detail.loan_balance,并保留计算表达式。当口径变更时,系统即可沿这条边反向影响分析。

字段级血缘追溯:从源字段到风险指标 源表 dwd_loan_detail npl_balance loan_balance branch_code 加工任务 SUM(npl_balance) / SUM(loan_balance) AS npl_ratio 风险指标 dws_asset_quality .npl_ratio 不良贷款率 血缘边记录(示例) source: dwd_loan_detail.npl_balance → target: dws_asset_quality.npl_ratio source: dwd_loan_detail.loan_balance → target: dws_asset_quality.npl_ratio expression: SUM(npl_balance) / SUM(loan_balance)

三、方法流程:从元数据采集到数据地图呈现

落地一套可用的血缘与追溯体系,通常遵循以下流程:

  1. 元数据采集:接入数据库、数仓、调度系统、BI工具,抽取表结构、字段、任务、报表定义。
  2. 血缘解析:对SQL与任务依赖进行解析,生成表级与字段级血缘边。
  3. 元数据存储:以图数据库或关系模型存储节点与边,保留版本与时间戳。
  4. 影响分析:支持正向(下游影响)与反向(上游溯源)查询。
  5. 数据地图发布:提供搜索、图谱浏览、字段详情、责任人展示。
能力维度 表级血缘 字段级追溯 数据地图
追溯粒度 表/任务 字段/表达式 资产目录
典型问题 这张表从哪来 这个指标怎么算的 数据在哪、找谁
主要用户 数据开发 风险分析师、审计 全员
关键价值 任务排障 口径合规、问题定位 资产发现与协作

四、案例场景:一次风险指标异常的追溯

某银行风险日报中“逾期90天以上贷款率”较前日上升0.8个百分点。分析师通过数据地图搜索该指标,进入字段详情页,看到其计算依赖dwd_loan_detail.overdue_days与dwd_loan_detail.loan_balance。沿字段级血缘反向追溯,发现上游任务在凌晨新增了一个过滤条件,导致部分正常贷款被排除,分母变小,指标被动升高。整个定位过程约十分钟,若没有字段级追溯,可能需要数小时人工排查。

常见误区:只建表级血缘就认为“血缘已完成”。在风险报告与监管报送场景中,口径往往精确到字段与表达式,表级血缘无法支撑合规审计与口径变更影响分析。

五、误区与复盘

  • 误区一:血缘一次性建设。血缘需随任务变更持续更新,否则会迅速失真。应建立变更触发重解析机制。
  • 误区二:忽视业务元数据。只有技术字段而无指标口径与责任人,数据地图难以被业务用户使用。
  • 误区三:解析失败即放弃。复杂存储过程、动态SQL解析率有限,应结合运行时采集与人工补录,形成混合血缘。
  • 复盘要点:先保证关键风险指标的字段级追溯准确,再逐步扩展覆盖面;优先服务高频排障与审计场景。