基于MaxCompute的数仓数据质量管

中科白癜风四大惠民活动 http://m.39.net/pf/a_5882645.html

声明

本文中介绍的非功能性规范均为建议性规范,产品功能无强制,仅供指导。

参考文献

《大数据之路——阿里巴巴大数据实践》——阿里巴巴数据技术及产品部著。

背景及目的

数据对一个企业来说已经是一项重要的资产,既然是资产,肯定需要管理。随着业务的增加,数据的应用越来越多,企业在创建的数仓过程中对数据的管理也提出了更高的要求,而数据质量也是数仓建设过程不容忽视的环节。本文针对MaxCompute数仓建设过程中如何做数据质量给出规范建议,为实际数据治理提供依据及指导。

数据质量保障原则

评估数据质量的好坏不同行业甚至不同企业有不同标准,在此我们主要从四个方面进行评估,即完整性、准确性、一致性和及时性。

完整性。完整性是指数据的记录和信息是否完整,是否存在缺失情况。数据缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成统计结果不准确,可以说,完整性是数据质量最基础的保障。如某个相对稳定的业务数据量每天的都有万条记录,某天突然下降1万条,那么可能就是记录缺失。而对于记录中某个字段信息缺失,如某科高考成绩表中一个考卷分数要对应一个准考证号,这个字段的空值数就该为0,一旦大于0,说明该信息缺失了。准确性。准确性是指数据中记录的信息和数据是否准确,是否存在异常或者错误的信息。比如成绩单中分数出现负数,比如订单没有买家信息等,这些都是有问题的。确保记录的准确性也是抱着数据质量必不可少的一个原则。一致性。一致性一般体现在跨度很大的数据仓库体现中。比如公司中有很多业务数仓分支,对于同一份数据必须保证一致性。例如用户ID,从在线业务库加工到数据仓库,再到各个数据应用节点,必须都是同一种类型、长度保持一致。因此在《MaxCompute数仓建设规范指南》中有了“公共层”的加工,确保数据的一致性。及时性。保障数据的及时产出,体现数据的价值。如决策的分析师一般都希望当天可以看到前一天的数据而不是要等三五天才能看到某一个数据分析结果,否则就失去了数据及时性的价值,使得数据分析工作变得毫无意义。数据质量管理流程

要做数据质量管理,制定满足以上数据质量原则集基础上的质量管理规范,需要考虑几方面:

什么数据需要做质量管理。什么环节进行数据质量管理。数据质量管理具体怎么做。数据质量定义

定义哪些数据需要做质量管理一般可以通过数据资产等级划分和元数据的应用链路分析得出。根据应用的影响程度,确定数据资产等级;根据数据链路血缘,将数据资产等级上推至各数据生产加工的各个环节,确定链路上所涉及的数据的资产等级和在各个加工环节上根据资产等级的不同所采取的不同处理方式。

数据资产等级定义

对于数据的资产等级,在质量管理方向,可以从数据质量“不满足四个原则”情况下对业务的影响性质,比如可以划分为5个等级的性质,即毁灭性质、全局性质、局部性质、一般性质、未知性质,不同性质的重要性一次降低,具体定义如下:

毁灭性质,即数据一旦出错,将会引起重大资产损失,面临重大收益损失等。全局性质,即数据直接或间接用于企业级业务和效果评估、重要决策等。局部性质,即数据直接或间接用于某些业务线的运营、报告等,若出现问题会给业务线造成影响或者造成工作效率损失。一般性质,即数据主要用于日常数据分析,出现问题带来的影响极小。未知性质,即无法明确数据的应用场景。如table的label等级,资产等级可以用Asset进行标记:毁灭性质-A1,全局性质-A2,局部性质-A3,一般性质-A4,未知性质-Ax。重要程度为:A1A2A3A4Ax。若一份数据出现在多个应用场景汇总则遵循就高原则。

数据资产等级落地方法

定义划分好数据资产等级后,接下来就考虑怎么落地,对数仓中庞大的数据量进行资产等级打标。可以从数据流转链路着手。

MaxCompute进行数据加工基本基本流程:数据从业务系统上产生,通过同步工具(DataWorks的数据集成或阿里云DTS)进入数据数仓系统(MaxCompute),数据在数仓中进行清洗、加工、整合、算法、模型等一系列运算后,再通过同步工具输出到数据产品中进行消费。整个流程数据都是以存放在表的形式体现,流转链路大致如下图:

从数据流转链路上,整理哪些表是被哪些应用业务产品消费,通过给这些应用业务产品划分数据资产等级,再结合数据的上下游血缘,将整个链路打上某一类资产等级的标签。如,一个A2等级的的数据应用产品,对应导入这个数据产品的table即数仓(MaxCompute)的导出表Table1、Table2、Table3,几个表都打上A2-xxx数据产品标记,根据血缘往上追溯,将这几个表的上有都打上A2的标记,一直标记到源数据业务系统。

通过如上方式完成数据资产等级的确认,给不同的数据定义不同的重要程度。

知道了数据的重要等级针对不同的等级,采取不同的保障措施,接下来我们介绍在基于MaxCompute的数据仓库中针对不同等级的数据的保障方法。

数据加工过程卡点校验

在线系统卡点校验

在线系统数据加工过程卡点校验,主要是指在业务系统的数据生成过程中进行的卡点校验。在线业务系统产生的数据也是数据仓库的数据来源,然而在线业务系统普遍都是复杂多变,且每次变更不可避免会带来数据的变化,数仓需要适应多变的业务发展,及时做到数据的准确性。因此,在线业务的变更如何高效的通知到基于MaxCompute的离线数据仓库,也是需要考虑的问题。这里我们介绍两个方法拱参考:工具和人员双管齐下。纪要在工具上自动捕捉每一次业务的变化,同时也要求开发人员在意识上自动进行业务变更通知。

工具——发布平台。在业务进行重大变更时,订阅这个发布过程,通知到离线开发人员,使其知晓此次变更内容。当业务系统足够繁杂,日常发布变更频繁的情况下,若每次变更都通知离线业务,势必会造成不必要的浪费,同时也影响业务迭代效率。此时,可以通过数据资产等级的标识,对业务进行打标后,针对高等级的数据资产,整理出什么变更会影响数据的加工,如相关财务报表,如果业务系统的改造影响到财务报表的计算,使得约定好的计算口径被业务系统发布变更修改了,这种情况必须要告知离线业务,而离线开发人员也必须主动


转载请注明:http://www.aierlanlan.com/grrz/1217.html