为了提升数据表质量监控的便捷性,Dataphin支持创建校验数据表的质量规则。数据表参与质量规则校验时,如果触发了质量弱监控规则,系统会给您发送告警消息,便于您及时发现并处理异常;如果触发了质量强监控规则,系统会自动中断该表所在的任务,避免脏数据流入下游,同时系统会给您发送告警消息,便于您及时发现并处理异常。本文为您介绍如何配置数据表的质量规则。

前提条件

已发布数据表至生产环境。如何发布数据表至生产环境,请参见管理发布任务

操作流程

功能 描述
步骤一:选择数据表 选择需要创建质量规则的数据表。
步骤二:设置告警 添加告警信息接收人。如果触发了质量监控规则,系统会给您发送告警消息,便于您及时发现并处理异常。
步骤三:创建分区表达式 定义数据表质量检验的分区数据,避免全表扫描。
步骤四:配置质量规则 配置分区表达式下的数据表的质量校验规则。
步骤五:试跑规则 测试质量规则运行结果是否正确。

步骤一:选择数据表

  1. 登录Dataphin控制台
  2. 在Dataphin控制台页面,选择工作区地域后,单击进入Dataphin>>
  3. 在Dataphin首页,单击顶部菜单栏中的资产
  4. 按照下图操作指引,进入创建质量规则对话框。
    gagaga
  5. 创建质量规则对话框中,选择数据表后,单击开始配置
    您也可以通过选择数据板块、所属项目和表类型筛选数据表。gagaga

步骤二:设置告警

  1. 单击告警设置后的fagag图标。
    gagaga
  2. 告警设置对话框,选择告警接收人告警方式后,单击确定
    gagag

步骤三:创建分区表达式

分区表达式用于限定一组质量规则的作用范围。数据表可以有多个分区表达式,每个分区表达式下可以配置多个质量规则,如下图所示。gaga
  1. 单击创建分区表达式
    gagaga
  2. 创建分区表达式对话框,选择分区表达式类型或自定义分区表达式后,单击确定
    gagag系统支持的分区及表达式说明如下。
    分区 表达式
    当天 ds=lastndate('${yyyyMMdd}',0, 'yyyyMMdd')
    最近一天 ds='${yyyyMMdd}'
    本周第一天 ds=tdBeginDate('${yyyyMMdd}', 'w', 'yyyyMMdd')
    本周最后一天 ds=customEndDate('${yyyyMMdd}', 'w', '1', 0, 'yyyyMMdd')
    本月第一天 ds=tdBeginDate('${yyyyMMdd}', 'm', 'yyyyMMdd')
    本月最后一天 ds=customEndDate('${yyyyMMdd}', 'm', '01', 0, 'yyyyMMdd')
    本季度第一天 ds=tdBeginDate('${yyyyMMdd}', 'q', 'yyyyMMdd')
    本季度最后一天 ds=customEndDate('${yyyyMMdd}', 'q', '0101', 0, 'yyyyMMdd')
    本年第一天 ds=tdBeginDate('${yyyyMMdd}', 'y', 'yyyyMMdd')
    本年最后一天 ds=customEndDate('${yyyyMMdd}', 'y', '0101', 0, 'yyyyMMdd')
    上月第一天 ds=cBeginDate('${yyyyMMdd}', 'm', 'yyyyMMdd')
    上月最后一天 ds=cEndDate('${yyyyMMdd}', 'm', 'yyyyMMdd')
    自定义 自定义分区表达式。

