文档

配置规则:按模板(批量)

更新时间:

数据质量为您提供数十种预设表级别、字段级别的监控模板。本文为您介绍如何按模板配置监控规则。

背景信息

内置模板分为表级和字段级的模板规则,支持您通过内置规则模板来快速为一批表批量创建数据质量规则。还支持您按表配置数据质量规则,详情请参见配置规则:按表(单表)

使用限制

按模板配置目前支持配置EMR(E-MapReduce)、Hologres、AnalyticDB for PostgreSQL、MaxCompute数据源的监控规则。

进入按模板配置监控规则页面

  1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据建模与开发 > 数据质量,在下拉框中选择对应工作空间后单击进入数据质量

  2. 在左侧导航栏选择规则管理 > 按模版配置,进入按模板配置页面。

    数据质量提供系统内置的表级规则模板和字段规则模板,您可以单击对应模板后的配置监控规则来批量对表或字段配置监控规则。

    image

配置监控规则

  1. 选择需要进行规则配置的模板,单击操作列的配置监控规则,进入该模板的批量新增监控规则页面。

  2. 配置监控规则的基本属性。

    1. 配置监控规则的基本属性。

      参数

      描述

      引擎/数据源

      选择后续需要应用此监控规则的表所属的计算引擎或数据源类型。

      说明

      按模板配置目前支持配置EMR(E-MapReduce)、Hologres、AnalyticDB for PostgreSQL、MaxCompute数据源的监控规则。

      规则来源

      默认来源为内置模板

      规则模板

      此处展示配置选择的规则模板名称。详情请参见查看内置规则模板

      说明

      平均值、汇总值、最小值和最大值仅对数值型字段生效。

      规则名称

      规则名称系统会自动生成,您可以按需调整名称后缀。

      描述

      对配置的监控规则进行简单描述。

    2. 配置监控规则的详细属性。

      image

      参数

      描述

      强弱

      设置强规则或弱规则:

      • 如果设置强规则,红色异常报警并阻塞下游任务节点,橙色异常报警不阻塞。

      • 如果设置弱规则,红色异常报警不阻塞下游任务节点,橙色异常不报警不阻塞。

      比较方式

      • 当模板的规则类型为数值型时,比较方式包括大于大于等于等于不等于小于小于等于

      • 当模板的规则类型为波动率型时,比较方式包括绝对值上升下降

      期望值

      当模板的规则类型为数值型时,您需要填写期望值。当触发规则校验时将数据探查结果与期望值进行比较。如果发现数据异常,便会触发报警或阻塞。

      波动值比较

      当模板的规则类型为波动率型时,您可以设置橙色阈值红色阈值,对数据探查结果的波动率与指定时间内数据采样结果的波动率进行比较。支持上升范围、下降范围或波动范围(绝对值)的比较。

      例如,假设规则为强规则,并且规则橙色阈值为5%,红色阈值为10%。

      • 当波动率大于5%且小于等于10%时,将触发橙色报警,任务不会被阻塞,并且发送报警信息。

      • 当波动率大于10%时,将触发红色报警,任务将被阻塞,并且发送报警信息。

      启停状态

      单击开关按钮启用停用规则,用于控制该规则是否在生产环境中运行。

      重要

      状态设置为停用时,规则将无法触发试跑,并且不会被关联的调度任务触发运行。

  3. 单击下一步,进入生成规则页面。

    根据您选择的表级规则模板和字段级规则模板,批量添加需要进行该规则校验的表或字段,添加后,请为分区表配置分区表达式。分区表达式用于确定校验数据的采样范围。对于非分区表,系统会默认配置为NOTAPARTITIONTABLE

    1. 添加表或字段。

      • 单击添加表,在弹出的对话框中,选择目标引擎/数据库实例,列表中为您展示当前引擎/数据库中的所有表信息,您还可以输入目标表名对结果进行过滤。选中需要配置监控规则的表添加至列表中。

      • 单击添加字段,在弹出的对话框中,选择目标引擎/数据库实例待添加表区域为您展示当前引擎/数据库中的所有表信息,选中要配置监控规则的字段所在的表后,选择字段区域为您展示已添加表中的所有字段信息,支持您根据字段名字段描述对结果进行过滤。选中需要配置监控规则的字段后添加至生成规则页面的列表中。

    2. 配置分区表达式。

      单击目标表名右侧的按钮,在弹出的批量设置分区表达式页面输入分区表达式,单击确认。数据质量将通过表配置的分区表达式来匹配调度节点每天产出的表分区。如果您需要批量为表配置分区表达式,则可以单击设置分区表达式按钮为选中的表批量添加分区表达式。

  4. 单击生成规则,进入规则验证页面。

    您可以单击自定义列,按需自定义规则详情表中需要显示的内容。在规则验证页面您可以进行如下操作:

    • 校验规则配置的合理性:试跑

      规则创建完成后,您可以选择单个或多个规则进行试跑,在弹出来的试跑对话框中选择调度时间(模拟给定校验被触发的时间),系统会根据此时间以及设定的分区表达式,计算要验证的表的具体分区取值。 完成后单击试跑,去校验该表该分区下的数据是否符合当前配置的数据质量校验规则。

      试跑后您可以单击操作列的试跑记录,查看试跑状态详情,并进行相应的处理。

      说明

      试跑错误的可能原因为:表或表分区不存在、表数据不符合质量校验规则。

    • 定义报警接收人:订阅管理

      您可以单击订阅管理,选择订阅方式接受对象,目前支持通过邮件通知邮件和短信通知钉钉群机器人钉钉群机器人@ALL飞书群机器人企业微信机器人自定义Webhook,报警给指定接收人。

      说明

      仅DataWorks企业版版本支持使用自定义Webhook方式,DataWorks推送自定义Webhook的报警信息的消息格式请参见:附录:Webhook消息格式

    • 定义规则触发方式:关联调度

      您可以单击推荐关联调度手动关联调度,为单个或多个数据质量规则关联产出表数据的调度节点(运维中心中产出表数据的节点,包括自动调度的周期实例,手动触发的补数据实例,测试实例),当节点任务执行时便会触发该数据质量规则校验,您可以设置规则的强弱来控制节点是否失败退出,从而避免脏数据影响扩大。

      • 推荐关联调度:系统会根据产出该表的节点血缘关系选中的规则自动关联推荐的调度节点。

      • 手动关联调度:您可以为选中的规则手动关联指定的调度节点。

      重要

      必须关联相应的调度节点,规则才会被自动触发运行。

    • 删除规则:您可以选择单个或多个规则进行删除。

    • 查看规则详情:您可以单击操作列的规则详情,查看规则详情,并对规则进行修改、启停、删除、设置规则强弱、查看日志等操作。

  5. 试跑运行成功且关联调度后,单击保存。确认是否已完成所有配置,确认无误后单击确认完成配置。

