背景
为支持数据仓库全局的数据质量管控,需做好风险点监控,确保数据的完整性、准确性、及时性、一致性。为此,拟定DQC配置方案&规则,评审通过后落地实施。
目标
- 核心任务dqc覆盖率100%,质量问题及时知晓
- 非核心任务运行情况知晓概貌
方案
基于数据质量中心提供的能力,实现时效性和数据质量监控。时效监控和etl任务绑定,数据质量监控和数仓中的物理表绑定。
出错监控
工作流中任务出错会阻断下游任务,因此任务出错需立即发出预警,此功能由平台提供,无需配置。
时效性监控
任务延迟监控,对超时未完成的任务,及时发出预警。
- 在调度平台(az/dophlin)上线任务后,在工作流级别配置调度表达式cron
- 在数据质量中心,新建时效性规则,绑定对应任务,设定最大运行时长
- 数据质量质量中心后台调度,每2分钟扫描时效性规则,并根据工作流cron表达式,当前时间计算任务运行时间是否超出“最大运行时长”,超出即报警
数据质量监控
不同于时效性监控,数据质量监控需要主动触发执行。即数据质量监控需要在etl任务执行后,check文件生成前,主动触发数据质量规则校验。规则校验未通过则报警,并且根据强弱规则,判定是否生成check文件和执行下游任务,弱规则生成check文件和继续执行下游任务,强规则不生成check文件和执行下游任务。
- 改造run_sql.sh脚本,在生成check文件前,触发规则校验(@郭奎
- 在数据质量中心,配置表/字段监控规则(@物理表owner)
- 切换azkaban任务中run_sql.sh脚本到run_sql_with_rule.sh
数据质量监控规则
规则 = 逻辑 + 期望值
逻辑用于检测统计,期望值用于预警。统计结果不符合期望值即规则校验不通过
规则类型 | 规则明细类型 | 规则 | 逻辑 | 比较方式(>、 | 期望值 |
字段规则 | 规范 | 主键唯一 | 主键重复的条数 | = | 0 |
非空校验 | 字段值为空的条数 | = | 0 | ||
枚举值校验 | 枚举值不在所给的枚举值列表中的条数 | = | 0 | ||
范围 | 最大值 | 所选字段最大值 | 自选 | 自填 | |
最小值 | 所选字段最小值 | 自选 | 自填 | ||
平均值 | 所选字段平均值 | 自选 | 自填 | ||
总和 | 所选字段总和 | 自选 | 自填 | ||
同比/环比 | 同比/环比 | 所选字段同比/环比 | 自选 | 自填 | |
表规则 | 数据行数 | 行数 | 数据行数 | 自选 | 自填 |
同比/环比 | 数据行数同比/环比 | 自选 | 自填 | ||
数据文件 | 文件大小 | 数据文件大小 | 自选 | 自填 | |
同比/环比 | 数据文件大小同比/环比 | 自选 | 自填 | ||
自定义规则 | 自定义 | 自定义规则 | 自定义sql(正则、业务校验) | 自选 | 自填 |
监控细则
Y-必须监控;
T-电话告警;
S-钉钉or飞书告警;
F强规则/W弱规则
空格-可选
风险点监控 | 风险点描述 | 规则 | 数据资产等级 | ||||
A1 | A2 | A3 | A4 | A5 | |||
出错监控 | 任务出错 | 平台提供 | Y&T | Y&T | Y&T | Y&S | Y&S |
延迟监控 | 任务延迟 | 时效性监控 | Y&T | Y&T | Y&T | Y&S | Y&S |
表监控 | 分区数据行数波动 | 同比/环比 | Y&T&F | Y&T&F | |||
自定义 | |||||||
字段监控 | 主键重复 | 主键唯一 | Y&T&F | Y&T&F | Y&T&F | Y&S&F | Y&S&F |
核心指标,重要维度为空 | 非空校验 | Y&T | Y&T | ||||
字段值不在所给的枚举值列表中 | 枚举值校验 | ||||||
核心指标波动 | 同比/环比 | ||||||
自定义 |
- 配置规则时,每张表分别配置强、弱两个规则,强规则下增加规则明细类型统一为“强”,若规则下增加规则明细类型统一为“弱”。
- 除上述必须配置的监控外:
- A1~A2任务:3+表/字段规则,1+自定义业务校验规则,其中2+强规则
- A3~A5任务:3+表/字段规则,其中2+强规则
规则统计
数据质量规则统计
节奏
- 时效性监控测试,2021-04-14 ~ 2021-04-16
- 数据质量监控测试,2021-04-19 ~ 2021-04-23
- 规则细化 @郭奎
- 核心任务时效性和数据质量监控配置覆盖率100% @物理表owner
- 非核心任务,时效规则、数据质量规则配置
期待
数据质量中心功能已经非常强大,非常丰富。但是规则配置略微繁琐,且需要二次跳转。期待平台做一些微调,提升易用性
- 出错监控
- 数据开发界面嵌入数据质量配置
- 核心任务,时效性监控默认配置,包括出错监控,延迟监控
- 规则配置语义更清晰
- 监控大盘