背景
日常的调度监控,可以查看实例任务的运行情况,对运行失败的实例进行告警,但是却无法对运行成功的实例进行数据质量的判断。而有些情况下,即使实例任务运行成功了,数据也仍然存在问题,这时候就需要对数据进行质量监控,配置数据质量规则进行判断和告警,以便及时发现数据质量的问题。
实际例子:监控某表每日分区的数据异常,可以明显看到24/25/27/28四日数据明显异常
方案
Dataworks数据质量
Dataworks提供了数据质量模块,帮助第一时间感知源端数据的变更与ETL(Extract Transformation Load)中产生的脏数据,自动拦截问题任务,有效阻断脏数据向下游蔓延。避免任务产出不符合预期的问题数据,影响正常使用和业务决策。同时也能显著降低问题处理的时间成本,避免任务重新运行带来的资源费用浪费。
步骤一、配置数据质量规则
1.进入数据质量模块,点击按表配置
2.搜索需要监控的表,点击监控配置
3.新建质量监控视角旁的+,新建监控视角
4.设置基本配置:质量监控名称、数据范围
5.添加运行设置,设置为在调度结束后自动运行
6.设置完毕后,点击保存
7.新建质量数据规则:点击新建规则
8.选择需要使用的系统规则模板,设置具体的规则信息:比较方式、监控域值、重要程度等,系统会自动添加至质量监控,点击确认(需要根据实际情况设置)
此时质量规则监控已配置完毕,并且已经启动,每次任务调度结束就会自动进行规则判定。
步骤二、验证数据质量规则
1.点击测试运行
2.设置需要测试等调度时间,点击测试运行,这里可以手动测试运行多个日期,例如测试08-22到08-30
3.测试完毕点击查看详情
4.点击历史运行记录,可以看到刚测试运行的所有日期数据
5.验证数据质量规则是否准确:查看该表分区可以看到,08-24、08-25、08-27、08-28为异常日期,通过此规则,此四天的数据都被判定为数据异常,其他则为正常,说明此规则准确。
步骤三、设置告警
1.点击规则列表,选择设置的数据质量规则,点击告警订阅
2.设置订阅方式和接受对象,点击保存,点击关闭
附录:
1、波动率计算公式:波动率 = (样本 - 基准值) / 基准值
-
样本:当天采集的具体的样本的值。例如对于SQL任务表行数,1天波动检测,则样本是当天分区的表行数。
-
基准值:历史样本的对比值
7天波动率:以七天前单日数据作为基准
7天平均值波动率:以近七天数据平均值作为基准
说明
如果规则是SQL任务
表行数,1天波动率
检测,则基准值是前一天分区产生的表行数。如果规则是SQL任务
表行数,7天平均值波动率
检测,则基准值是前7天的表行数据的平均值。
2、方差波动计算公式:(当次样本 - 历史N天平均值) / 标准差
说明 仅BIGINT和DOUBLE等数值类型可以使用方差。
参考文档:
数据质量
配置数据质量规则