作者:阿里云DataWorks团队
在我们针对数据生产稳定性进行保障过程后,往往同步会关注到的,就是数据生产的质量问题治理。数据质量的好坏,往往对业务侧所要执行的决策和流程有着直接关联,各种场景不但需要能“成功获取数据”,还需要能“成功获取正确的数据”,这样才能实现业务侧的成功。
以阿里集团最常见的电商包裹场景举例,我们能看到,当一件包裹上出现了数据质量问题后,能引发不同维度上的业务问题。
通常在实际生活中,我们针对包裹会有重点关注的基础数值属性,比如包裹的重量、体积,因为会和包裹的价格、包裹的运输安排都有关系。当出现这些属性不符合预期的情况时,就会出现针对这件包裹的各种业务问题的追查。
例如,当重量值为空值时,或者等于0的时候,按数据规则反应现实过程,则是出现了没有重量的空包裹,这是不符合对物流和计价的业务要求的。而当重量、体积值超过了正常定义的阈值时,例如1个小包重量很大,按实际情况也是不合理的情况。
所以,当出现这种数据质量问题时,我们就会关注,到底是业务上出现了真实问题,还是实际数据加工过程出现了污染。如果真实业务没问题,而是数据出现了问题,则会影响到后续针对包裹的结费计算、运输网络的规划、供应链优化等等。平台与消费者、平台与商家、平台与供应商之间的交互,都会被数据质量问题所影响。
而这些数据质量问题,如果没有治理管控,则会在数据生产过程非常普遍地出现,如数据残缺不全、数据不一致、数据重复等等,导致数据不能有效地被利用,影响数据可靠性保障和有效的业务产出。所以数据质量管理,需要如同产品质量管理一样,贯穿于数据生命周期的各个阶段。当生产环境中产生了与现有规则不符的持久化数据,或数据延迟的问题,则定义为「数据质量问题」。其中引发故障的,则定义为「数据质量故障」。而数据生产质量治理的过程,也就是我们为了避免「数据质量问题」所要建设的重要体系。
我们从业务出发,从对业务侧最核心关键的业务实体,进行数据质量需求的梳理,来明确数据质量问题。如针对电商交易,最关心的就是商品、用户、计费、营收方面数据的质量情况。那什么是影响这些业务实体生产稳定性的关键质量要求呢?在阿里巴巴内部,面向这类商业产品的数据服务支撑流程中,重点会关注以下两大方面:
1)面向商业级服务的数据质量高保障要求:由于在阿里巴巴中台里,数据大量以服务的形态,提供给各个商业化的业务应用,因此,这意味着不只是数据本身产出的保障,也直接影响着最终业务侧承诺质量的保障。
比如,由于更多客户业务根据数据进行决策,数据高准确性要求也因此出现,对数据准确性的不再只是满足一定的数据分布即可,需要结合更多的业务知识对数据准确性进行更准确地评估。再如,由于部分TOB业务对数据产出的时效性有一定要求,单一架构的数据库可能不能完全满足业务的产出速度需要,需要异构数据库合作进行数据链路建设,因此如何保证异构数据的一致性也是需要解决的问题。
2)对数据质量协作保证过程的高效率要求:多角色流水线作业下,如果要保证数据质量,除了需要制定数据质量规范外,还需要在各环节完成对应事宜,比如研发环节、测试环节、监控环节都有面向各环节要完成工作的人员,分别需要到各模块各自操作,往往还会出现重复性工作,比如质量测试的用例,和质量监控的设置逻辑,通常是类似的,需要能有平台工具,帮助多角色用户,针对数据链路中所产出的所有线上数据质量问题,进行汇总,分析;能帮助质量小组,把纸面要求、规章制度中定义的数据问题,能定期复盘,转化为数据度量落在系统中;能反推研发各阶段,共同高效地提升数据质量。
在这些关注点的牵引上,阿里巴巴数据质量的全流程体系,相应地在如下领域完成重点增强。
针对多角色协作式的数据流程,基于DataWorks了提供统一的数据质量平台工具,能在一个平台上流水线式地完成所有协作过程。围绕开发、部署、运维和监控环节的工具能力提升,极大简化了数据团队各角色的日常工作流程。在持续监控的数据质量监控的基础上,加强事中防控质量问题,事前预防校正问题维度,让数据质量在每个环节起作用,各个角色侧都能高效落地。
事前:在研发过程中保障代码质量,提前规避质量问题,通过代码检测、质量自测的能力让研发可以提前消灭问题;
事前:让测试更有效地进行质量测试,提供上线前的冒烟测试、对比测试,从之前仅完成基础功能验证的测试,完善拓展其测试维度,不断积累围绕业务承诺要求的规则,从而让研发和运维都能够进行快速地自动化测试,持续进行数据链路的部署更新
-
事中:数据质量检测任务直接关联调度任务产出。做到数据即产出即检查,当高保障数据任务运行时,上游数据出现脏数据时,能及时阻断任务,规避质量问题数据对下游的影响,并通过告警机制及时提醒用户进行任务处理。
针对需要高保障的大批量数据表的质量管理需求,也能让质量责任人以低成本方式,提升规则覆盖率,减少人工配置负担,降低阈值设置难度和规则误报率。而在海量数据、多种数据种类情况下,由系统保障平台性能,做到大数据量下质量监控仍能高效运行,并且尽可能减少对业务数据链路产出的资源消耗影响,做到以最小成本执行。面向复杂数据架构的场景时,也能针对多种引擎下的数据,持续地保障数据的一致性及质量管理的延续性。
数据质量规则作为承载保障体系的重要载体,从人肉防控梳理,做到平台规则沉淀的自动检测,最终走向质量高效化的智能管理。这里面有大量的基础性工作:
•通过管理机制和平台体系,让每一张数据表都有负责人
•平台能自动追溯表与表之间的血缘关系
•末端表标注业务重要性,向上追溯链路中的表,以业务作为抓手来治理质量问题
• ETL作业统一调度,质量监控与调度系统集成,做到事中即时智能管控
平台整个完成面向不同业务实体的质量治理过程,由平台侧和质量保障小组,不断沉淀通用平台侧和业务维度侧的质量规则模板。整个过程中,针对不断产生的新的数据表及相似业务,提供快速模板化规则配置、规则推荐,并根据历史的业务运行结果进行动态阈值的智能判定,减少新数据和新用户的配置成本,减少对需要关注指标及数据的质量治理的遗漏,全面提升数据可信度与价值密度。
最终沉淀为针对数据生产过程的质量稳定性全流程保障方案,从平台、规范、组织三方面完成了相应建设和沉淀,根据实际的业务流程和数据流程完成
质量治理策略:建立线上数据质量问题管理处置机制
质量问题监控:建立全流程数据质量问题的监控和预防体系
质量协同处理:建立上下游协同的工作流程
-
质量度量评估:建立可复用的数据标准和统一的质量评估体系
最后,我们还是要从业务关注我们的治理效果,以开头举例的包裹质量问题为例,通过数据质量治理的建设,以及围绕业务对象的协作规则沉淀,
不仅从数据端,能够完成对数据的异常监控、推送和分析,使得可以及时对数据质量异常问题进行修复,同时,从业务端,也针对测试的数据,通过规则进行了前置校验,在数据流入时就进行了限制和告警,也能让业务端小二也能进行异常情况的责任判定,通过标准质量数据修复动作进行数据修复。整体包裹参数的数据准确率提升至99%以上,通过数据质量治理也推动了业务流程在质量保障环节的优化,最终为我们的业务高价值服务进行了更好地保障。
小结
数据生产端的治理除了规范性、稳定性,还包含了数据质量。数据质量问题往往能直接产生业务问题,所以数据质量管理,需要如同产品质量管理一样,贯穿于数据生命周期的各个阶段。在持续监控的数据质量监控的基础上,数据质量平台加强事前预防校正问题、事中防控质量问题的能力,以及各类用户智能配置、智能阈值判定等能力,让数据质量在每个环节起作用,各个角色侧都能高效落地。