为了直观的感受数据血缘,先从网上找了两张典型的数据血缘的图。下图特点是按照数据仓库数据管理模型给出了基于表(实体)的数据血缘图。


此图是截取Solidatus软件生成的数据血缘图,该图与上图的区别在于给出了基于属性的数据血缘图,粒度更细。

什么是数据血缘

从上述两个图可以直观的感受数据血缘的本质是什么,数据血缘(Data Lineage)即数据的来龙去脉,记录数据如何转化而来,流向何方,用可视化技术细粒度的刻画了数据从源流向终端用户的路径,帮助数据科学家洞察数据,发现数据错误的根源。

数据血缘和数据起源(Data Provenance)含义相似,主要区别在于数据起源是面向业务人员,在数据更高层级揭示了数据的产生,而数据血缘更加细粒度,在业务层级和技术层级提供了一个更细粒度的视角。

数据血缘号称数据的GPS,在数据治理中隶属于元数据管理的范畴。数据血缘在数据追踪上有三种粒度,分别是实体级别、字段级别和记录级别:

粒度级别说明实现的复杂性使用场景
实体关系型数据库管理系统 (RDBMS) 的表、 NoSQL 数据库的实体或 Pub/Sub 中的主题数据治理依赖项识别
字段或列RDBMS 中的表列或 NoSQL 实体的 字段数据治理依赖项识别
Record保存在 RDBMS 表的字段或 Pub/Sub 主题消息中的实际数据值很高转换调试数据取证

应用场景

数据血缘的典型应用场景如下:

  1. 识别问题根源:例如在BI中销售数据和财务数据对不上,数据分析人员可以通过数据血缘分析数据流向,查询每个节点的转换,进而发现数据不一致的问题根源。
  2. 系统升级或迁移:当数据迁移时通过数据血缘可以了解到哪些数据集合是重要的,哪些数据集合是废弃的,帮助迁移人员把工作重心放在重要的数据上,避免在废弃或者业务上价值不大的数据上浪费时间。
  3. 影响分析:数据的改变会影响哪些指标哪些方面,通过数据血缘图可以一目了然。

数据血缘构建方案

概念性数据血缘系统需要三个逻辑组件,如下所示:

  • 该提取系统(Ingestion System)用于监控数据仓库的操作日志,以执行操作。提取系统监控数据仓库或数据库系统中的操作日志并检索日志。系统还会将日志监控功能与日志使用者分开。Google Cloud 中的此类系统包括 Debezium、BinLog 监控系统。
  • 数据血缘提取引擎(Lineage Extraction Engine)可解析日志条目以提取血缘信息,例如数据源或任何已应用的转换。血缘提取引擎标识源数据系统,并使用相应的提供程序解析操作日志。数据库或数据仓库拥有具备内置函数和自定义函数的自有查询语法。使用数据系统专用语法和架构提供程序可正确解析操作或执行查询。
  • 血缘存储(Lineage Store)用于保存血缘数据,并使其可用于分析、治理、报告或其他企业需求。您可以将数据库用于适当的分片或分区,从而轻松检索数据。

如下图所示,血缘提取流程包含以下事件:

  1. 血缘提取流程首先会确定用于通过查询生成输出或目标实体的来源实体。识别过程是通过解析转换指令完成的,例如使用语法提供程序在数据仓库系统中解析 SQL 语句。
  2. 解析查询需要查询的来源实体的架构信息。来源实体架构是使用架构提供程序检索的。
  3. 调用语法提供方以识别输出列与源列之间的关系以及应用于每个输出列的函数和转换列表。

参考文章

  1. What Is Data Lineage? Why It’s Important to Track Data Flow
  2. 数据仓库的数据血缘系统
  3. 原文:数据血缘