前言
数据质量监控 是容易被忽略的一个重要环节,我刚开始搞数据库时压根也没想到会有这档事,直到频繁出现几次数据“翻车”事故后,才感受到它的重要性与必要性;如果连数据源的状况都不能掌控,那么搞数据分析就像在“危楼”上建房;“凡有数据必有监控”,这是之前我被老板骂过的话,只想说骂的真对。
1.数据质量监控流程
数据质量监控流程大体有两个环节:监控 与 告警。监控,一般指核查表的数据量 或 表字段的统计值 是否合理;如果不合理就发出告警。
2.数据质量监控对象
一般是表与表字段,两者的监控点有:
- 表:数据量,更严格的监控还包括:主外键、存储引擎、字符集等
- 表字段:统计值,更严格的监控还包括:字段类型、索引等
3.数据质量监控内容与方法
数据质量评估标准 这一章节中,为我们做 数据质量监控 提供了方法论,下面的介绍会更为细节。
(1)监控内容
- 数据量:检查表在单位日期内的数据量,除了掉0异常,也要限制合理范围值
- 异常值:检查各列的值类型及值范围,找出异常值,异常值一般是 离群点 或 不同类的值 等
- 缺失值:NULL NAN None \N 空值
- 重复值:唯一值字段 / 互斥字段 检查重复值
- 范围值:这点更多是从业务实际情况考虑, 检查值是否在合理范围内
(2)监控方法
包括同比、环比、趋势分析、定期全历史趋势分析、业务分析对比等。
除了以上两点,我们还要考虑数据源更新的频率、数据延迟期 以及 数据源入库方式,如果是人工入库的,就要特别注意了,因为(相对程序自动化入库)这种方式失误率较大。
以上两点一般都会被写成规则库,还附带值参照表,然后通过程序或工具调用规则库对数据执行检查。
4.数据质量告警
(1)告警3个阶段 - 事前.事中.事后
很多人认为 数据质量告警 是在数据监控之后,其实并不一定,因为除了数据质量监控的告警外,还包括 数据库性能告警、ETL过程告警。若按数据生命周期的次序划分,ETL过程告警为事中控制、数据质量监控后的告警为事后告警,前期的数据规则设计可理解为事前预防;数据库性能告警则是常规性的,可能发生在任一事件的各个段阶。
(2)告警触发方式
常用的有email、短信、微信、电话,一般会把告警事件划分级别,紧急事件会采用电话方式通知。
以下是网上一位牛人的文章,把数据质量监控介绍得十分详细,除了佩服还是佩服。
请参考原创:https://mp.weixin.qq.com/s/ovSa7Uhv5IyKzyb-l3PHaA
数据质量监控可以分为数据质量的事前预防控制、事中过程控制和事后监督控制:
- 事前预防控制
建立数据标准化模型,对每个数据元素的业务描述、数据结构、业务规则、质量规则、管理规则、采集规则进行清晰的定义,以上的数据质量的校验规则、采集规则本身也是一种数据,在元数据中定义。面对庞大的数据种类和结构,如果没有元数据来描述这些数据,使用者无法准确地获取所需信息。正是通过元数据,使得数据才可以被理解、使用,才会产生价值。构建数据分类和编码体系,形成企业数据资源目录,让用户能够轻松地查找和定位到相关的数据。实践告诉我们做好元数据管理,是预防数据质量问题的基础。
数据质量问题的预防控制最有效的方法就是找出发生数据质量问题的根本原因并采取相关的策略进行解决。
1)确定根本原因:确定引起数据质量问题的相关因素,并区分它们的优先次序,以及为解决这些问题形成具体的建议。
2)制定和实施改进方案:最终确定关于行动的具体建议和措施,基于这些建议制定并且执行提高方案,预防未来数据质量问题的发生。
- 事中过程控制
事中数据质量的控制,即在数据的维护和使用过程中去监控和处理数据质量。通过建立数据质量的流程化控制体系,对数据的新建、变更、采集、加工、装载、应用等各个环节进行流程化控制。数据质量的过程控制,要做好两个强化:
(1)强化数据的标准化生产,从数据的源头控制好数据质量,该过程可以采用系统自动化校验和人工干预审核相结合的方式进行管理,数据的新增和变更一方面通过系统进行数据校验,对于不符合质量规则的数据不允许保持,另一方面采集流程驱动的数据管理模式,数据的新增和变更操作都需要人工进行审核,只有审核通过才能生效。
(2)强化数据质量预警机制,对于数据质量边界模糊的数据采用数据质量预警机制。数据预警机制是对数据相似性和数据关联性指标的重要控制方法。针对待管理的数据元素,配置数据相似性算法或数据关联性算法,在数据新增、变更、处理、应用等环节调用预置的数据质量算法,进行相识度或关联性分析,并给出数据分析的结果。数据预警机制常用在业务活动的交易风险控制等场景。
-
事后监督控制
是不是我们最好了事前预防控制和事中过程控制,就不会再有数据质量问题的发生了?答案显然是否定的。而事实上,不论我们做了多少预防措施、多严格的过程控制,总是还有数据质量问题的“漏网之鱼”,你会发现只要是人为干预的过程,总会存在数据质量的问题。数据质量问题一旦产生就已经是“木已成舟”,为了避免或减低其对业务的影响,我们需要及时的发现它。这里,数据质量的事后监督控制就尤为重要了。
定期开展数据质量的检查和清洗工作应作为企业数据质量治理的常态工作来抓。
1)设置数据质量规则。基于数据的元模型配置数据质量规则,即针对不同的数据对象,配置相应的数据质量指标,不限于:数据唯一性、数据准确性、数据完整性、数据一致性、数据关联性、数据及时性等。
2)设置数据检查任务。设置成手动执行或定期自动执行的系统任务,通过执行检查任务对存量数据进行检查,形成数据质量问题清单。
3)出具数据质量问题报告。根据数据质量问题清单汇总形成数据质量报告,数据质量报告支持查询、下载等操作。
4)制定和实施数据质量改进方案,进行数据质量问题的处理。
5)评估与考核。通过定期对系统开展全面的数据质量状况评估,从问题率、解决率、解决时效等方面建立评价指标进行整改评估,根据整改优化结果,进行适当的绩效考核。
笔者观点:数据治理的“常态化”才是数据质量问题的最好解决方式,而要实现常态化治理就需要改变原来的企业组织形式、管理流程、转变观念,以适应这种变化。数据治理的“常态化”要经得起折腾,所以千万不能老做些重新发明轮子的亊情!