数据质量风险监控主要针对数据的准确性、一致性和完整性。本教程使用DataWorks数据质量(DQC)功能,完成数仓各层次的数据质量监控。

前提条件

您需要首先完成教程《搭建互联网在线运营分析平台》,并保证您的DataWorks工作空间创建区域为华东2上海,详情参见业务场景与开发流程。您需要完成数据资产定级,本教程中定义为A2,详情请参见数据资产定级
说明 数据质量风险监控理论规范,请参见数据风险点监控

背景信息

数据质量监控和数据资产等级对应,您可以根据以下因素细化您的监控配置,数据质量使用详情请参见数据质量概述
  • 监控分类:数据量、主键、离散值、汇总值、业务规则和逻辑规则。
  • 监控粒度:字段级别、表级别。
  • 监控层次:ODS、CDM、ADS三层数据,其中ODS和DWD层主要偏重数据的完整和一致性。DWS和ADS层数据量较小、逻辑复杂,偏重数据的准确性。
以下为不同数据资产等级和数仓层次数据的数据质量监控建议,仅供参考。

操作步骤

  1. ODS层数据质量监控

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

    1. 进入数据质量。
      在您的数据开发页面,单击左上角图标,选择数据质量

    2. 进入ods_user_trace_log规则配置页面。
      规则配置页面找到代表外部数据源的表ods_user_trace_log,单击配置监控规则

    3. 添加分区。
      单击+,在分区表达式一栏输入 dt=$[yyyymmdd-1],对应表ods_user_trace_log的分区格式${bdp.system.bizdate}(获取到前一天的日期)。分区表达式的详细信息请参见参数配置,若表中无分区列,可以配置无分区。

    4. 单击创建规则


    5. 监控表行数大于0。

      单击模板规则 > 添加监控规则

      在配置规则时,选择规则模板为表行数、固定值,将规则的强度设置为,比较方式设置为期望值大于0。目的为保证ODS层分区内存在表数据。
      说明 只有强规则下红色报警会导致任务阻塞,阻塞会将任务的实例状态置为失败。


    6. 监控重复数据。
      单击添加监控规则
      配置规则时,选择规则字段为ts(bigint),规则模板为重复值个数、固定值,将规则的强度设置为,比较方式设置为期望值等于0ts(bigint)值为用户时间戳,目的是避免ODS层出现重复的数据。

    7. 监控空值数据。
      单击添加监控规则
      配置规则时,选择规则字段为uid(string),规则模板为空值个数、固定值,将规则的强度设置为,比较方式设置为期望值等于0uid(string)值为用户ID,目的是避免出现用户ID为空值的脏数据。

    8. 批量保存规则。
      完成上述操作后,单击批量保存

    9. 规则试跑。
      右上角有一个节点试跑的按钮,可以在规则配置完毕后,进行规则校验。单击试跑按钮,可立即触发数据质量的校验规则。

    10. 查看试跑结果。
      单击试跑后,您可以单击试跑成功!点击查看试跑结果

      在弹出的页面中,您可以查看表数据是否已符合您的规则。

      说明 可根据试跑结果,来确认此次任务产出的数据是否符合预期。建议每个表规则配置完毕后,都进行一次试跑操作,以验证表规则的适用性。
    11. 关联调度。
      在规则配置完毕,且试跑又都成功的情况下。您需要将表和其产出任务进行关联,这样每次表的产出任务运行完毕后,都会触发数据质量规则的校验,以保证数据的准确性。在表规则和调度任务绑定后,任务实例运行完毕,都会触发数据质量的检查。
      在表规则配置界面,单击关联调度,配置规则与任务的绑定关系。

      在弹框中输入您需要关联的任务节点名称,单击添加

      关联调度后,表名后的小图标会变成蓝色。

    12. 配置任务订阅。
      关联调度后,每次调度任务运行完毕,都会触发数据质量的校验。数据质量支持设置规则订阅,可以针对重要的表及其规则设置订阅,设置订阅后会根据数据质量的校验结果进行告警,从而实现对校验结果的跟踪。若数据质量校验结果异常,则会根据配置的告警策略进行通知。
      单击订阅管理,设置接收人以及订阅方式,目前支持邮件通知邮件和短信通知钉钉群机器人钉钉群机器人@ALL四种方式。

      订阅管理设置完毕后,可以在我的订阅中进行查看及修改,建议您订阅所有规则。

  2. CDM层数据质量监控
    CDM层数据质量监控配置方法与ODS层相同,区别在于监控规则的配置。
    1. 添加分区表达式。
      进入dw_user_trace_log表的规则配置页面,同样配置分区为dt=$[yyyymmdd-1],完成添加后您可以在界面中看到已添加的分区表达式。

    2. 监控表行数及空值数据。
      表行数和空值数据的监控规则配置与ODS层相同,完成配置后如下图所示。

    3. 监控表行数波动率。
      监控表行数波动率主要是为了避免出现突发的大量脏数据的污染。配置规则时,选择规则字段为表级规则(table),规则模板为表行数、上周期波动率,将规则的强度设置为,比较方式设置为绝对值橙色阈值为10,红色阈值为50,代表当表行数波动率到达50%时,会产生红色报警。

    4. 规则试跑并关联调度。
      方法同ODS层。

  3. ADS层数据质量监控
    ADS层数据质量监控配置方法与ODS层相同,区别在于监控规则的配置。
    1. 添加分区表达式。
      进入rpt_user_trace_log表的规则配置页面,同样配置分区为dt=$[yyyymmdd-1],完成添加后您可以在界面中看到已添加的分区表达式。

    2. 监控表行数、波动率及空值数据。
      监控表行数、波动率和空值数据的监控规则配置与CDM层相同。由于在数仓分层中,越靠近应用层数据越少、约束性越低,强弱选择为,完成配置后如下图所示。

    3. 监控表异常PV。
      您可以利用自定义规则功能监控ADS层的应用数据。配置规则时,选择规则字段为pv(bigint),采样方式为sum,将规则的强度设置为,比较方式设置为大于期望值100。这样,当PV和异常锐减到100时,您可以及时收到告警。完成配置后,单击批量保存

    4. 规则试跑并关联调度。
      方法同ODS层。