配置数据质量监控

本文为您介绍如何通过数据质量实现表数据监控。

前提条件

在进行本实验前,请确保已完成同步数据加工数据

  • 已通过数据集成将存储于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的波动,以便及时了解应用动态。

进入规则配置页面

  1. 进入数据质量页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据质量,在下拉框中选择对应工作空间后单击进入数据质量

  2. 进入表规则配置页面。

    在数据质量左侧导航栏,单击规则配置 > 按表配置,根据如下参数定位目标表。

    • 数据源:MaxCompute

    • 数据库:您当前的生产项目(workshop2024_01)。

    • 表:本案例需要分别为ods_raw_log_dods_user_info_dads_user_info_1d表设置监控规则。

  3. 在搜索结果中找到目标表,单击操作列的监控配置,进入该表的质量详情页面。具体配置参考下文操作。

配置质量监控规则

配置ods_raw_log_d质量监控规则

ods_raw_log_d用于接收从OSS同步过来的用户网站访问记录,基于该表的业务属性,我们为其配置表行数非0校验,并通过关联质量监控的方式触发该表数据质量规则校验。

1、配置质量监控

质量监控通过监控目标表的指定数据范围(分区)检验数据是否符合预期。

此步骤中,您需要配置质量监控的数据范围dt=$[yyyymmdd-1],质量监控运行时匹配此分区的数据,从而判断其是否符合预期。

即在ods_raw_log_d表的调度任务每次运行时触发质量监控,使用质量监控关联的质量规则校验对应数据范围内的数据,判断其是否符合数据质量校验规则。

具体步骤如下:

  1. 质量监控页签,单击新建质量监控

  2. 配置质量监控相关信息。

    image

    关键参数:

    参数

    配置示例

    数据范围

    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节点的下游任务执行。

具体步骤如下:

  1. 规则管理页签,选中质量监控视角下已创建的质量监控(本示例为raw_log_number_of_table_rows_not_0),然后单击创建规则,进入创建规则页面。

    image

  2. 系统模板中,找到表行数大于0规则,单击使用,然后修改重要程度强规则

    说明

    本案例规则定义为,即当监控到ods_raw_log_d表行数为0时,触发告警,并且阻塞下游任务执行。

    image

  3. 单击确定

    说明

    更多配置项介绍请参见配置规则:按表(单表)

3、测试运行质量监控

测试运行可以验证质量监控中的校验规则配置是否合理性,为确保质量规则的配置无误且符合预期,您可在规则创建完成后,测试运行质量监控。

image

  1. 单击测试运行,进入测试运行对话框。

  2. 测试运行对话框中,选择调度时间,单击测试运行

  3. 测试运行完成后,可根据界面指引,单击查看详情,查看测试结果。

    image

4、订阅质量监控

数据质量为您提供监控报警功能,通过订阅质量监控,及时接收质量校验异常并处理,保障数据安全、稳定、按时产出。

image

订阅管理设置完成后,在左侧导航栏,单击质量运维 > 质量监控,选中我的订阅,查看和修改已订阅的任务。

配置ods_user_info_d质量监控规则

ods_user_info_d用于接收从RDS MySQL同步过来的用户基本信息,基于该表的业务属性,我们为其配置表行数非0业务主键唯一性校验,并通过关联质量监控的方式触发该表数据质量规则校验。

1、配置质量监控

质量监控通过监控目标表的指定数据范围(分区)检验数据是否符合预期。

此步骤中,您需要配置质量监控的数据范围dt=$[yyyymmdd-1],质量监控运行时匹配此分区的数据,从而判断其是否符合预期。

即在ods_user_info_d表的调度任务每次运行时触发质量监控,使用质量监控关联的质量规则校验对应数据范围内的数据,判断其是否符合数据质量校验规则。

具体步骤如下:

  1. 质量监控页签,单击新建质量监控

  2. 配置质量监控相关信息。

    image

    关键参数:

    参数

    配置示例

    数据范围

    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节点下游任务执行。

