什么是数据血缘?
数据的产生、加工融合、流转流通,到最终消亡,数据之间自然会形成一种关系。借鉴人类社会中类似的一种关系来表达数据之间的这种关系,称之为数据的血缘关系。数据血缘是元数据的组成部分之一。它分析表和字段从数据源到当前表的血缘路径,以及血缘字段之间存在的关系是否满足,关注的数据一致性以及表设计的合理性。可用于分析上游数据发生变化会给下游数据带来哪些影响;下游数据发生变化时追踪上游问题的源头等问题。
数 据 血 缘 特 征
- 归属性
一般来说,特定的数据归属特定的组织或者个人,数据具有归属性。
- 多源性
同一个数据可以有多个来源(多个父亲)。一个数据可以是多个数据经过加工而生成的,而且这种加工过程可以是多个。
- 可追溯性
数据的血缘关系,体现了数据的生命周期,体现了数据从产生到消亡的整个过程,具备可追溯性。
- 层次性
数据的血缘关系是有层次的。对数据的分类、归纳、总结等对数据进行的描述信息又形成了新的数据,不同程度的描述信息形成了数据的层次。
数 据 血 缘 用 途
- 数据溯源
数据的血缘关系,体现了数据的来龙去脉,能帮助我们追踪数据的来源,追踪数据处理过程。当数据发生异常,需要能追踪到异常发生的原因,把风险控制在适当的水平。特别随着企业发展,数据来源众多,质量也层次不齐;这必然导致对数据结果产生影响。因此数据溯源能力,非常有价值。
- 影响分析
随着数据应用越来越多,数据的流动链越来越长。一个源头的核心业务的改动,下游各分析应用必须保持同步,没有影响分析,就会各个数据服务造成异常访问的情况。这是往往开发部门的核心需求,方便进行影响评估。
- 数据价值
数据的价值如何衡量,是一个很头疼的问题。要想对数据进行价值评估,就需要有个依据;而数据血缘,就提供了几个方面的参考数据,方便进行评估。
- 数据受众:数据需求方越多,数据价值越大。
- 更新量级:更新数据量越大,数据价值越大。
- 更新频次:更新越频繁,数据价值越大。
- 质量评估
这是数据分析应用的需求,需要对最终呈现的结果数据质量有所把控。当发现数据出现问题时,需要进一步追踪数据源头,分析产生质量问题的原因并进而解决。从数据血缘图中,可以很方便的得到数据加工过程,进而分析可能的质量问题。
- 生命周期
通过数据血缘,可以直观地得到数据整个生命周期。对于那些价值不大的数据,可以考虑分层、归档甚至是销毁。
- 合规需求
这往往是上层管理部门的需求,为了监管合规,数据流动的各点和来源,都是重点需要监管的。因此需要全面了解数据间的关系。
- 安全管控
这通常是安全合规部门的需求,需要了解数据如何使用?受众有哪些?这些都可从数据血缘中得到。这些也将为权限管理(表级、字段级授权)提供依据,进而从更高层面保障数据安全。配合上元数据中安全标识(例如:哪些数据需要脱敏等),可进行全域的安全管控。
- 架构设计
数据血缘,提供了从数据加工视角了解数据的可能。在某些场景下,这非常有意义。例如在特定老项目终止需要新项目接管的情况下,没有数据流动映射表,就会大量花时间去整理,也很难保证迁移的完整性和正确性。
- 数据资产
对公司管理层来说,可通过数据血缘了解到整体数据流转的情况。这对于公司数据资产策略的制定等,均大有裨益。
- 研发需求
对于数据研发人员而言,如果有数据血缘,可以方便查找并理解数据加工逻辑、排查问题等。
血 缘 收 集 方 法
- 自动解析
自动解析是当前主要的收集方法。其具体做法就是解析SQL语句、存储过程、ETL过程等文件。因为复杂代码和应用环境等原因,根据国际厂商的经验,自动解析可以覆盖到企业数据的70-95%,目前无法做到100%。
- 系统跟踪
这一方法就是通过数据加工流动过程中,由数据处理程序负责发送数据血缘信息。例如在注解部分,增加对血缘的描述等。这种做法的好处是收集精准,及时,细粒度可支持;当然缺点是有一定侵入性。但如果公司是采用统一的加工平台,还是非常推荐这种方式的。
- 机器学习
这个方法是基于数据集之间的依赖关系,计算数据的相似度。这个方法的好处是对工具和业务没有依赖,缺点准确率需要人工确认。目前还没有看到很好的工程实现。
- 手工收集
最后一种是"万能"的方式,就是由研发手工整理数据血缘。可用此方法来覆盖,上面没有涉及的部分。
数 据 血 缘 应 用
基于数据血缘的能力,常见有如下一些应用。
- 数据血缘分析
即数据“前向”血缘。通过指定表/字段,来追溯其前向多级对象。
- 数据影响分析
即数据“后向”血缘。通过指定表/字段,来关联其后向多级对象。
- 数据全局血缘
不局限于单个对象,可从更大尺度(例如:项目内等),了解整体数据流转情况。这对于分析热点对象、数据清理等需求都很有意义。
- 数据计算血缘
即从“作业”角度入手,分析其前向、后向作业情况。这对于问题排查、质量分析等,均有意义。
- 对象关联分析
除了我们通常意义上的血缘外,还有一种更为广义上的血缘。对象间不只有数据级关系,还有一种引用级关系,即对象间关联使用,包括但不限于表、视图、模型、报表、作业等。这对于数据价值评估,数据资产管理等,均有意义。
- 数据逻辑探查
对于传统的数据探查,往往是根据数据层次定义完成。当有数据血缘时,提供了另一种探查的方式,即按照数据加工逻辑进行逐步探查。