暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于Apache doris怎么构建数据中台(五)-数据质量

锋哥聊DORIS数仓 2021-09-26
741

上一次我们讲了,数据怎么进行快速的接入,这次我们讲在接入及后续的数据处理中质量怎么控制


 什么数据质量管理

    是指对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。数据质量管理是循环管理过程,其终极目标是通过可靠的数据提升数据在使用中的价值,并最终为企业赢得经济效益

影响数据质量的因素

  1. 技术因素

    主要表现为由于具体数据处理的各技术环节异常造成的数据质量问题。数据质量问题的产生环节主要包括数据创建、数据获取、数据传输、数据装载、数据使用、数据维护等方面的内容。

  2. 业务因素

    主要表现为由于系统作业流程和人工操作流程设置不当而造成的数据质量问题,主要来源于系统数据的创建流程、传递流程、装载流程、使用流程、维护流程和稽核流程等各环节。

  3. 管理因素

    主要表现为由于人员素质及管理机制方面的原因造成的数据质量问题。如人员培训、人员管理、培训或者奖惩措施不当导致的管理缺失或者管理缺陷。


本文结合我们的实际情况,围绕如何更加合理、高效的监控每类作业的运行状态,并将原本分散、孤岛式的监控日志信息通过规则引擎集中共享、关联、处理;洞察关键信息,形成事前预判、事中监控、事后跟踪的质量管理闭环流程;沉淀故障问题,搭建解决方案的知识库体系。

在数据质量监管平台的规划建设中,面临如下挑战:

  • 缺乏统一监控视图,离线和实时作业监控分散,影响性、关联性不足。(元数据系统)

  • 数据质量的衡量标准缺失,数据校验滞后,数据口径不统一(数据规则引擎及数据指标管理系统)

  • 问题故障处理流程未闭环,点式解决现象常在;缺乏统一归档,没有形成体系的知识库(数据地图,数据问答及数据稽核报告)

  • 数据模型质量监控缺失,模型重复,基础模型与应用模型的关联度不足,形成信息孤岛(元数据管理系统,数据指标及数据资产)

  • 数据存储资源增长过快,不能监控细粒度资源内容(数据资产)。

围绕完整性、准确性、一致性、及时性监控分析数据质量问题、提升企业数据质量。从数据接入、数据加工、数据导出、指标、数据应用实现全链路血缘跟踪、提前预判数据是否能够准时产出、了解任务失败后影响分析以及快速地修复。做到事前控制,事中处理,事后追踪。

事前(规则丰富多样):

  • 定义数据监控规则

  • 模板规则(字段规则,单表规则,多表规则)

  • 自定规则(SQL)

事中(数据流程监控):

  • 监控和控制数据生成过程

  • 稽核规则和ETL无缝对接

  • 定时检查

  • 数据清洗

事后(数据质量溯源):

  • 邮件钉钉等及时预警

  • 问题追踪处理、故障review

  • 稽核报告查询

  • 表打分及历史趋势查询


数据质量管理流程

数据质量关键流程步骤:

  • 质量需求:发现数据问题;信息提报、收集需求;检核规则的需求等。

  • 提炼规则:梳理规则指标、确定有效指标、检核指标准确度和衡量标准。

  • 规则库构建:检核对象配置、调度配置、规则配置、检核范围确认、检核标准确定等。

  • 执行检核:调度配置、调度执行、检核代码

  • 问题检核:检核问题展示、分类、质量分析、质量严重等级分类等。

  • 分析报告:数据质量报告、质量问题趋势分析,影响度分析,解决方案达成共识。

  • 落实处理:方案落实执行、跟踪管理、解决方案Review及标准化提炼。

  • 知识库体系形成:知识经验总结、标准方案沉淀、知识库体系建设。

  • 可以对指定好的规则进行单次执行试运行,以调试规则的正确性

