配置数据质量监控
本文为您介绍如何通过数据质量实现表数据监控。
前提条件
已通过数据集成将存储于RDS MySQL的用户基本信息(ods_user_info_d)同步至MaxCompute的ods_user_info_d表。
已通过数据集成将存储于OSS的网站访问日志(user_log.txt)同步至MaxCompute的ods_raw_log_d表。
已通过数据开发DataStudio将数据加工为用户画像基本数据。
背景信息
数据质量是支持多种异构数据源的质量校验、通知、管理服务的一站式平台。数据质量以数据集(DataSet)为监控对象,目前支持MaxCompute数据表监控。当离线MaxCompute数据发生变化时,数据质量会对数据进行校验,并阻塞生产链路,以避免问题数据污染扩散。同时,数据质量提供历史校验结果的管理,以便您对数据质量分析和定级。
本案例通过DataWorks数据质量功能及时感知用户画像分析案例源端数据的变更与ETL(Extract Transformation Load)过程中产生的脏数据。基于用户画像分析加工流程,汇总质量监控规则如下:
表名 | 需求明细 |
ods_raw_log_d | 对每日同步的原始日志数据进行表数据非0监控,避免后续无效加工,及时止损。 |
ods_user_info_d | 对每日同步的用户信息数据进行表行数非0校验(强规则)和业务主键唯一性校验(弱规则),避免后续无效加工,及时止损。 |
dwd_log_info_di | 不单独进行监控。 |
dws_user_info_all_di | 不单独进行监控。 |
ads_user_info_1d | 对每日用户数据进行表行数波动监测,以此观察每日UV的波动,以便及时了解应用动态。 |
进入规则配置页面
进入数据质量页面。
登录DataWorks控制台,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据质量。
进入表规则配置页面。
在数据质量左侧导航栏,单击
根据如下参数定位目标表。引擎/数据源:MaxCompute
引擎/数据库实例:您当前的生产项目(workshop2023)。
表:本案例需要分别为ods_raw_log_d、 ods_user_info_d、ads_user_info_1d表设置监控规则。
在搜索结果中找到目标表,单击操作列的配置监控规则,进入该表规则配置页面。具体配置参考下文操作。
配置质量监控规则
配置ods_raw_log_d质量监控规则
表ods_raw_log_d用于接收从OSS同步过来的用户网站访问记录,基于该表业务属性,我们为其配置表行数非0校验,并通过关联调度节点的方式,触发该表数据质量规则执行。
1、配置分区表达式
数据质量通过分区表达式来确定数据质量校验的表分区数据。
此步骤中,您需要监控目标表ods_raw_log_d表达式$[yyyymmdd-1]所匹配的分区数据是否符合预期,即在ods_raw_log_d表每次监控规则执行时,监控其业务时间对应分区的数据是否符合数据质量校验规则。步骤如下:

在表监控规则配置页面,单击分区表达式后的
,进入添加分区页面。
在添加分区对话框中,选择分区表达式为$[yyyymmdd-1]。
单击计算,查看计算结果是否符合预期,确认无误后单击确定。
本案例希望监控每日调度任务产出的表数据是否符合预期,由于当前表每日产出业务时间昨天的数据,所以此处计算结果显示调度时间为今天,计算结果为昨天时,符合预期。
2、配置监控规则
表ods_raw_log_d用于接收从OSS同步过来的网站访问记录,为用户画像分析场景源头表,所以为避免后续无效加工及质量问题,我们针对该表配置表行数大于0的强监控规则,来判断同步任务是否往该表该分区写入数据。
当监控到ods_raw_log_d表对应分区行数为0,将触发告警,ods_raw_log_d节点失败退出,并阻塞ods_raw_log_d节点的下游任务执行。

单击创建规则,进入创建规则页面。
单击添加监控规则,配置如下参数,并单击批量添加。
规则名称:自定义该监控规则名称,本案例为表行数是否大于0。
强弱:根据业务影响程度定义该规则是否阻塞下游任务执行。
本案例规则定义为强,即当监控到ods_raw_log_d表行数为0时,触发告警,并且阻塞下游任务执行。
更多配置项介绍请参见配置规则:按表(单表)。
3、试跑质量规则
试跑可校验规则配置的合理性,为确保质量规则的配置无误且符合预期,您可在规则创建完成后,试跑该规则。

