本文主要阐述在使用数据工场的过程中如何监控数据质量,设置表的质量监控规则,监控提醒等。

前置条件

在进行本实验前,请先完成实验数据采集:日志数据上传数据加工:用户画像

数据质量

数据质量(DQC),是支持多种异构数据源的质量校验、通知、管理服务的一站式平台。数据质量以数据集(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
    数据质量中可以看到该项目下的所有表信息,为ods_raw_log_d表进行数据质量的监控规则配置。
    数据质量
    选择ods_raw_log_d表,单击配置监控规则,将会进入如下页面。
    配置监控规则

    ods_raw_log_d表的数据来源为oss_workshop_log,数据是从OSS中获取到的日志数据,其分区格式为${bdp.system.bizdate}(获取到前一天的日期)。

    对于此类每天产出的日志数据,您可以配置表的分区表达式。分区表达式有如下几种,您可以选择 dt=$[yyyymmdd-1] 。表达式的详细解读参见参数配置
    参数配置
    说明

    如果表中无分区列,可以配置无分区,请根据真实的分区值配置对应的分区表达式。

    单击确认后,选择创建规则
    创建规则
    单击添加监控规则,会出现一个提示窗,用于配置规则。
    添加监控规则

    这张表里的数据来源于OSS上传的日志文件,作为源头表,您需要尽早判断此表分区中是否有数据。如果这张表中没有数据,则需要阻止后续任务运行。如果来源表没有数据,后续任务运行无意义。

    说明 只有强规则下红色报警会导致任务阻塞,阻塞会将任务的实例状态置为失败。
    在配置规则时,选择模板类型为表行数,将规则的强度设置为,比较方式设置为期望值大于0,设置完毕后单击批量保存按钮即可。
    批量保存
    说明

    此配置主要是为了避免分区中没有数据,导致下游任务的数据来源为空的问题。

    规则试跑

    右上角有一个节点试跑的按钮,可以在规则配置完毕后,进行规则校验,试跑按钮可立即触发数据质量的校验规则。
    规则试跑
    单击试跑按钮后,会提示一个弹窗,确认试跑日期。单击试跑后,下方会有一个提示信息,单击提示信息,可跳转至试跑结果。
    试跑
    查看
    说明

    可根据试跑结果,来确认此次任务产出的数据是否符合预期。建议每个表规则配置完毕后,都进行一次试跑操作,以验证表规则的适用性。

    在规则配置完毕,且试跑又都成功的情况下。您需要将表和其产出任务进行关联,这样每次表的产出任务运行完毕后,都会触发数据质量规则的校验,以保证数据的准确性。

    关联调度

    数据质量支持和调度任务关联。在表规则和调度任务绑定后,任务实例运行完毕,都会触发数据质量的检查。表规则和任务关联调度有两种方式:

    • 在运维中心的任务中进行表规则关联。
    • 在数据质量的规则配置界面进行关联。
    • 在运维中心页面关联表规则
      运维中心 > 周期任务中,找到oss_数据同步任务,右键单击选择配置质量监控
      配置质量监控
      在弹窗中输入监控的表名,以及分区表达式。此处输入的表名为ods_raw_log_d。分区表达式参照上文规则配置的内容,即为dt=$[yyyymmdd-1]
      规则配置
      单击配置,即可跳转至规则配置界面。
      规则配置
    • 在数据质量页面关联表规则
      在表规则配置界面,单击关联调度,配置规则与任务的绑定关系。
      关联调度

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

      选中搜索结果后,单击添加,添加完毕后即可完成与调度节点任务的绑定。
      添加
      关联调度后,表名后面的小图标会变成蓝色。
      关联调度

    配置任务订阅

    关联调度后,每次调度任务运行完毕,都会触发数据质量的校验。数据质量支持设置规则订阅,可以针对重要的表及其规则设置订阅,设置订阅后会根据数据质量的校验结果进行告警,从而实现对校验结果的跟踪。若数据质量校验结果异常,则会根据配置的告警策略进行通知。

    单击订阅管理,设置接收人以及订阅方式,目前支持邮件通知邮件和短信通知
    订阅管理
    订阅管理
    订阅方式
    订阅管理设置完毕后,可以在我的订阅中进行查看及修改。
    查看

    建议将全部规则订阅,避免校验结果无法及时通知。

  • ods_user_info_d

    ods_user_info_d是用户信息表。您在配置规则的时候,需要配置表的行数校验和主键唯一性校验,避免数据重复。

    同上,您需要先配置一个分区字段的监控规则,监控的时间表达式为:dt=$[yyyymmdd-1]。配置成功后,在已添加的分区表达式中可以看到成功的分区配置记录。
    分区配置
    分区表达式配置完毕后,单击右侧的创建规则,进行数据质量的校验规则配置。添加表行数的监控规则,规则强度设置为,比较方式设置为期望值大于0。
    创建规则
    添加列级规则,设置主键列(uid)为监控列。模板类型为:字段重复值个数校验,规则设置为,比较方式设置为字段重复值个数小于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
    创建规则
    继续添加监控规则和表级规则,模板类型为:SQL任务表行数,7天波动检测;规则强度设置为弱,橙色阈值设置成0%,红色阈值设置成50%(此处阈值范围根据业务逻辑进行设置),配置完毕后,单击批量保存即可。
    模板类型
    说明 此处您监控表行数是为了查看每日UV的波动,以便及时了解应用动态。

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

    数据质量还提供任务查询功能,以便查看已配置规则的校验结果。