数据质量检验标准:

  • 数据完整性:主要包括实体缺失、属性缺失、记录缺失和字段值缺失四个方面;

  • 数据准确性:一个数据值与设定为准确的值之间的一致程度,或与可接受程度之间的差异;

  • 数据合理性:主要包括数据格式、数据类型、数据取值范围和业务规则的合理有效;

  • 数据一致性:业务系统之间的数据差异校验,业务数据指标统一定义,数据逻辑加工结果一致性;

  • 数据及时性:主要是数仓ETL、应用数据展现的时效性,作业运行耗时及质量。

数据质量管理之规则引擎

要保证整个数仓中的数据质量,首先要确保数据源头的数据质量,在我们这边的源头数据主要是业务系统数据库,要保证的是从业务数据的数据接入数据质量,在这一阶段其实我们是在做接入的ETL,这里实现的是基于技术规则和业务规则进行对数据进行数据清洗,转换加工,对于不符合数据规则的数据进行过滤处理,统一记录以便于后续的手动处理和反馈给业务系统进行处理。

  • 根据业务实际情况,抽象定义各个业务的质量规则库,可以按照业务主题管理

  • 定义通用的数据处理规则模板,比如:日期格式,是否是数字,字符串长度是否超长等

  • 通过接入的业务元数据,对表和字段进行数据规则定义,通用规则可以从规则库进行选择

  • 通过统一的规则处理引擎SDK,嵌入到Flink 实时流处理引擎中对数据进行规则判断

  • 符合规则的数据入数仓,不符合规则的数据,推送到异常数据队列(异常数据,来知道来源,异常类型,时间,严重等级等)

  • 在异常数据UI界面展示异常数据,并可以对异常数据进行手动处理,重新推送到数仓(kafka-flink job处理)

  • 数据质量看板

  • 每日数据质量报告生成

数据质量管理流程

数据质量看板

提供统一的数据质量看板,快速了解每天数据质量问题及趋势。并能及时进行追踪处理

数据质量规则定义及管理

这里我们自研了一套规则引擎,通过阿波罗(Apollo)配置管理统一下发到ETL Job中去执行,对数据进行清洗加工,同时为了方便数据接入人员使用,降低使用门槛提供规则的可视化定义,试跑,发布,异常数据处理,规则模板管理等

规则支持实时发布,实时执行。可以将规则实时的应用到ETL 任务中

规则定义


对于规则的定义,我们还支持版本管理,支持按照版本进行回退

数据接入任务监控


针对数据接入的任务可以通过页面实时监控,监控的数据包括任务运行状态,实时接入的数据量,异常数据等信息,这块具体可以参考数据接入部分

异常数据监控

针对接入过程中,通过规则引擎处理,不符合技术和业务规则的数据会统一进行记录,提供查询和处理界面,以方便数据定位及问题排查

任务流程监控

针对数据加工过程中的数据质量监控,这是我们是深度继承了海豚调度系统(https://dolphinscheduler.apache.org)对数仓及其他计算平台(Flink)运行的实时及离线任务进行统一管理和监控,通过这里管理和监控任务,对任务运行失败的及时发现并通知相应人员进行处理,这里我们继承了钉钉。

对于数仓内部的数据质量,目前只是做了任务作业监控及预警,及时发现和定位问题,然后有数据开发及分析人员介入进行手动处理和解决问题。


数据质量稽查

数据质量检查调度:通过事先定义好的规则、调度时间、工作流程,自动完成数据的质量检查,极大的减少人力的投入和过程干预,提升效率,减少误差。

重大问题及时告警:对质量检查的结果提供多方式(界面、邮件、短信)告警,让用户及时了解到系统检查结果,避免重大问题的延误。

质量报告和评估结果:系统通过数理统计、数据分析等技术,根据事先定义好的模板,自动生成质量报告和绩效考评结果。

下一次开始分享数据指标管理


友情链接Apache doris官方公众号:




文章转载自锋哥聊DORIS数仓,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论