本文为您介绍如何监控数据质量、设置表的质量监控规则和监控提醒等。
前提条件
在进行本实验前,请确保已采集并加工数据。详情请参见
采集数据和
加工数据。
背景信息
数据质量是支持多种异构数据源的质量校验、通知、管理服务的一站式平台。数据质量以数据集(DataSet)为监控对象,目前支持MaxCompute数据表和DataHub实时数据流的监控。当离线MaxCompute数据发生变化时,数据质量会对数据进行校验,并阻塞生产链路,以避免问题数据污染扩散。同时,数据质量提供历史校验结果的管理,以便您对数据质量分析和定级。
在流式数据场景下,数据质量能够基于DataHub数据通道进行断流监控,第一时间告警给订阅用户,并且支持橙色、红色告警等级以及告警频次设置,最大限度减少冗余报警。
数据质量开发流程
- 针对已有的表进行监控规则配置,配置完成后进行试跑,验证该规则是否适用。
您可以根据试跑结果,确认此次任务产出的数据是否符合预期。建议每个表的监控规则配置完成后,都进行一次试跑操作,以验证表规则的适用性。
- 试跑成功后,将该规则和调度任务进行关联。
在监控规则配置完成且试跑成功的情况下,您需要将表和其产出任务进行关联,以便每次表的产出任务运行完成后,都会触发数据质量规则的校验,以保证数据的准确性。
- 关联调度后,每次调度任务代码运行完成,都会触发数据质量的校验规则,以提升任务准确性。
数据质量支持设置规则订阅,您可以针对重要的表及其规则设置订阅,设置订阅后会根据数据质量的校验结果进行告警,从而实现对校验结果的跟踪。如果数据质量校验结果异常,则会根据配置的告警策略进行通知。
说明
- 每张表在完成规则的配置后,都需要进行试跑、关联调度和规则订阅等操作。
- 数据质量会产生额外的计算费用,更多详情请参见概述。
配置数据表的监控规则
如果已经完成数据采集和数据加工实验,请确认您已拥有数据表:ods_raw_log_d、ods_user_info_d、ods_log_info_d、dw_user_info_all_d和rpt_user_info_d。确认后,进行以下操作:
- 进入表ods_raw_log_d的监控规则页面。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的进入数据开发。
- 单击左上方的
图标,选择。
- 在左侧导航栏,单击监控规则,从数据源下拉列表中选择MaxCompute。
- 在引擎/数据库实例下拉框中选择待配置监控规则表所在的引擎实例,在过滤后的表列表中找到待配置监控规则的表,例如本教程的ods_raw_log_d表。
- 单击ods_raw_log_d表后的配置监控规则。
- 配置表ods_raw_log_d的监控规则。
- 在已添加的分区表达式模块,单击+,添加分区表达式。
ods_raw_log_d表的数据来源为
oss_workshop_log,数据是从OSS中获取到的日志数据,其分区格式为
${bdp.system.bizdate}(获取到前一天的日期)。
对于此类每天产出的日志数据,您可以配置表的分区表达式。在
添加分区对话框中,选择
dt=$[yyyymmdd-1] ,单击
确认。分区表达式的详情请参见
基础属性:调度参数。
说明 如果表中无分区列,可以配置无分区,请根据真实的分区值配置对应的分区表达式。

- 单击创建规则,默认在模板规则对话框。
- 单击添加监控规则,选择规则模板为表行数,固定值,设置规则的强度为强、比较方式为期望值大于0。
表
ods_raw_log_d的数据来源于OSS上传的日志文件,作为源头表,您需要尽早判断该表的分区中是否存在数据。如果该表没有数据,则需要阻止后续任务运行。如果来源表没有数据,后续任务运行无意义。
说明 只有强规则下红色报警会导致任务阻塞,阻塞会将任务的实例状态置为失败。
配置完成后,单击
批量保存。
说明 该配置主要是为了避免分区中没有数据,导致下游任务的数据来源为空的问题。
- 单击试跑,在试跑对话框中,选择调度时间,单击试跑。
试跑可以立即触发数据质量的校验规则,对配置完成的规则进行校检。试跑完成后,单击试跑成功!点击查看试跑结果,即可跳转至试跑结果页面。
- 进行关联调度。
数据质量支持和调度任务关联。在表规则和调度任务绑定后,任务实例运行完成都会触发数据质量的检查。您可以通过以下两种方式进行表规则和任务的关联调度:
- 在运维中心页面关联表规则
单击左上方的
图标,选择。
在左侧导航栏,单击。在DAG图中,右键单击
oss_数据同步任务,选择
配置质量监控。

