CreateDataQualityEvaluationTask - 创建数据质量监控

创建DataWorks数据质量监控

接口说明

需要购买 DataWorks 基础版及以上版本才能使用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

当前API暂无授权信息透出。

请求参数

名称类型必填描述示例值
Targetobject

参看 DataQualityTarget 示例 数据质量校验任务的监控对象,参考 DataQualityTarget

DatabaseTypestring

表所属的数据库类型

maxcompute
TableGuidstring

表在数据地图中的唯一 ID

odps.api_test.ods_openapi_log_d
PartitionSpecstring

分区表的分区设置

pt=$[yyyymmdd-1]
Descriptionstring

质量监控任务描述

OpenAPI创建数据质量监控测试
Namestring

质量监控任务名称

OpenAPI创建数据质量监控测试
RuntimeConfstring

扩展配置,JSON 格式的字符串,只对 EMR 类型的数据质量监控生效。

  • queue:执行 EMR 数据质量校验时,使用的 yarn 队列,默认为本项目配置的队列
  • sqlEngine:执行 EMR 的数据校验时,采用的 SQL 引擎
    • HIVE_SQL
    • SPARK_SQL
{ "queue": "default", "sqlEngine": "SPARK_SQL" }
Triggerobject

数据质量校验任务的触发配置

Typestring

质量监控触发类型,

  • ByManual:手动触发,默认值
  • ByScheduledTaskInstance:关联调度任务触发
ByScheduledTaskInstance
TaskIdsarray

调度任务 Id 列表,在 Type 为 ByScheduledTaskInstance 时有效

long

调度任务 Id

30001
ProjectIdlong

DataWorks 工作空间的 ID。您可以登录 DataWorks 控制台,进入工作空间管理页面获取 ID。

该参数用来确定本次 API 调用操作使用的 DataWorks 工作空间。

10000
Hooksarray<object>

回调设置

object
Typestring

Hook 类型,目前只支持一种:

  • BlockTaskInstance:阻塞调度任务继续运行,数据质量监控是由调度任务触发的,那么在数据质量监控运行完成之后,会根据 Hook.Condition 来判断是否阻塞调度任务继续运行。
BlockTaskInstance
Conditionstring