附录:Webhook消息格式

DataWorks推送自定义Webhook的报警信息的消息格式及参数说明如下所示:

消息示例

{
  "detailUrl": "https://dqc-cn-zhangjiakou.data.aliyun.com/?defaultProjectId=3058#/jobDetail?envType=ODPS&projectName=yongxunQA_zhangbei_standard&tableName=sx_up_001&entityId=10878&taskId=16876941111958fa4ce0e0b5746379cd9bc67999d05f8&bizDate=1687536000000&executeTime=1687694111000",
  "datasourceName": "emr_test_01",
  "engineTypeName": "EMR",
  "projectName": "线上回归项目",
  "dqcEntityQuality": {
    "entityName": "tb_auto_test",
    "actualExpression": "ds=20230625",
    "strongRuleAlarmNum": 1,
    "weakRuleAlarmNum": 0
  },
  "ruleChecks": [
    {
      "blockType": 0,
      "warningThreshold": 0.1,
      "property": "id",
      "tableName": "tb_auto_test",
      "comment": "测试规则",
      "checkResultStatus": 2,
      "templateName": "字段唯一值个数期望值校验",
      "checkerName": "fulx",
      "ruleId": 123421,
      "fixedCheck": false,
      "op": "",
      "upperValue": 22200,
      "actualExpression": "ds=20230625",
      "externalId": "123112232",
      "timeCost": "10",
      "trend": "up",
      "externalType": "CWF2",
      "bizDate": 1600704000000,
      "checkResult": 2,
      "matchExpression": "ds=$[yyyymmdd]",
      "checkerType": 0,
      "projectName": "auto_test",
      "beginTime": 1600704000000,
      "dateType": "YMD",
      "criticalThreshold": "0.6",
      "isPrediction": false,
      "ruleName": "规则的名称",
      "checkerId": 7,
      "discreteCheck": true,
      "endTime": 1600704000000,
      "MethodName": "max",
      "lowerValue": 2344,
      "entityId": 12142421,
      "whereCondition": "type!='type2'",
      "expectValue": 90,
      "templateId": 5,
      "taskId": "16008552981681a0d6",
      "id": 234241453,
      "open": true,
      "referenceValue": [
        {
          "discreteProperty": "type1",
          "value": 20,
          "bizDate": "1600704000000",
          "singleCheckResult": 2,
          "threshold": 0.2
        }
      ],
      "sampleValue": [
        {
          "discreteProperty": "type2",
          "bizDate": "1600704000000",
          "value": 23
        }
      ]
    }
  ]
}

参数说明

名称

类型

示例值

描述

ProjectName

String

autotest

需要进行数据质量校验的引擎或者数据源名称。

actualExpression

String

ds=20200925

被校验的数据源表的实际分区。