具体步骤如下:

  1. 规则管理页签,选中质量监控视角下已创建的质量监控(本示例为user_info_quality_control),然后单击创建规则,进入创建规则页面。

    image

  2. 系统模板中,找到表行数大于0规则,单击使用,然后修改重要程度强规则

    说明

    本案例规则定义为,即当监控到ods_user_info_d表行数为0时,触发告警,并且阻塞下游任务执行。

    image

  3. 系统模板中,找到唯一值个数,固定值规则,单击使用,然后修改规则范围监控阈值重要程度如下图所示

    image

  4. 单击确定

    说明

    更多配置项介绍请参见配置规则:按表(单表)

3、其他

测试运行质量监控订阅质量监控操作与配置ods_raw_log_d质量监控规则一致。

配置ads_user_info_1d质量监控规则

ads_user_info_1d为最终结果表。根据该表业务属性,我们进行表行数波动监测,以及针对业务主键唯一值校验,以此观察每日UV的波动,及时了解线上流量波动,并通过关联质量监控的方式触发该表数据质量规则校验。

1、配置分区表达式

质量监控通过监控目标表的指定数据范围(分区)检验数据是否符合预期。

此步骤中,您需要配置质量监控的数据范围dt=$[yyyymmdd-1],质量监控运行时匹配此分区的数据,从而判断其是否符合预期。

即在ads_user_info_1d表的调度任务每次运行时触发质量监控,使用质量监控关联的质量规则校验对应数据范围内的数据,判断其是否符合数据质量校验规则。

具体步骤如下:

  1. 质量监控页签,单击新建质量监控

  2. 配置质量监控相关信息。

    image

    关键参数:

    参数

    配置示例

    数据范围

    dt=$[yyyymmdd-1]

    触发方式

    生产调度触发,节点选择同步数据中创建的ads_user_info_1d节点。

    选择质量规则

    暂不配置,在后文中配置。

    说明

    配置数据质量监控的更多信息,请参见配置规则:按表(单表)

2、创建监控规则

ads_user_info_1d用于用户画像分析,为检测每日UV波动,我们对汇总数据进行表行数波动监测及主键进行唯一值校验,以此观察每日UV的波动,及时了解线上流量波动。

规则生效时,当监控到ads_user_info_1d表对应主键不唯一时触发报警,当表行数7天波动率大于10%且小于50%时,触发橙色异常报警;当表行数7天波动率大于50%时触发红色异常报警。

说明

质量监控中配置了处置策略

  • 强规则·红色异常,处理策略为阻塞。表示当检测到数据质量问题后,将识别触发该表质量检测的生产调度节点,并将该节点设置为失败,下游节点将不执行,以此阻塞生产链路,以避免问题数据污染扩散。

  • 其他异常,处理策略为告警,当检测到数据质量问题后,将对该质量监控任务的告警订阅渠道发送告警信息。

因此,在配置质量规则时:

  • 如果设置强规则,红色异常报警会阻塞下游任务节点,其他异常报警不阻塞。

  • 如果设置弱规则,红色异常报警不阻塞下游任务节点,其他异常报警不阻塞。

具体步骤如下:

  1. 规则管理页签,选中质量监控视角下已创建的质量监控(本示例为ads_user_info_quality_control),然后单击创建规则,进入创建规则页面。

    image

  2. 系统模板中,找到表行数,7天波动率规则,单击使用,然后修改监控范围、和重要程度如下图所示

    image

  3. 系统模板中,找到表行数大于0规则,单击使用,然后修改重要程度强规则

    image

  4. 单击确定

    说明

    更多配置项介绍请参见配置规则:按表(单表)

3、其他

测试运行质量监控订阅质量监控操作与配置ods_raw_log_d质量监控规则一致。

后续操作

数据加工完成后,您可以通过数据分析模块对数据进行可视化展示,详情请参见数据可视化展现