1.2.3 什么是数据血缘分析
数据分析是指用恰当的统计分析方法对收集来的大量数据进行汇总、理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程,而数据血缘分析就是针对数据中的血缘关系进行分析。
我们来看下面两个场景。
场景一 假如你要买一辆车,但是你对市场上的车并不了解,需要上网收集一些购车的信息,并对这些信息做分析和筛选。首先根据自己的需求对车的品牌、性能、价位做优先级排序,然后根据自己的预算和需求的优先级选出合适的汽车。这其实就是我们身边最常见的一个数据分析运用场景。
场景二 你是某大型企业的数据分析师,某天早上刚到公司,就收到业务部门领导的消息:我的管理驾驶舱报表数据又不对了,到底哪里的数据发生了变化?你需要给一个答复。你首先查到数据背后关联的指标多达28个,与昨晚ETL更新的数据做对比,发现其中有12个发生了变化,于是你排查了这12个数据,发现分别来自4个数据源,你分别找到这4个数据源的负责人员排查数据为何发生变化,最终找到了数据发生错误的原因,源头A录入了错误数据,导致流入管理驾驶舱的最终数据发生了错误。
因为数据来源复杂,对类似问题的排查可能就花费了我们一天甚至更长的时间。于是我们开始思考能否将这些要排查的数据的流向都展示出来,发现异常数据时及时预警并标注。当我们看到某一个数据异常时,就可以通过线上溯源,准确找到和定位具体的数据问题,提高问题解决效率,这样将极大提升终端用户的使用体验。
数据血缘分析中的源头分析主要是针对上游数据信息进行分析,用于追溯数据的来源和加工过程。数据血缘分析中的影响分析是分析下游数据流转信息,用于掌握数据变更可能造成的影响。数据血缘全链分析包含了数据血缘分析和血缘影响分析,用于展现数据的来龙去脉,以及数据全生命周期的变化。
数据血缘分析是一种技术手段,用于全面追踪数据处理过程,以找到与特定数据对象有关的所有元数据对象,并揭示这些元数据对象之间的关系。这些关系主要表示元数据对象之间的数据流的输入和输出关系。通过进行血缘追踪,可以根据整合的数据库或视图,获取结果数据的来源信息,并跟踪数据在数据流中的变化过程,反映原始数据库的更新。数据血缘分析包含以下3个方面的内容。
❑来源分析。来源分析采用图形方式展示了以某个元数据为终点,与该元数据有关系的所有元数据,反映数据的来源与加工过程。使用来源分析可分析数据来源和定位数据质量问题。例如,数据从A表变化到B表然后再变化到C表,仅对C表进行来源分析,就会显示出数据来源——A表。
❑影响分析。影响分析展示以某个数据为起点,该数据带来的影响。比如,以某元数据为起始节点,在这之后与其有关系的所有元数据均会展示,从而反映数据的流向与加工过程。使用影响分析可分析数据流向、数据转换并进行的错误定位。例如,我们查看A表的影响分析时,就会显示完整的数据应用链路,展示流向中哪些表受到影响。
❑全链条分析。以某个数据为起点,展示该数据之前的数据来源,以及该数据之后的数据流向的全过程。比如以某元数据为起始节点,展示前后与其有关系的所有元数据,反映数据的来源与加工过程。全链条分析重点是分析数据来源和数据质量问题。例如,我们对B表字段“项目名称”进行全链条分析时,就会显示该字段的数据来源A表和流向的C表。图1-2所示为全链条分析。
图1-2 数据全链条分析
数据血缘分析跟踪数据从生产端到消费使用方全过程的数据变化,跟踪这个过程中所有数据转换,对流转过程中产生并记录的各种信息进行采集、处理和分析,对数据之间的血缘关系进行系统性梳理、关联,并将梳理完成的信息进行存储,最终结果用可视化工具进行展示。数据血缘分析可以解决数据多方面问题,如数据信任、数据理解、数据影响、数据合规。数据血缘分析通常需要借助工具或系统展开,见表1-1。
数据血缘分析通常会按数据血缘的层级进行,层级因业务需求和某些数据特性的不同可能会有差别,常见的分析层级为应用(业务系统)级、数据(表/文件)级和字段级。数据血缘分析的目标是实现数据来源的精确追踪、流转过程的准确还原、数据去向的精准定位。
表1-1 数据血缘分析表