本文为您介绍如何通过数据质量实现表数据监控。
前提条件
已通过数据集成将存储于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 Transform 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
数据库:您当前的生产项目(workshop2024_01)。
表:本案例需要分别为
ods_raw_log_d
、ods_user_info_d
、ads_user_info_1d
表设置监控规则。
在搜索结果中找到目标表,单击操作列的监控配置,进入该表的质量详情页面。具体配置参考下文操作。
配置质量监控规则
配置ods_raw_log_d质量监控规则
表ods_raw_log_d
用于接收从OSS同步过来的用户网站访问记录,基于该表的业务属性,我们为其配置表行数非0校验,并通过关联质量监控的方式触发该表数据质量规则校验。
1、配置质量监控
质量监控通过监控目标表的指定数据范围(分区)检验数据是否符合预期。
此步骤中,您需要配置质量监控的数据范围为dt=$[yyyymmdd-1],质量监控运行时匹配此分区的数据,从而判断其是否符合预期。
即在ods_raw_log_d
表的调度任务每次运行时触发质量监控,使用质量监控关联的质量规则校验对应数据范围内的数据,判断其是否符合数据质量校验规则。
具体步骤如下:
在质量监控页签,单击新建质量监控。
配置质量监控相关信息。
关键参数:
参数
配置示例
数据范围
dt=$[yyyymmdd-1]
触发方式
生产调度触发,节点选择同步数据中创建的
ods_raw_log_d
节点。选择质量规则
暂不配置,在后文中配置。
说明配置数据质量监控的更多信息,请参见配置规则:按表(单表)。
本案例希望监控每日调度任务产出的表数据是否符合预期,由于当前表每日产出业务时间是昨天的数据,所以此处计算结果显示调度时间为今天,计算结果为昨天时,符合预期。
2、配置监控规则
表ods_raw_log_d
用于接收从OSS同步过来的网站访问记录,为用户画像分析场景的源头表,所以为了避免后续无效加工及质量问题,我们针对该表配置表行数大于0的强监控规则,来判断同步任务是否往该表的分区写入数据。
当监控到ods_raw_log_d
表对应分区行数为0,将触发告警,ods_raw_log_d节点失败退出,并阻塞ods_raw_log_d节点的下游任务执行。
具体步骤如下:
在规则管理页签,选中质量监控视角下已创建的质量监控(本示例为
raw_log_number_of_table_rows_not_0
),然后单击创建规则,进入创建规则页面。在系统模板中,找到表行数大于0规则,单击使用,然后修改重要程度为强规则。
说明本案例规则定义为强,即当监控到
ods_raw_log_d
表行数为0时,触发告警,并且阻塞下游任务执行。单击确定。
说明更多配置项介绍请参见配置规则:按表(单表)。
3、测试运行质量监控
测试运行可以验证质量监控中的校验规则配置是否合理性,为确保质量规则的配置无误且符合预期,您可在规则创建完成后,测试运行质量监控。
单击测试运行,进入测试运行对话框。
在测试运行对话框中,选择调度时间,单击测试运行。
测试运行完成后,可根据界面指引,单击查看详情,查看测试结果。
4、订阅质量监控
数据质量为您提供监控报警功能,通过订阅质量监控,及时接收质量校验异常并处理,保障数据安全、稳定、按时产出。
订阅管理设置完成后,在左侧导航栏,单击
,选中我的订阅,查看和修改已订阅的任务。配置ods_user_info_d质量监控规则
表ods_user_info_d
用于接收从RDS MySQL同步过来的用户基本信息,基于该表的业务属性,我们为其配置表行数非0和业务主键唯一性校验,并通过关联质量监控的方式触发该表数据质量规则校验。
1、配置质量监控
质量监控通过监控目标表的指定数据范围(分区)检验数据是否符合预期。
此步骤中,您需要配置质量监控的数据范围为dt=$[yyyymmdd-1],质量监控运行时匹配此分区的数据,从而判断其是否符合预期。
即在ods_user_info_d
表的调度任务每次运行时触发质量监控,使用质量监控关联的质量规则校验对应数据范围内的数据,判断其是否符合数据质量校验规则。
具体步骤如下:
在质量监控页签,单击新建质量监控。
配置质量监控相关信息。
关键参数:
参数
配置示例
数据范围
dt=$[yyyymmdd-1]
触发方式
生产调度触发,节点选择同步数据中创建的
ods_user_info_d
节点。选择质量规则
暂不配置,在后文中配置。
说明配置数据质量监控的更多信息,请参见配置规则:按表(单表)。
2、配置监控规则
表ods_user_info_d
用于接收从RDS MySQL同步过来的用户基本信息,为用户画像分析场景的源头表,所以为了避免后续无效加工及质量问题,我们针对该表配置表行数大于0的强监控规则,来判断同步是否往该表该分区写入数据。
规则生效时,当监控到ods_user_info_d
表对应分区行数为0,将触发告警,ods_user_info_d节点失败退出,并且阻塞ods_user_info_d节点下游任务执行。
具体步骤如下:
在规则管理页签,选中质量监控视角下已创建的质量监控(本示例为
user_info_quality_control
),然后单击创建规则,进入创建规则页面。在系统模板中,找到表行数大于0规则,单击使用,然后修改重要程度为强规则。
说明本案例规则定义为强,即当监控到
ods_user_info_d
表行数为0时,触发告警,并且阻塞下游任务执行。在系统模板中,找到唯一值个数,固定值规则,单击使用,然后修改规则范围、监控阈值和重要程度如下图所示。
单击确定。
说明更多配置项介绍请参见配置规则:按表(单表)。
3、其他
测试运行质量监控及订阅质量监控操作与配置ods_raw_log_d质量监控规则一致。
配置ads_user_info_1d质量监控规则
表ads_user_info_1d
为最终结果表。根据该表业务属性,我们进行表行数波动监测,以及针对业务主键唯一值校验,以此观察每日UV的波动,及时了解线上流量波动,并通过关联质量监控的方式触发该表数据质量规则校验。
1、配置分区表达式
质量监控通过监控目标表的指定数据范围(分区)检验数据是否符合预期。
此步骤中,您需要配置质量监控的数据范围为dt=$[yyyymmdd-1],质量监控运行时匹配此分区的数据,从而判断其是否符合预期。
即在ads_user_info_1d
表的调度任务每次运行时触发质量监控,使用质量监控关联的质量规则校验对应数据范围内的数据,判断其是否符合数据质量校验规则。
具体步骤如下:
在质量监控页签,单击新建质量监控。
配置质量监控相关信息。
关键参数:
参数
配置示例
数据范围
dt=$[yyyymmdd-1]
触发方式
生产调度触发,节点选择同步数据中创建的
ads_user_info_1d
节点。选择质量规则
暂不配置,在后文中配置。
说明配置数据质量监控的更多信息,请参见配置规则:按表(单表)。
2、创建监控规则
表ads_user_info_1d
用于用户画像分析,为检测每日UV波动,我们对汇总数据进行表行数波动监测及主键进行唯一值校验,以此观察每日UV的波动,及时了解线上流量波动。
规则生效时,当监控到ads_user_info_1d
表对应主键不唯一时触发报警,当表行数7天波动率大于10%且小于50%时,触发橙色异常报警;当表行数7天波动率大于50%时触发红色异常报警。
质量监控中配置了处置策略:
强规则·红色异常
,处理策略为阻塞。表示当检测到数据质量问题后,将识别触发该表质量检测的生产调度节点,并将该节点设置为失败,下游节点将不执行,以此阻塞生产链路,以避免问题数据污染扩散。其他异常,处理策略为告警,当检测到数据质量问题后,将对该质量监控任务的告警订阅渠道发送告警信息。
因此,在配置质量规则时:
如果设置强规则,红色异常报警会阻塞下游任务节点,其他异常报警不阻塞。
如果设置弱规则,红色异常报警不阻塞下游任务节点,其他异常报警不阻塞。
具体步骤如下:
在规则管理页签,选中质量监控视角下已创建的质量监控(本示例为
ads_user_info_quality_control
),然后单击创建规则,进入创建规则页面。在系统模板中,找到表行数,7天波动率规则,单击使用,然后修改监控范围、和重要程度如下图所示。
在系统模板中,找到表行数大于0规则,单击使用,然后修改重要程度为强规则。
单击确定。
说明更多配置项介绍请参见配置规则:按表(单表)。
3、其他
测试运行质量监控及订阅质量监控操作与配置ods_raw_log_d质量监控规则一致。
后续操作
数据加工完成后,您可以通过数据分析模块对数据进行可视化展示,详情请参见数据可视化展现。