本文为您介绍如何监控数据质量、设置表的质量监控规则和监控提醒等。

前提条件

在进行本实验前,请确保已采集并加工数据。详情请参见 采集数据加工数据

背景信息

数据质量是支持多种异构数据源的质量校验、通知、管理服务的一站式平台。数据质量以数据集(DataSet)为监控对象,目前支持MaxCompute数据表和DataHub实时数据流的监控。当离线MaxCompute数据发生变化时,数据质量会对数据进行校验,并阻塞生产链路,以避免问题数据污染扩散。同时,数据质量提供历史校验结果的管理,以便您对数据质量分析和定级。

在流式数据场景下,数据质量能够基于Datahub数据通道进行断流监控,第一时间告警给订阅用户,并且支持橙色、红色告警等级以及告警频次设置,最大限度减少冗余报警。

数据质量开发流程

  1. 针对已有的表进行监控规则配置,配置完成后进行试跑,验证该规则是否适用。
    您可以根据试跑结果,确认此次任务产出的数据是否符合预期。建议每个表的监控规则配置完成后,都进行一次试跑操作,以验证表规则的适用性。
  2. 试跑成功后,将该规则和调度任务进行关联。
    在监控规则配置完成且试跑成功的情况下,您需要将表和其产出任务进行关联,以便每次表的产出任务运行完成后,都会触发数据质量规则的校验,以保证数据的准确性。
  3. 关联调度后,每次调度任务代码运行完成,都会触发数据质量的校验规则,以提升任务准确性。
    数据质量支持设置规则订阅,您可以针对重要的表及其规则设置订阅,设置订阅后会根据数据质量的校验结果进行告警,从而实现对校验结果的跟踪。如果数据质量校验结果异常,则会根据配置的告警策略进行通知。
说明
  • 每张表在完成规则的配置后,都需要进行试跑、关联调度和规则订阅等操作。
  • 数据质量会产生额外的计算费用,更多详情请参见概述

配置数据表的监控规则

如果已经完成数据采集和数据加工实验,请确认您已拥有数据表:ods_raw_log_dods_user_info_dods_log_info_ddw_user_info_all_drpt_user_info_d。确认后,进行以下操作:

  1. 进入表ods_raw_log_d监控规则页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
    4. 单击左上方的图标图标,选择全部产品 > 数据治理 > 数据质量
    5. 在左侧导航栏,单击监控规则,从数据源下拉列表中选择MaxCompute
    6. 引擎/数据库实例下拉框中选择待配置监控规则表所在的引擎实例,在过滤后的表列表中找到待配置监控规则的表,例如本教程的ods_raw_log_d表。
    7. 单击ods_raw_log_d表后的配置监控规则
  2. 配置表ods_raw_log_d的监控规则。
    1. 已添加的分区表达式模块,单击+,添加分区表达式。
      ods_raw_log_d表的数据来源为 oss_workshop_log,数据是从OSS中获取到的日志数据,其分区格式为 ${bdp.system.bizdate}(获取到前一天的日期)。
      对于此类每天产出的日志数据,您可以配置表的分区表达式。在 添加分区对话框中,选择 dt=$[yyyymmdd-1] ,单击 确认。分区表达式的详情请参见 调度参数
      说明 如果表中无分区列,可以配置 无分区,请根据真实的分区值配置对应的分区表达式。
      添加分区表达式
    2. 单击创建规则,默认在模板规则对话框。
    3. 单击添加监控规则,选择规则模板表行数,固定值,设置规则的强度为、比较方式为期望值大于0
      ods_raw_log_d的数据来源于OSS上传的日志文件,作为源头表,您需要尽早判断该表的分区中是否存在数据。如果该表没有数据,则需要阻止后续任务运行。如果来源表没有数据,后续任务运行无意义。
      说明 只有强规则下红色报警会导致任务阻塞,阻塞会将任务的实例状态置为失败。
      配置完成后,单击 批量保存
      说明 该配置主要是为了避免分区中没有数据,导致下游任务的数据来源为空的问题。
    4. 单击试跑,在试跑对话框中,选择调度时间,单击试跑
      试跑可以立即触发数据质量的校验规则,对配置完成的规则进行校检。试跑完成后,单击 试跑成功!点击查看试跑结果,即可跳转至试跑结果页面。
    5. 进行关联调度。
      数据质量支持和调度任务关联。在表规则和调度任务绑定后,任务实例运行完成都会触发数据质量的检查。您可以通过以下两种方式进行表规则和任务的关联调度:
      • 在运维中心页面关联表规则

        单击左上方的图标图标,选择全部产品 > 运维中心

        在左侧导航栏,单击 周期任务运维 > 周期任务。在DAG图中,右键单击 oss_数据同步任务,选择 配置质量监控配置质量监控

        配置质量监控对话框中,选择表名(ods_raw_log_d)和分区表达式dt=$[yyyymmdd-1]),单击添加

      • 在数据质量页面关联表规则

        在表的监控规则页面,单击关联调度,配置规则与任务的绑定关系。

        单击关联调度,可以与已提交到调度的节点任务进行绑定,系统会根据血缘关系给出推荐绑定的任务,也支持自定义绑定。

        关联调度对话框中,输入节点ID或节点名称,单击 添加。添加完成后,即可完成与调度节点任务的绑定。 添加
    6. 订阅任务。

      在表的监控规则页面,单击订阅管理,设置接收人以及订阅方式。数据质量支持邮件通知邮件和短信通知钉钉群机器人钉钉群机器人@ALL

      订阅管理设置完成后,在左侧导航栏,单击 我的订阅,查看和修改已订阅的任务。
      说明 建议订阅全部规则,避免校验结果无法及时通知。
  3. 配置ods_user_info_d表规则。
    ods_user_info_d是用户信息表,您在配置规则时,需要配置表的行数校验和主键唯一性校验,避免数据重复。
    1. 配置一个分区字段的监控规则,监控的时间表达式为dt=$[yyyymmdd-1]。配置成功后,在已添加的分区表达式中可以查看成功的分区配置记录。
    2. 分区表达式配置完成后,单击创建规则,配置数据质量的校验规则。
      分别添加表级规则和列规则:
      • 选择规则字段表级规则规则模板

        选择规则模板表行数,固定值强弱比较方式大于以及期望值0

      • 选择规则字段uid列规则

        添加列级规则,设置主键列(uid)为监控列。选择模板类型重复值个数,固定值强弱比较方式小于以及期望值1

    3. 配置完成后,单击批量保存
    说明 该配置主要是为了避免数据重复,导致下游数据被污染的情况。
  4. 配置ods_log_info_d表规则。
    ods_log_info_d数据主要来源于解析 ods_raw_log_d表中的数据。鉴于日志中的数据无法配置过多监控,只需要配置表数据不为空的校验规则即可。
    1. 配置表的分区表达式为dt=$[yyyymmdd-1]
      分区表达式
    2. 单击创建规则,在对话框中单击添加监控规则
      批量保存

      配置表数据不为空的校验规则,选择规则强度规则模板表级规则比较方式不等于期望值0

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

在设置表规则强度时,数据仓库中越底层的表,设置强规则的次数越多。这是因为ODS层的数据作为数仓中的原始数据,一定要保证其数据的准确性,避免因ODS层的数据质量太差而影响其它层的数据,及时止损。

数据质量还为您提供任务查询功能,以便查看已配置规则的校验结果,详情请参见查看监控任务