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

前提条件

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

背景信息

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

操作步骤

  1. ODS层数据质量监控。

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

    1. 进入数据质量页面。
      数据开发页面,单击左上角图标,选择数据质量
    2. 进入ods_user_trace_log监控规则页面。
      单击左侧导航栏上的监控规则,在监控规则页面找到代表外部数据源的ODS层表ods_user_trace_log,单击其后的配置监控规则22
    3. 添加分区。
      1. 单击+,选择分区表达式 dt=$[yyyymmdd-1],对应表ods_user_trace_log的分区格式为${bdp.system.bizdate}(即获取到前一天的日期)。分区表达式的详细信息请参见基础属性:调度参数。如果表中无分区列,可以配置无分区。
      2. 单击计算,验证计算结果是否正确。
      3. 单击确认,完成分区的添加。
    4. 创建规则确保ODS层表分区内存在数据。
      1. 单击创建规则11
      2. 单击模板规则 > 添加监控规则
      3. 输入配置参数。test
        参数 描述
        规则名称 请输入规则名称。您可以自定义。
        强弱 设置为强规则。强弱规则说明如下:
        • 如果设置强规则,红色异常报警并阻塞下游任务节点,橙色异常报警不阻塞。
        • 如果设置弱规则,红色异常报警不阻塞下游任务节点,橙色异常不报警不阻塞。
        规则来源 选择内置模板
        规则字段 选择表级规则
        规则模板 选择表行数,固定值
        比较方式 选择大于
        期望值 设置为0。
    5. 监控重复数据。
      1. 单击添加监控规则
      2. 输入配置参数。11
        参数 描述
        规则名称 请输入规则名称。您可以自定义。
        强弱 设置为强规则。强弱规则说明如下:
        • 如果设置强规则,红色异常报警并阻塞下游任务节点,橙色异常报警不阻塞。
        • 如果设置弱规则,红色异常报警不阻塞下游任务节点,橙色异常不报警不阻塞。
        规则来源 选择内置模板
        规则字段 选择ts(bigint)ts(bigint)值为用户时间戳,目的是避免ODS层出现重复的数据。
        规则模板 选择重复值个数、固定值
        比较方式 选择等于
        期望值 设置为0。
    6. 监控空值数据。
      1. 单击添加监控规则
      2. 输入配置参数。11
        参数 描述
        规则名称 请输入规则名称。您可以自定义。
        强弱 设置为强规则。强弱规则说明如下:
        • 如果设置强规则,红色异常报警并阻塞下游任务节点,橙色异常报警不阻塞。
        • 如果设置弱规则,红色异常报警不阻塞下游任务节点,橙色异常不报警不阻塞。
        规则来源 选择内置模板
        规则字段 选择uid(string)uid(string)值为用户ID,目的是避免出现用户ID为空值的脏数据。
        规则模板 选择空值个数、固定值
        比较方式 选择等于
        期望值 设置为0。
    7. 批量保存规则。完成上述操作后,单击批量保存
    8. 规则试跑。
      单击试跑,进行数据质量的校验规则。
    9. 查看试跑结果。
      试跑完成后,单击试跑成功!点击查看试跑结果查看试跑结果。在弹出的页面中,您可以查看表数据是否已符合您的规则。根据试跑结果,可以确认此次任务产出的数据是否符合预期。建议每个表规则配置完毕后,都进行一次试跑操作,以验证表规则的适用性。
    10. 关联调度。
      在规则配置完毕,且试跑成功的情况下,您需要将表和其产出任务进行关联,这样每次表的产出任务运行完毕后,都会触发数据质量规则的校验,以保证数据的准确性。
      1. 在表监控规则页面,单击关联调度,配置规则与任务的绑定关系。
      2. 关联调度弹框中输入您需要关联的任务节点名称,单击添加
      3. 单击关闭退出关联调度页面。如下图所示,关联调度配置成功。11
    11. 配置任务订阅。
      关联调度后,每次调度任务运行完毕,都会触发数据质量的校验。数据质量支持设置规则订阅,可以针对重要的表及其规则设置订阅,设置订阅后会根据数据质量的校验结果进行告警,从而实现对校验结果的跟踪。
      单击订阅管理,设置接收人以及订阅方式。目前支持邮件通知邮件和短信通知钉钉群机器人钉钉群机器人@ALL四种方式。11

      订阅管理设置完毕后,单击左侧导航栏上的我的订阅进行查看及修改,建议您订阅所有规则。

  2. CDM层数据质量监控。
    CDM层数据质量监控配置方法与ODS层相同,区别在于监控规则不同。
    1. 添加分区表达式。
      进入dw_user_trace_log表的规则配置页面,与ODS层一样配置分区为dt=$[yyyymmdd-1],确保分区内存在表数据。
    2. 监控表行数及空值数据。表行数和空值数据的监控规则配置与ODS层相同。
    3. 监控表行数波动率。
      11
      参数 描述
      规则名称 请输入规则名称。您可以自定义。
      强弱 设置为强规则。强弱规则说明如下:
      • 如果设置强规则,红色异常报警并阻塞下游任务节点,橙色异常报警不阻塞。
      • 如果设置弱规则,红色异常报警不阻塞下游任务节点,橙色异常不报警不阻塞。
      规则来源 选择内置模板
      规则字段 选择表级规则(table)
      规则模板 选择表行数、上周期波动率
      比较方式 选择绝对值
      波动值比较 橙色阈值为10,红色阈值为50,代表当表行数波动率到达50%时,会产生红色报警。
    4. 规则试跑并关联调度。方法和ODS层一致。
  3. ADS层数据质量监控。
    ADS层数据质量监控配置方法与ODS层相同,区别在于监控规则的不同。
    1. 添加分区表达式。
      进入rpt_user_trace_log表的规则配置页面,同样配置分区为dt=$[yyyymmdd-1]
    2. 监控表行数、波动率及空值数据。
      监控表行数、波动率和空值数据的监控规则配置与CDM层相同。由于在数仓分层中,越靠近应用层数据越少、约束性越低,强弱选择为
    3. 监控表异常PV。
      您可以利用自定义规则功能监控ADS层的应用数据。
      1. 单击自定义规则 > 添加监控规则
      2. 配置自定义规则参数。1
        参数 描述
        规则名称 请输入规则名称。您可以自定义。
        强弱 设置为弱规则。强弱规则说明如下:
        • 如果设置强规则,红色异常报警并阻塞下游任务节点,橙色异常报警不阻塞。
        • 如果设置弱规则,红色异常报警不阻塞下游任务节点,橙色异常不报警不阻塞。
        规则字段 选择规则字段为pv(bigint)
        采样方式 选择sum
        校验类型 选择数值型
        校验方式 选择与固定值比较
        比较方式 选择大于
        期望值 设置为100。当PV和异常锐减到100时,您可以及时收到告警。
      3. 完成配置后,单击批量保存
    4. 规则试跑并关联调度。方法与ODS层一致。