RuleChecks

Array of RuleChecks

校验结果的列表。

BlockType

Integer

1

校验规则的强弱。强弱表示规则的重要程度。取值如下:

  • 1,表示强规则。

  • 0,表示弱规则。

    您可以根据实际需求设置重要的规则为强规则。如果使用强规则并触发了红色告警,则会阻塞调度任务。

WarningThreshold

Float

0.1

橙色阈值。表示与样本预期的偏离程度,您可以根据业务需求自定义该阈值。

Property

String

type

规则属性的字段,即被校验数据源表的column名称。

TableName

String

dual

进行校验的表名称。

Comment

String

规则的描述信息。

校验规则的描述。

CheckResultStatus

Integer

2

校验结果状态。

TemplateName

String

字段唯一值个数期望值校验

使用的校验模板的名称。

CheckerName

String

fulx

校验器的名称。

RuleId

Long

123421

规则ID。

FixedCheck

Boolean

false

是否为固定值校验。取值如下:

  • true:是固定值校验。

  • false:非固定值校验。

Op

String

>

比较符。

UpperValue

Float

22200

预测上限。设置阈值后自动生成。

ActualExpression

String

ds=20200925

被校验的数据源表的实际分区。

ExternalId

String

123112232

调度任务的节点ID。

TimeCost

String

10

执行校验任务花费的时间。

Trend

String

up

校验结果的趋势。

ExternalType

String

CWF2

调度系统的类型。目前仅支持CWF。

BizDate

Long

1600704000000

业务日期。如果被校验的业务主体为离线数据,则业务日期通常为执行校验操作的前一天。

CheckResult

Integer

2

校验结果。

MatchExpression

String

ds=$[yyyymmdd]

分区表达式。

CheckerType

Integer

0

校验器的类型。

ProjectName

String

autotest

需要进行数据质量校验的引擎或者数据源名称。

BeginTime

Long

1600704000000

执行校验操作的开始时间。

DateType

String

YMD

调度周期的类型。通常为YMD,即年任务、月任务、天任务。

CriticalThreshold

Float

0.6

红色阈值。表示与样本预期的偏离程度。您可以根据业务需求自定义该阈值。使用强规则并触发红色阈值,会阻塞调度任务。

IsPrediction

Boolean

false

是否为预测的结果。取值如下:

  • true:是预测的结果。

  • false:不是预测的结果。

RuleName

String

规则的名称。

规则的名称。

CheckerId

Integer

7

校验器的ID。

DiscreteCheck

Boolean

true

是否为离散校验。取值如下:

  • true:是离散校验。

  • false:非离散校验。

EndTime

Long

1600704000000

查询校验结果的截止时间。

MethodName

String

max

采集样本数据的方法。包括avg、count、sum、min、max、count_distinct、user_defined、table_count、table_size、table_dt_load_count、table_dt_refuseload_count、null_value、null_value/table_count、(table_count-count_distinct)/table_count、table_count-count_distinct等。

LowerValue

Float

2344

预测下限。根据您设置的阈值自动生成。

EntityId

Long

14534343

分区表达式ID。

WhereCondition

String

type!='type2'

校验任务使用的过滤条件。

ExpectValue

Float

90

期望值。

TemplateId

Integer

5

使用的校验模板的ID。

TaskId

String

16008552981681a0d6****

校验任务的ID。

Id

Long

2231123

主键ID。

ReferenceValue

Array of ReferenceValue

历史样本值。

DiscreteProperty

String

type1

通过group by分组后的样本字段取值。例如group by性别字段,则DiscreteProperty为男生、女生和null。

Value

Float

20

样本值。

BizDate

String

1600704000000

业务日期。如果被校验的业务主体为离线数据,则业务日期通常为执行校验操作的前一天。

SingleCheckResult

Integer

2

校验结果的字符串。

Threshold

Float

0.2

阈值。

SampleValue

Array of SampleValue

当前使用的样本。

DiscreteProperty

String

type2

通过group by分组后的样本字段取值。例如group by性别字段,则DiscreteProperty为男生、女生和null。

BizDate

String

1600704000000

业务日期。如果被校验的业务主体为离线数据,则业务日期通常为执行校验操作的前一天。

Value

Float

23

样本值。

Open

Boolean

true

规则是否开启。

后续步骤

  • 完成后当您进行配置规则:按表(单表)质量监控规则的时候,即可查看已配置的模板规则详情,并对该规则手动设置订阅管理,目前支持通过邮件通知邮件和短信通知钉钉群机器人钉钉群机器人@ALL飞书群机器人企业微信机器人自定义Webhook,报警给指定接收人。

  • 如果您需要在指定业务时间内,不符合质量校验规则的数据不阻塞任务运行,可以用去噪管理功能,详情请参见:配置数据质量规则去噪

  • 本页导读 (1)
文档反馈