在配置质量监控对话框中,选择表名(ods_raw_log_d)和分区表达式dt=$[yyyymmdd-1]),单击添加。
- 在数据质量页面关联表规则
在表的监控规则页面,单击关联调度,配置规则与任务的绑定关系。
单击关联调度,可以与已提交到调度的节点任务进行绑定,系统会根据血缘关系给出推荐绑定的任务,也支持自定义绑定。
在
关联调度对话框中,输入节点ID或节点名称,单击
添加。添加完成后,即可完成与调度节点任务的绑定。

- 订阅任务。
在表的监控规则页面,单击订阅管理,设置接收人以及订阅方式。数据质量支持邮件通知、邮件和短信通知、钉钉群机器人和钉钉群机器人@ALL。
订阅管理设置完成后,在左侧导航栏,单击
我的订阅,查看和修改已订阅的任务。
说明 建议订阅全部规则,避免校验结果无法及时通知。
- 配置ods_user_info_d表规则。
ods_user_info_d是用户信息表,您在配置规则时,需要配置表的行数校验和主键唯一性校验,避免数据重复。
- 配置一个分区字段的监控规则,监控的时间表达式为dt=$[yyyymmdd-1]。配置成功后,在已添加的分区表达式中可以查看成功的分区配置记录。
- 分区表达式配置完成后,单击创建规则,配置数据质量的校验规则。
- 配置完成后,单击批量保存。
说明 该配置主要是为了避免数据重复,导致下游数据被污染的情况。
- 配置ods_log_info_d表规则。
ods_log_info_d数据主要来源于解析ods_raw_log_d表中的数据。鉴于日志中的数据无法配置过多监控,只需要配置表数据不为空的校验规则即可。
- 配置表的分区表达式为dt=$[yyyymmdd-1]。
- 单击创建规则,在对话框中单击添加监控规则。

配置表数据不为空的校验规则,选择规则强度为强、规则模板为表级规则、比较方式为不等于、期望值为0。
- 配置完成后,单击批量保存。
- 配置dw_user_info_all_d表规则。
dw_user_info_all_d表是针对ods_user_info_d和ods_log_info_d表的数据汇总。由于流程较为简单,ODS层已配置了表行数不为空的规则,所以该表无需进行数据质量监控规则的配置,以节省计算资源。
- 配置rpt_user_info_d表规则。
rpt_user_info_d表是数据汇总后的结果表。根据该表的数据,您可以进行表行数波动监测和针对主键进行唯一值校验。
- 单击已添加的分区表达式模块的+,配置表的分区表达式为dt=$[yyyymmdd-1]。
- 单击创建规则,在添加监控规则对话框中添加列级规则。设置主键列(uid)为监控列,选择规则模板为重复值个数,固定值、强弱为弱、比较方式为小于以及期望值为1。
- 继续添加监控规则和表级规则,选择规则模板为表行数,7天波动率、强弱为弱,设置橙色阈值为1%、红色阈值为50%(此处阈值范围根据业务逻辑进行设置)。

说明
- 橙色阈值和红色阈值必须大于0%。
- 此处监控表行数是为了查看每日UV的波动,以便及时了解应用动态。
- 配置完成后,单击批量保存。
在设置表规则强度时,数据仓库中越底层的表,设置强规则的次数越多。这是因为ODS层的数据作为数仓中的原始数据,一定要保证其数据的准确性,避免因ODS层的数据质量太差而影响其它层的数据,及时止损。
数据质量还为您提供任务查询功能,以便查看已配置规则的校验结果,详情请参见查看监控任务。