Hook 触发条件,当满足这个条件时,会触发 hook 动作。目前只能支持两种条件表达式:

  1. 只指定一组规则严重类型和规则校验状态,如${severity} == "High" AND ${status} == "Critical",代表执行的规则中,如果有 severity 为 High 的规则校验结果是 Critical,则满足条件
  2. 指定多组规则严重类型和规则校验状态,如(${severity} == "High" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Error"),代表执行的规则中,如果有 severity 为 High 的规则校验结果是 Critical、或者 severity 为 Normal 的规则校验结果是 Critical、或者 severity 为 Normal 的规则校验结果是 Error,则满足条件 条件表达式中 severity 的枚举与 DataQualityRule 中 severity 的枚举一致、status 的枚举与 DataQualityResult 中的 status 一致。
(${severity} == "High" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Error")
Notificationsobject

通知订阅配置

Conditionstring

通知触发条件,当满足这个条件时,会触发消息通知。目前只能支持两种条件表达式:

只指定一组规则严重类型和规则校验状态,如${severity} == "High" AND ${status} == "Critical",代表执行的规则中,如果有 severity 为 High 的规则校验结果是 Critical,则满足条件 指定多组规则严重类型和规则校验状态,如(${severity} == "High" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Error"),代表执行的规则中,如果有 severity 为 High 的规则校验结果是 Critical、或者 severity 为 Normal 的规则校验结果是 Critical、或者 severity 为 Normal 的规则校验结果是 Error,则满足条件 条件表达式中 severity 的枚举与 DataQualityRule 中 severity 的枚举一致、status 的枚举与 DataQualityResult 中的 status 一致。

(${severity} == "High" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Critical") OR (${severity} == "Normal" AND ${status} == "Error")
Notificationsarray<object>

通知设置

object
NotificationReceiversarray<object>

告警接收人设置

object
ReceiverTypestring

告警接收人类型

枚举值:
  • WebhookUrl自定义webhook地址
  • FeishuUrl飞书告警地址
  • DingdingUrl钉钉告警地址
  • WeixinUrl企业微信告警地址
  • AliUid阿里云用户ID
DingdingUrl
Extensionstring

告警发送时的额外参数设置,json 格式,支持的 key 如下:

  • atAll:发送钉钉告警时,是否需要在群里@所有人。ReceiverType 为 DingdingUrl 时生效。
{ "atAll": true }
ReceiverValuesarray

告警接收人

string

接收方取值。

  • 当接收方类型为阿里云 ID 时,接收方取值为具体阿里云用户 ID。
  • 当接收方类型为 DingdingUrl 时,接收方取值为具体钉钉机器人的告警地址。
  • 当接收方类型为 WeixinUrl 时,接收方取值为具体企业微信的告警地址。
  • 当接收方类型为 FeishuUrl 时,接收方取值为具体飞书的告警地址。
  • 当接收方类型为 WebhookUrl 时,接收方取值为具体自定义 Webhook 的告警地址。
https://api.fc.aliyuncs.com/webhook
NotificationChannelsarray<object>

通知方式

object
Channelsarray

通知方式

string

告警方式

  • Mail - 邮件
  • Sms - 短信
  • Phone - 电话
  • Feishu - 飞书
  • Weixin - 微信
  • Dingding - 钉钉
  • Webhook - 自定义 Webhook
Mail
DataSourceIdlong

数据源 ID,您可以调用 ListDataSources 获取数据源的 ID。

1
DataQualityRulesarray<object>

数据质量监控关联的数据质量规则列表。如果设置了 DataQualityRule.Id,则把 Id 对应的规则关联到新建质量监控中;如果没有设置,则用其他字段创建一个新的规则,关联到新建的质量监控中。

object
Namestring

数据质量规则名称。

OpenAPI测试规则
Enabledboolean

质量规则是否启用

true
Severitystring

规则对于业务的等级(对应页面上的强弱规则),可选的枚举值:

  • Normal
  • High
High
Descriptionstring

数据质量规则描述。

OpenAPI测试规则
TemplateCodestring

规则所引用的规则模板唯一标识。

SYSTEM:field:null_value:fixed:0
SamplingConfigobject

样本采集时,所需的参数。

Metricstring

采样的指标名称

  • Count:表行数
  • Min:字段最小值
  • Max:字段最大值
  • Avg:字段均值
  • DistinctCount:字段唯一值个数
  • DistinctPercent:字段唯一值个数与数据行数占比
  • DuplicatedCount:字段重复值个数
  • DuplicatedPercent:字段重复值个数与数据行数占比
  • TableSize:表大小
  • NullValueCount:字段为空的行数
  • NullValuePercent:字段为空的比例
  • GroupCount:按字段值聚合后每个值与对应的数据行数
  • CountNotIn:枚举值不匹配行数
  • CountDistinctNotIn:枚举值不匹配唯一值个数
  • UserDefinedSql:通过自定义 SQL 做样本采集
NullValueCount
MetricParametersstring

样本采集时,所需的参数

{ "Columns": [ "id", "name" ] , "SQL": "select count(1) from table;"}
SettingConfigstring

具体执行采样语句前,插入执行的一些运行时参数设置语句,最长 1000 个字符。目前只支持 MaxCompute

odps.sql.type.system.odps2=True,odps.sql.hive.compatible=True
SamplingFilterstring

采样时,对不关注的数据进行二次过滤的条件,最多 16777215 个字符

status != 'Succeeded'
CheckingConfigobject

样本校验设置

Typestring

阈值计算方式

  • Fixed
  • Fluctation
  • FluctationDiscreate
  • Auto
  • Average
Fixed
ReferencedSamplesFilterstring

有些类型的阈值需要查询出一些参考样本,然后对参考样本的值进行汇总得出进行比较的阈值,这里使用一个表达式来表示参考样本的查询方式

{"bizdate": ["-1"]}
Thresholdsobject

校验阈值设置。

Expectedobject

期望的阈值设置

Operatorstring

比较符

  • >
  • >=
  • <
  • <=
  • !=
  • =
=
Valuestring

阈值数值。

0
Warnedobject

普通警告的阈值设置

Operatorstring

比较符

  • >
  • >=
  • <
  • <=
  • !=
  • =
>
Valuestring

阈值数值

0.001
Criticalobject

严重警告的阈值设置

Operatorstring

比较符

  • >
  • >=
  • <
  • <=
  • !=
  • =
>
Valuestring

阈值数值

0.01
ErrorHandlersarray<object>

质量规则校验问题处理器列表。

object

质量规则校验问题处理器。

Typestring

处理器类型:

  • SaveErrorData
SaveErrorData
ErrorDataFilterstring

如果是自定义 SQL 规则,需要用户指定 SQL 来过滤问题数据。

SELECT * FROM ods_api_log WHERE status = 'Error';
Idlong

规则 ID。

2176

返回参数

名称类型描述示例值
object

Schema of Response

RequestIdstring

Id of the request

2d9ce-38ef-4923-baf6-391a7e656
Idlong

新建的数据质量监控 ID。

10001

示例

正常返回示例

JSON格式

{
  "RequestId": "2d9ce-38ef-4923-baf6-391a7e656",
  "Id": 10001
}

错误码

HTTP status code错误码错误信息
400IdempotentParameterMismatchThe request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.

访问错误中心查看更多错误码。