步骤四:配置质量规则

  1. 单击创建质量规则
    gagaga
  2. 创建规则对话框,配置参数后单击确定
    创建方式包括普通创建自定义SQL
    • 创建方式选择为普通创建
      • 规则类型选择为质量模板规则gagaga
        参数 描述
        规则类型 选择为质量模板规则
        规则名称 定义质量规则的名称。
        规则强度 选择质量规则的强弱:
        • 如果您选择了强规则,则质量规则校验的结果为异常时报警并阻塞下游任务节点。
        • 如果您选择了弱规则,则质量规则校验的结果为异常时报警但不阻塞下游任务节点。
        校验对象 选择需要校验的字段。
        模板规则 请参见表 1
        趋势
        • 如果校验类型为波动型,则趋势包括绝对值向上向下
        • 如果校验类型为对比型,则趋势固定值
        表 1. 模板类型说明
        划分 模板规则/类型 描述
        表粒度 与上一周期相比表大小的波动 基准值为昨天的全表大小(Byte),比较当天的表大小,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        表/分区大小1天波动检测 基准值为昨天分区下的表大小(Byte),比较当天采集的表大小,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        表/分区大小7天波动检测 基准值为7天前产生的表大小(Byte),比较当天采集的表大小,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        表/分区行数1,7,30,本月1号波动检测 与1天、1周、1个月前、本月1号采集的表行数进行比较,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        表/分区行数1,7,30波动检测 与1天、1周、1个月前采集的表行数进行比较,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        表/分区行数1天波动检测 基准值为昨天产生的分区的表行数,比较当天采集的表行数,对比波动率。
        表/分区行数7天波动检测 基准值为1周前产生的分区的表行数,比较当天采集的表行数,对比波动率。
        表/分区行数30天波动检测 基准值为1个月前产生的分区的表行数,比较当天采集的表行数,对比波动率。
        表行数,上一周期比较 基准值为上一周期产生的分区的表行数,比较当天采集的表行数,对比差值。
        表/分区行数大小7天平均波动检测 基准值是最近7天的表行数的平均值,对比最近7天平均值的波动率。
        表/分区行数30天对比 基准值为30天前产生的分区的表行数,比较当天采集的表行数,对比差值。
        表分区数 表分区的数量。固定值,可设置大于、小于、等于目标阈值。
        表分区数波动检测 基准值为昨天产生的分区数量,比较当天采集的表分区数,对比波动率。
        字段粒度 字段唯一值个数期望校验 去重后的字段COUNT数与设定的期望数字进行比较,即固定值校检。
        字段唯一值1,7,30天波动检测 去重后的字段COUNT数与1天、1周、1个月前进行比较,即固定值校检。
        字段平均值1,7,30天波动检测 取该字段的平均值,同1天、7天、一个月的周期进行比较,计算波动率。再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        字段最大值1天波动检测 字段最大值,对比1天前的波动率。取该字段的最大值,与前1天进行比较,计算出波动率后,再与阈值进行比较。
        字段最大值1,7,30天波动检测 取该字段的最大值,同1天、7天、一个月的周期进行比较,计算波动率后,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        字段最小值1天波动检测 字段最小值,相比1天前的波动率。

        取该字段的最小值,与前1天进行比较,计算出波动率后,再与阈值进行比较。

        字段最小值1,7,30天波动检测 取该字段的最小值,同1天、7天、一个月的周期进行比较,计算波动率后,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        字段汇总值1天波动检测 字段汇总值,相比1天前的波动率。 取该字段的SUM值,与前1天进行比较,计算出波动率后,再与阈值进行比较。
        字段汇总值1,7,30天波动检测 取该字段的SUM值,同1天、7天、一个月的周期进行比较,计算波动率后,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。
        字段空值个数 取该字段的空值数与设定的固定值进行比较。
        空值率(字段空值个数/行数) 空值的个数与行总数的比率与一个固定值进行比较。
        字段重复个数 重复值个数与固定值进行比较(总行数减去重后的个数,即字段重复值的个数)。
        重复率(字段重复个数/总行数) 重复值个数与总行数的比率与一个固定值进行比较。
        离散值监控(分组个数) 字段分组后的离散点总数。
      • 规则类型选择为自定义规则gagag
        参数 描述
        规则类型 选择为自定义规则
        规则名称 定义质量规则的名称。
        规则强度 选择质量规则的强弱:
        • 如果您选择了强规则,则质量规则校验的结果为异常时报警并阻塞下游任务节点。
        • 如果您选择了弱规则,则质量规则校验的结果为异常时报警但不阻塞下游任务节点。
        校验对象 选择需要校验的字段。
        统计方式 统计方式包括字段平均值字段最大值字段最小值字段汇总值
        过滤条件 配置过滤条件。
        检测类型 检测类型包括数值型波动型
        趋势
        • 如果校验类型为波动型,则趋势包括1天波动7天波动7天平均值波动30天平均值波动30天周期波动上1周期比较1、7、30天波动检测
        • 如果校验类型为数值型,则趋势固定值
    • 创建方式选择为自定义SQLgagag
      参数 描述
      规则名称 定义质量规则的名称。
      规则强度 选择质量规则的强弱:
      • 如果您选择了强规则,则质量规则校验的结果为异常时报警并阻塞下游任务节点。
      • 如果您选择了弱规则,则质量规则校验的结果为异常时报警但不阻塞下游任务节点。
      自定义SQL 自定义创建质量规则的SQL语句,示例如下。
      select
        sum(value) as metric
      from
        current_table ctb
        left outer join related_table rtb on ctb.id = rtb.id
      where
        ds = ${bizdate};
      检测类型 检测类型包括数值型波动型
      趋势
      • 如果校验类型为波动型,则趋势包括1天波动7天波动7天平均值波动30天平均值波动30天周期波动上1周期比较1、7、30天波动检测
      • 如果校验类型为数值型,则趋势固定值

步骤五:试跑规则

选中新增的数据表规则,单击规则试跑gagaga

如果数据表规则的试跑失败,则鼠标悬停至gegaga图标,单击试跑日志,查看日志,定位试跑失败原因。