1. 数据血缘基础概念:什么是数据血缘、数据血缘与数据地图的区别、数据血缘的核心要素

各位同学好,我是老张。今天咱们开始第一讲,聊聊数据血缘最基础的东西。说实话,我做了十几年数据治理,见过太多团队一上来就搞血缘工具,结果连基本概念都没对齐,最后搞成一锅粥。所以这一章,咱们把地基打牢。

1.1 什么是数据血缘

数据血缘,说白了就是数据的“族谱”。它记录了一条数据从哪来、经过哪些加工、最终去了哪里的完整路径。

我习惯用一个比喻来理解:你手里有一杯牛奶,你想知道这杯牛奶是哪个牧场的奶牛产的、经过了哪些运输环节、在哪个工厂灌装的、最后怎么到了你手上。数据血缘干的就是这件事——只不过对象换成了数据。

核心定义:数据血缘是描述数据在产生、处理、流转、消亡全过程中,数据项之间依赖关系的元数据。

举个例子,你在报表里看到一个“当日销售额”字段,数据血缘能告诉你:

  • 这个字段来自订单表的 amount 字段
  • 经过了 SUM 聚合和 WHERE status = '已完成' 过滤
  • 最终写入了 daily_sales_summary 表

嗯,这里要注意:数据血缘不是数据流图。数据流图关注的是“数据怎么流动”,而血缘关注的是“数据之间的依赖关系”。

1.2 数据血缘与数据地图的区别

这个问题我每次培训都会被问到。很多人觉得这俩差不多,其实差别挺大。我直接给个对比表,大家一看就明白:

对比维度 数据血缘 数据地图
核心关注点 数据之间的依赖关系 数据资产的分布与位置
粒度 字段级、表级 表级、库级、系统级
典型用途 影响分析、问题溯源、合规审计 数据发现、数据目录、资产管理
是否记录转换逻辑 是(包含ETL规则、计算逻辑) 否(仅记录元数据基本信息)
动态性 随数据加工过程实时变化 相对静态,定期更新
合规审计价值 高(可直接用于追溯数据来源) 低(仅能定位数据位置)

你看,数据地图更像是“图书馆的索引”,告诉你哪本书在哪个架子上。而数据血缘是“这本书的参考文献列表”,告诉你每段内容引自哪里、经过哪些修改。

我曾经在一个项目中,客户非要拿数据地图来做合规审计,结果审计员问“这个字段的原始数据来源是哪个系统”,地图上根本查不到。最后我们补了血缘关系,才把审计应付过去。所以,做合规审计,必须上数据血缘。

1.3 数据血缘的核心要素

数据血缘有三个核心要素:来源、转换、去向。我习惯叫它“血缘三角”。

我的经验:在项目中,只要把这三个要素理清楚,血缘关系就完成了80%。剩下的20%是细节填充和自动化采集。

1.3.1 来源(Source)

来源就是数据的“出生地”。它可以是:

  • 源系统:比如CRM系统、ERP系统、日志采集系统
  • 源表/文件:比如 orders 表、user_log.csv 文件
  • 源字段:比如 orders.amount、user_log.event_time

在合规审计中,来源信息至关重要。审计员会问:“这个报表里的客户手机号,原始数据是从哪个系统采集的?”如果你答不上来,那就是合规问题。

1.3.2 转换(Transformation)

转换是数据在流转过程中经历的加工逻辑。这是血缘关系中最复杂、也最有价值的部分。

常见的转换类型包括:

  1. 字段映射:源字段A → 目标字段B(直接对应)
  2. 聚合计算:SUM、COUNT、AVG 等
  3. 过滤清洗:WHERE 条件、NULL 处理、去重
  4. 业务规则:比如“VIP用户打8折”这样的逻辑
  5. 格式转换:日期格式统一、编码转换

举个例子,一个简单的ETL脚本:

-- 源表:raw_orders
-- 目标表:daily_sales

INSERT INTO daily_sales (sale_date, total_amount)
SELECT 
    DATE(order_time) AS sale_date,
    SUM(amount * (1 - discount_rate)) AS total_amount
FROM raw_orders
WHERE status = 'completed'
GROUP BY DATE(order_time);

这段代码的血缘关系是:

  • 来源:raw_orders.order_time、raw_orders.amount、raw_orders.discount_rate、raw_orders.status
  • 转换:DATE() 函数、SUM() 聚合、amount * (1 - discount_rate) 计算、WHERE status = 'completed' 过滤、GROUP BY 分组
  • 去向:daily_sales.sale_date、daily_sales.total_amount

避坑指南:我曾经在一个项目中,ETL脚本里有个隐式的类型转换(字符串转数字),血缘工具没采集到。结果审计时发现某个字段的值异常,查了半天才发现是转换逻辑没记录。所以,所有转换逻辑,哪怕再简单,都要显式记录到血缘中。

1.3.3 去向(Target)

去向是数据的“最终归宿”。它可以是:

  • 目标表/视图:比如报表表、数据仓库表
  • 下游应用:比如BI报表、数据API、机器学习模型
  • 数据产品:比如数据大屏、客户画像

在合规审计中,去向信息用于影响分析。比如,你发现某个源系统的数据有质量问题,需要知道“哪些报表和业务系统受到了影响”。这时候,血缘关系中的去向信息就能帮你快速定位。

1.4 数据血缘的完整结构图

下面这张图展示了数据血缘的完整结构,我建议你保存下来,后面章节会反复用到:

数据血缘核心要素结构图 数据血缘核心要素结构图 来源 (Source) 源系统 源表/文件 转换 (Transformation) 字段映射 聚合计算 过滤清洗 业务规则 去向 (Target) 目标表/视图 下游应用 说明: 1. 来源:数据的原始出处,包括系统、表、字段三个层级 2. 转换:数据经历的加工逻辑,是血缘中最复杂的部分 3. 去向:数据的最终使用场景,用于影响分析 4. 三者缺一不可,共同构成完整的数据血缘链路 5. 合规审计中,审计员会沿着这个链路逐层追溯

1.5 为什么合规审计离不开数据血缘

你想想看,审计员最常问的问题是什么?无非就是:

  • “这个数据从哪来的?”(来源)
  • “中间经过了哪些处理?”(转换)
  • “最终用在了哪里?”(去向)

这不就是数据血缘的三个核心要素吗?所以我说,数据血缘是合规审计的“基础设施”,没有它,审计工作寸步难行。

我记得有一次配合外部审计,对方要求提供某个敏感字段的完整数据流转链路。我们当时已经建好了血缘关系,直接导出链路图,审计员看了一眼就过了。隔壁团队没做血缘,被要求补了三个月的材料,最后还被开了整改项。

我的建议:如果你所在的企业正在做数据合规建设,优先把数据血缘建起来。哪怕一开始只覆盖核心业务表,也比没有强。后面咱们会讲到怎么一步步搭建血缘体系。