2022-09-28 07:30 浏览量:578
傅一平评语:
数据血缘是元数据产品的核心能力,但数据血缘是典型的看起来很美好但用起来门槛很高的技术,只要你采买过元数据产品就知道了。这篇文章对数据血缘的特征、价值、用途和方法做了系统阐述:
1、特征:归属性、多源性、可追溯及层次性
2、价值:数据价值评估、数据质量评估及数据生命周期管理
3、用途:合规需求、影响分析和质量问题分析、数据安全和隐私、迁移项目及自服务分析
4、方法:自动解析、系统跟踪、机器学习方法及手工的收集
从数据血缘获得的方法看,自动解析基本是不靠谱的,机器学习方法还处于设想阶段,手工收集及时性,一致性很差,系统跟踪极大依赖于规范化管理能力和工具的集成能力,但却是我比较认可的方法,要建立数据血缘一定要具体场景导向、小处着手,不要一下子想着搞个血缘全量,凡是理想化的做到最后大多做了个寂寞。
正文开始
数据血缘关系,从概念来讲很好理解,即数据的全生命周期中,数据与数据之间会形成多种多样的关系,这些关系与人类的血缘关系类似,所以被称作数据的血缘关系。
从技术角度来讲,数据a通过ETL处理生成了数据b,那么,我们会说,数据a与数据b具有血缘关系。不过与人类的血缘关系略有不同,数据血缘关系还具有一些个性化的特征。
归属性
数据是被特定组织或个人拥有所有权的,拥有数据的组织或个人具备数据的使用权,实现营销、风险控制等目的。
多源性
这个特性与人类的血缘关系有本质上的差异,同一个数据可以有多个来源(即多个父亲),来源包括,数据是由多个数据加工生成,或者由多种加工方式或加工步骤生成。
可追溯
数据的血缘关系体现了数据的全生命周期,从数据生成到废弃的整个过程,均可追溯。
层次性
数据的血缘关系是具备层级关系的,就如同传统关系型数据库中,用户是级别最高的,之后依次是数据库、表、字段,他们自上而下,一个用户拥有多个数据库,一个数据库中存储着多张表,而一张表中有多个字段。它们有机地结合在一起,形成完整的数据血缘关系。
如下图中某学校学生管理系统后台数据库的ER图示例,学生的学号、姓名、性别、出生日期、年级、班级等字段组成了学生信息表,学生信息表、教师信息表、选课表之间通过一个或多个关联字段组成了整个学生管理系统后台的数据库。
不管是结构化数据,还是非结构化数据,都具有数据血缘关系,他们的血缘关系或简单直接,或错综复杂,都是可以通过科学的方法追溯的。
以某银行财务指标为例,利息净收入的计算公式为利息收入减去利息支出,而利息收入又可以拆分为对客业务利息收入、资本市场业务利息收入和其他业务利息收入,对客业务利息收入又可以细分为信贷业务利息收入和其他业务利息收入,信贷业务利息收入还可以细分为多个业务条线和业务板块的利息收入。
如此细分下去,一直可以从财务指标追溯到原始业务数据,如,客户加权平均贷款利率和新发放贷款余额。如果利息净收入指标发现数据质量问题,其根因可以通过下图一目了然发现。
数据血缘追溯不只体现在指标计算上,同样可以应用到数据集的血缘分析上。不管是数据字段、数据表,还是数据库,都有可能与其他数据集存在着血缘关系,分析血缘关系对数据质量提升有帮助的同时,对数据价值评估、数据质量评估以及后续对数据生命周期管理也有较大的帮助和提高。
从数据价值评估角度来看,通过对数据血缘关系的梳理,我们不难发现,数据的拥有者和使用者,简单地来看,在数据拥有者较少且使用者(数据需求方)较多时,数据的价值较高。在数据流转中,对最终目标数据影响较大的数据源价值相对较高。同样,更新、变化频率较高的数据源,一般情况下,也在目标数据的计算、汇总中发挥着更高的作用,那可以判断为这部分数据源具有较高的价值。
从数据质量评估角度来看,清晰的数据源和加工处理方法,可以明确每个节点数据质量的好坏。
从数据生命周期管理角度来看,数据的血缘关系有助于我们判断数据的生命周期,是数据的归档和销毁操作的参考。
考虑到数据血缘的重要性和特性,以一般来讲,我们在血缘分析时,会关注应用(系统)级、程序级、字段级三个层次间数据间的关系。比较常见的是,数据通过系统间的接口进行交换和传输。
例如下图,银行业务系统中的数据,由统一数据交换平台进行流转分发给传统关系型数据库和非关系型大数据平台,数据仓库和大数据平台汇总后,交流各个应用集市分析使用。其中涉及大量的数据处理和数据交换工作:
在分析其中的血缘关系时,主要考虑以下几个方面:
1、全面性
如上图所示,数据处理过程实际上是程序对数据进行传递、运算演绎和归档的过程,即使归档的数据也有可能通过其他方式影响系统的结果或流转到其他系统中。为了确保数据流跟踪的连贯性,必须将整个系统集作为分析的对象。
2、静态分析法
本方法的优势是,避免受人为因素的影响,精度不受文档描述的详细程度、测试案例和抽样数据的影响,本方法基于编译原理,通过对源代码进行扫描和语法分析,以及对程序逻辑涉及的路径进行静态分析和罗列,实现对数据流转的客观反映。
3、接触感染式分析法
通过对数据传输和映射相关的程序命令进行筛选,获取关键信息,进行深度分析。
4、逻辑时序性分析法
为避免冗余信息的干扰,根据程序处理流程,将与数据库、文件、通信接口数据字段没有直接关系的传递和映射的间接过程和程序中间变量,转换为数据库、文件、通信接口数据字段之间的直接传递和映射。
5、及时性
为了确保数据字段关联关系信息的可用性和及时性,必须确保查询版本更新与数据字段关联信息的同步,在整个系统范围内做到“所见即所得”。
一般来说,数据血缘的用途主要体现以下几个方面:
1、合规需求,这是监管部门的需求,为了监管合规,数据流动的各点和来源,都是重点需要监管的。
2、影响分析和质量问题分析,这个数据开发部们的核心需求,随着数据应用越来越多,数据的流动链越来越长,一个源头的核心业务的改动,下游各分析应用必须保持同步,没有影响分析,就会各个数据服务造成异常访问的情况。
3、数据安全和隐私,这个是数据合规部门的需求,哪些数据是需要脱敏的,这个要保持全流通所有域的管控。
4、迁移项目,这个出现在特定老项目终止需要新项目接管的情况下,没有数据流动映射表,就会大量花时间去整理,也很难保证迁移的完整性和正确性。
5、自服务分析,数据分析团队为了确定数据可信程度,那么数据的来源是数据可信的重要依据。
数据血缘系统的构建和维护是一个较重的系统工程,笔者认为其是数据治理工作中的流沙之地,不小心会陷入这个坑之中,尤其是技术完美人格类型的负责人,这是因为数据血缘的工作需要考虑的因素很多。
为了最大程度降低项目失败的风险,我们需要考虑数据血缘的服务用户对象,确定业务方面和技术方面的血缘优先,需要考虑到细节程度,覆盖率,变化频率,同时还要考虑人员流动,组织部门,技术架构等情况,制定最适合我们自己的策略。
数据血缘的收集方法主要有以下几种:
1、自动解析
自动解析当前主要的收集方法,具体就是解析SQL语句,存储过程,ETL过程等文件。因为复杂代码和应用环境等原因,根据国际厂商的经验,自动解析可以覆盖到企业数据的70-95%,目前无法做到100%,因此患有技术洁癖的负责人容易犯下这个错误,即追求极高的覆盖率。
2、系统跟踪
这个方法就是通过数据加工流动过程中,加工主体工具负责发送数据映射,这样做的极大好处是收集精准,及时,细粒度可支持,不过限制就是不是每个工具都可以集成。这种方法一般鉴于统一的加工平台,比如Informatica可以管理自己的全数据血缘周期。
3、机器学习方法
这个方法是基于数据集之间的依赖关系,计算数据的相似度。这个方法的好处是对工具和业务没有依赖,缺点准确率需要人工确认,一般可以做到3-8的数据可以分析发现。
4、手工的收集
在整个项目中,一般有5%是需要手工来做的。
目前的数据血缘大多是基于技术的梳理,一般服务技术人员的需求。随着数据服务走向前台,服务业务分析和CDO的业务数据血缘,目前已经有相关产品,通过数据的语义分析,将技术元数据映射到业务元数据上,将血缘以业务流程方式发布共享出来,辅助商务决策,这是未来的发展方向之一。
来源:数据学堂