数据血缘的定义
数据血缘即数据的来龙去脉,主要包含数据的来源、数据的加工方式、映射关系以及数据出口。
数据血缘属于元数据的一部分,清晰的数据血缘是数据平台维持稳定的基础,更有利于数据变更影响分析以及数据问题排查。
数据血缘的范围
数据血缘单纯的数据角度来看包含的维度有数据库、表、字段、系统、应用程序,即数据存储在什么数据库的什么表,对应的字段是什么以及字段的属性,数据所属的系统以及与数据有关 的应用程序。
数据血缘从业务角度来看包含的维度主要是数据所属业务线,涉及到业务便要梳理清楚数据的产生逻辑、数据的使用逻辑以及业务线之间的关联关系。
数据血缘获取
数据血缘的获取主要有程序解析与人工采集两种方式。
1.程序解析
程序解析主要是面向存储过程、sql、视图以及已有的ETL过程。
以一个数据加工的完整流程为例,每个数据加工的流程都通过一个唯一的标识进行标记,流程中的每一个环节都记录其前后依赖关系,程序将每一个环节的逻辑解析以后 根据依赖关系和流程便可以生成全流程的数据血缘。
- 人工采集
人工采集可以是程序解析的一种辅助,也可以单独以这种方式发挥作用。
与程序解析不同的是,人工采集的结果可以更准确与详实,即使是在程序解析可以实现极高的准确率的情况下也需要以人工的方式进行一次审核是比较合理的做法。
数据血缘的表现形式
数据血缘在表现关联关系时其实与知识图谱非常的类似。
下图为使用neo4j生成用来表示血缘的图:
(为了让展示方式清晰,故隐去了图中节点的一些属性)
如上图所示,两个橘黄色分别表示ods和dwd层的两张表,蓝色的代表字段,dwd_vol有一个字段fund_account,其数据来源为将ods_vol表中的fund_account求和。
以上的表现方式在使用程序解析时可以非常方便的生成,但是对于手工采集,则需要先通过其他形式进行记录,如下表格所示:
(以上表格中的内容仅供参考,命名方面可能不是太规整)