博客 数据血缘是什么及数据血缘的收集方法

数据血缘是什么及数据血缘的收集方法

   小美   发表于 2022-11-24 18:45  1692  0

大数据时代,数据的来源极其广泛,各种类型的数据在快速产生,也在爆发性增长,这导致了数据之间的关系也变得越发复杂。

因此对数据工程师来说,如何管理表之间、代码之间的复杂关系,从而更好地认识和理解业务系统与底层表的关系、底层表的表间关系,理清当前数据(字段、关键指标或者数据标签)从哪里来?到哪里去?搞清楚哪些下游系统在使用这些数据等成为一件很重要的事。

而要解决这个事,我们就不得不提到元数据管理中的数据血缘。数据血缘描述了数据的来源和去向,以及数据在多个ETL处理过程中的转换,因此,数据血缘是组织内使数据发挥价值的重要基础能力。今天小编就来为大家分享下什么是数据血缘,以及如何做好血缘分析?


一、什么是数据血缘

数据血缘,又称数据血统、数据起源、数据谱系,是指数据的全生命周期中,数据从产生、处理、加工、融合、流转到最终消亡,数据之间自然形成一种关系。其记录了数据产生的链路关系,这些关系与人类的血缘关系比较相似,所以被成为数据血缘关系。


二、数据血缘的特征

1.归属性

数据是被特定组织或个人拥有所有权的,拥有数据的组织或个人具备数据的使用权,实现营销、风险控制等目的。

2.多源性

这个特性与人类的血缘关系有本质上的差异,同一个数据可以有多个来源(即多个父亲),来源包括,数据是由多个数据加工生成,或者由多种加工方式或加工步骤生成。

3.可追溯

数据的血缘关系体现了数据的全生命周期,从数据生成到废弃的整个过程,均可追溯。

4.层次性

数据的血缘关系是具备层级关系的,就如同传统关系型数据库中,用户是级别最高的,之后依次是数据库、表、字段,他们自上而下,一个用户拥有多个数据库,一个数据库中存储着多张表,而一张表中有多个字段。它们有机地结合在一起,形成完整的数据血缘关系。


三、构建血缘的方案

方案一:只收集SQL,事后分析。
当SQL执行结束,收集SQL到DB或者Kafka。
优点:当计算引擎和工具不多的时候,语法相对兼容的时候,用Hive自带的LineageLogger重新解析SQL可以获得表和字段级别的关系。
缺点:重放SQL的时候可能元数据发生改变,比如临时表可能被Drop,没有临时自定义函数UDF,或者SQL解析失败。

方案二:运行时分析SQL并收集。
当SQL执行结束后立即分析Lineage,异步发送到Kafka。
优点:运行时的状态和信息是最准确的,不会有SQL解析语法错误。
缺点:需要针对各个引擎和工具开发解析模块,解析速度需要足够快。


四、数据血缘的收集方法

1.自动解析

自动解析当前主要的收集方法,具体就是解析SQL语句,存储过程,ETL过程等文件。因为复杂代码和应用环境等原因,根据国际厂商的经验,自动解析可以覆盖到企业数据的70-95%,目前无法做到100%,因此患有技术洁癖的负责人容易犯下这个错误,即追求极高的覆盖率。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/231fff38a0664795faba51ca00c91886..png

2.系统跟踪

这个方法就是通过数据加工流动过程中,加工主体工具负责发送数据映射,这样做的极大好处是收集精准,及时,细粒度可支持,不过限制就是不是每个工具都可以集成。这种方法一般鉴于统一的加工平台,比如Informatica可以管理自己的全数据血缘周期。

3.机器学习方法

这个方法是基于数据集之间的依赖关系,计算数据的相似度。这个方法的好处是对工具和业务没有依赖,缺点准确率需要人工确认,一般可以做到3-8的数据可以分析发现。

4.手工的收集

在整个项目中,一般有5%是需要手工来做的。


想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack/Taier

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群