上一次我们讲了,数据怎么进行快速的接入,这次我们讲在接入及后续的数据处理中质量怎么控制
如何更加合理、高效的监控每类作业的运行状态,并将原本分散、孤岛式的监控日志信息通过规则引擎集中共享、关联、处理;洞察关键信息,形成事前预判、事中监控、事后跟踪的质量管理闭环流程;沉淀故障问题,搭建解决方案的知识库体系。在数据质量监管平台的规划建设中,面临如下挑战:
- 缺乏统一监控视图,离线和实时作业监控分散,影响性、关联性不足。
- 数据质量的衡量标准缺失,数据校验滞后,数据口径不统一。
- 问题故障处理流程未闭环,点式解决现象常在;缺乏统一归档,没有形成体系的知识库。
- 数据模型质量监控缺失,模型重复,基础模型与应用模型的关联度不足,形成信息孤岛。
- 数据存储资源增长过快,不能监控细粒度资源内容。
围绕完整性、准确性、一致性、及时性监控分析数据质量问题、提升企业数据质量。 从数据接入、数据加工、数据导出、指标、数据应用实现全链路血缘跟踪、提前预判数据是否能够准时产出、了解任务失败后影响分析以及快速地修复。做到事前控制,事中处理,事后追踪。
事前(规则丰富多样):
- 定义数据监控规则
- 模板规则(字段规则,单表规则,多表规则)
- 自定规则(SQL),暂不实现
事中(数据流程监控):
- 监控和控制数据生成过程
- 稽核规则和ETL无缝对接
- 定时检查
- 数据清洗
事后(数据质量溯源):
- 邮件钉钉等及时预警
- 问题追踪处理、故障review
- 稽核报告查询
- 表打分及历史趋势查询
数据质量规则管理
数据质量关键流程步骤:
- 质量需求:发现数据问题;信息提报、收集需求;检核规则的需求等。
- 提炼规则:梳理规则指标、确定有效指标、检核指标准确度和衡量标准。
- 规则库构建:检核对象配置、调度配置、规则配置、检核范围确认、检核标准确定等。
- 执行检核:调度配置、调度执行、检核代码。
- 问题检核:检核问题展示、分类、质量分析、质量严重等级分类等。
- 分析报告:数据质量报告、质量问题趋势分析,影响度分析,解决方案达成共识。
- 落实处理:方案落实执行、跟踪管理、解决方案Review及标准化提炼。
- 知识库体系形成:知识经验总结、标准方案沉淀、知识库体系建设。
- 可以对指定好的规则进行单次执行试运行,以调试规则的正确性
数据质量检验标准:
- 完整性:主要包括实体缺失、属性缺失、记录缺失和字段值缺失四个方面;
- 准确性:一个数据值与设定为准确的值之间的一致程度,或与可接受程度之间的差异;
- 合理性:主要包括格式、类型、值域和业务规则的合理有效;
- 一致性:系统之间的数据差异和相互矛盾的一致性,业务指标统一定义,数据逻辑加工结果一致性;
- 及时性:数据仓库ETL、应用展现的及时和快速性,Jobs运行耗时、运行质量、依赖运行及时性。
第一阶段要完成的工作:
首先完成业务数据库的数据接入数据质量,从源头上保障接入数据的质量问题。在这一阶段其实我们是在做接入的ETL,基于技术规则和业务规则进行对数据进行数据清洗,转换加工,对于不符合数据规则的数据进行过滤处理,统一记录以便于后续的手动处理这也数据和反馈给业务系统进行处理。
- 根据业务实际情况,抽象定义各个业务的质量规则库,可以按照业务主题管理
- 定义通用的数据处理规则模板,比如:日期格式,是否是数字,字符串长度是否超长等
- 通过接入的业务元数据,对表和字段进行数据规则定义,通用规则可以从规则库进行选择
- 通过统一的规则处理引擎SDK,嵌入到Flink 实时流处理引擎中对数据进行规则判断
- 符合规则的数据入数仓,不符合规则的数据,推送到异常数据队列(异常数据,来知道来源,异常类型,时间,严重等级等)
- 在异常数据UI界面展示异常数据,并可以对异常数据进行手动处理,重新推送到数仓(kafka-flink job处理)
- 数据质量看板(参照原型)
- 每日数据质量报告生成
数据质量管理流程
数据质量看板
提供统一的数据质量看板,快速了解每天数据质量问题及趋势。并能及时进行追踪处理
数据质量规则定义及管理
提供规则的可视化定义,试跑,发布,异常数据处理,规则模板管理等
规则定义
数据接入任务监控
异常数据监控
任务流程监控
这里我们是集成海豚调度,所有的任务都是在这里定义和运行,做到统一监控
对于数仓内部的数据质量,目前只是做了任务作业监控及预警,及时发现和定位问题,然后有数据开发及分析人员介入进行手动处理和解决问题。