在大数据早期,做数据治理最主要的目的,就是为了提升数据质量,让报表、分析、应用更加准确。到今天,虽然数据治理的范畴扩大了很多,我们开始讲数据资产管理、知识图谱、自动化的数据治理等等概念,但是提升数据的质量,依然是数据治理最重要的目标之一。因为数据要能发挥其价值,关键在于其数据的质量的高低,高质量的数据是一切数据应用的基础。在数据质量不高的环境下,做数据分析可谓问题重重,数据质量问题已经严重影响了组织业务的正常运营。通过科学的数据质量管理,持续地提升数据质量,已经成为组织内刻不容缓的优先任务。
做数据质量管理首先要搞清楚数据质量问题产生的原因,原因有很多方面,例如:技术、管理、处理流程、业务逻辑错误等都会碰到,但从根本上来讲数据质量问题产生的绝大多数原因在业务上。
解决数据质量问题不是简单通过一个工具就能搞定,需要从根本上认识到数据质量问题产生的真正根源,从而从业务上着手解决数据质量问题。从业务角度着手解决数据质量问题,重要的是建立一套科学、可行的数据质量评估标准和管理流程。
评估数据质量的好坏,业界标准并不统一。阿里巴巴对数据仓库主要从四个方面进行评估,即完整性、准确性、一致性和及时性。
完整性是指数据的记录和信息是否完整,是否存在缺失的情况。数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成数据不准确,所以说完整性是数据质量最基础的保障。
比如交易中每天支付订单数都在100万笔左右,如果某一天支付订单数突然下降到1万笔,那么很可能是记录缺失了。对于记录中某个字段信息的缺失,比如订单的商品ID、卖家ID是必须存在的,这些字段的空值个数肯定是0,一旦大于0就必然违背了完整性约束。
准确性是指数据中记录的信息和数据是否准确、是否存在异常或者错误的信息。例如,成绩单中分数出现负数或订单中出现错误的买家信息或负的订单金额等,这些数据都是问题数据。确保记录的准确性也是保证数据质量必不可少的一部分。
一致性通常体现在跨度很大的数据仓库中。例如,某公司有很多业务数仓分支,对于同一份数据,在不同的数仓分支中必须保证一致性(数仓各层数据经过ETL后,条数、数据值、类型需要与上层保持一致)。例如,从在线业务库加工到数据仓库,再到各个数据应用节点,用户ID必须保持同一种类型,且长度也要保持一致。
保障数据的及时产出才能体现数据的价值。例如,决策分析师通常希望当天就可以看到前一天的数据。若等待时间过长,数据失去了及时性的价值,数据分析工作将失去意义。这里离线数仓一般都是凌晨运行任务,及时性可以得到保证。