单击试跑,进入试跑对话框。
在试跑对话框中,选择调度时间,单击试跑。
试跑完成后,单击试跑成功,点击查看试跑结果,查看试跑结果。
4、规则关联调度节点
数据质量通过关联调度的方式及时感知源端数据的变更与ETL(Extract Transformation Load)中产生的脏数据,即通过关联调度节点触发数据质量校验规则执行。
本案例中,当ods_raw_log_d节点将OSS数据同步至ods_raw_log_d表后即对该表对应分区数据进行表行数非0校验,若校验不通过,阻断下游任务执行,及时阻塞脏数据蔓延。

在数据质量规则配置页面,单击关联调度,进入关联调度配置页面。
在关联调度页面输入框中,输入ods_raw_log_d,单击添加,即通过ods_raw_log_d节点执行来触发ods_raw_log_d表的数据质量规则校验。
5、订阅规则校验结果
数据质量为您提供监控报警功能,通过订阅表数据质量校验规则,及时接收质量校验异常并处理,保障数据安全、稳定、按时产出。

订阅管理设置完成后,在左侧导航栏,单击我的订阅,查看和修改已订阅的任务。
配置ods_user_info_d质量监控规则
表ods_user_info_d用于接收从RDS MySQL同步过来的用户基本信息,基于该表业务属性,我们分别为其配置表行数非0和业务主键唯一性校验,并通过关联调度节点的方式,触发该表数据质量规则执行。以下仅为该表关键步骤说明。
1、配置分区表达式
此步骤中,找到目标表ods_user_info_d,并为其配置所需分区表达式$[yyyymmdd-1],即ods_user_info_d每次监控规则执行时,监控其业务时间对应分区的数据是否符合数据质量校验规则。

2、创建监控规则
本案例中,表ods_user_info_d用于接收从RDS同步过来的网站访问记录,为用户画像分析场景源头表,所以为避免后续无效加工及质量问题,我们针对该表配置表行数大于0的强监控规则,来判断同步是否往该表该分区写入数据。
规则生效时,当监控到ods_user_info_d表对应分区行数为0,将触发告警,ods_user_info_d节点失败退出,并且阻塞ods_user_info_d节点下游任务执行。参考下图创建规则,更多配置项介绍请参见配置规则:按表(单表)。
表的行数非0校验(强规则)
主键唯一性校验(弱规则)
3、规则关联调度节点
数据质量通过关联调度的方式及时感知源端数据的变更与ETL(Extract Transformation Load)中产生的脏数据,即通过关联调度节点触发数据质量校验规则执行。
本案例中,当ods_user_info_d节点将RDS数据同步至ods_user_info_d表后即对该表对应分区数据进行表行数非0校验,若校验不通过,阻断下游任务执行,及时阻塞脏数据蔓延。

4、其他
试跑规则及订阅规则校验结果操作与配置ods_raw_log_d质量监控规则一致。
配置ads_user_info_1d质量监控规则
表ads_user_info_1d为最终结果表。根据该表业务属性,我们进行表行数波动监测,以及针对业务主键唯一值校验,以此观察每日UV的波动,及时了解线上流量波动,并通过关联调度节点的方式,触发该表数据质量规则执行。以下仅为该表关键步骤说明。
1、配置分区表达式
此步骤中,找到目标表ads_user_info_1d,并为其配置所需分区表达式$[yyyymmdd-1],即ads_user_info_1d表每次监控规则执行时,监控其业务时间对应分区的数据是否符合数据质量校验规则,并通过关联调度节点的方式,触发该表数据质量规则执行。

2、创建监控规则
表ads_user_info_1d用于用户画像分析,为检测每日UV波动,我们对汇总数据进行表行数波动监测及主键进行唯一值校验,以此观察每日UV的波动,及时了解线上流量波动。
规则生效时,当监控到ads_user_info_1d表对应主键不唯一时触发报警,当表行数7天波动率大于10%小于50%时,触发橙色异常报警,当表行数7天波动率大于50%时触发红色异常报警。
如果设置强规则,红色异常报警并阻塞下游任务节点,橙色异常报警不阻塞。
如果设置弱规则,红色异常报警不阻塞下游任务节点,橙色异常不报警不阻塞。
配置表行数波动监控(弱规则)

3、规则关联调度节点
数据质量通过关联调度的方式及时感知源端数据的变更与ETL(Extract Transformation Load)中产生的脏数据,即通过关联调度节点触发数据质量校验规则执行。
本案例中,对加工后的ads_user_info_1d表对应分区数据进行校验,若校验不通过,阻断下游任务执行,及时阻塞脏数据蔓延。

4、其他
试跑规则及订阅规则校验结果操作与配置ods_raw_log_d质量监控规则一致。
后续操作
数据加工完成后,您可通过数据分析模块对数据进行可视化展示,详情请参见数据可视化展现。