GetDataQualityEvaluationTaskInstance - 获取数据质量校验任务实例详情

更新时间:
复制 MD 格式

获取数据质量校验任务实例详情。

说明

目前该API接口已标记为弃用,推荐使用替代API:dataworks-public(2024-05-18) - GetDataQualityScanRun。

接口说明

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

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

dataworks:*

get

*全部资源

*

无 无

请求参数

名称

类型

必填

描述

示例值

Id

integer

是

数据质量监控实例 ID。

7227550902

返回参数

名称

类型

描述

示例值

object

Schema of Response

RequestId

string

请求 ID。用于定位日志,排查问题。

8abcb91f-d266-4073-b907-2ed67****

DataQualityEvaluationTaskInstance

object

数据质量监控实例详情。

Status

string

数据质量监控实例状态。

  • Running:校验中

  • Error:有规则校验出错

  • Passed:所有规则校验通过

  • Warned:有规则触发普通告警阈值

  • Critical:有规则触发严重告警阈值

Passed

Task

object

数据质量监控。

Name

string

数据质量监控名称。

Data quality OpenAPI monitoring test

Notifications

object

通知设置。

Condition

string

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

  • 只指定一组规则严重类型和规则校验状态,如${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"

Notifications

array<object>

告警方式。

array<object>

NotificationReceivers

array<object>

接收方取值。

object

ReceiverType

string

告警接收人类型。

DingdingUrl

Extension

string

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

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

{ "atAll": true }

ReceiverValues

array

告警接收人。

string

接收方取值。

  • 当接收方类型为阿里云 ID 时,接收方取值为具体阿里云用户 ID。

  • 当接收方类型为 DingdingUrl 时,接收方取值为具体钉钉机器人的告警地址。

  • 当接收方类型为 WeixinUrl 时,接收方取值为具体企业微信的告警地址。

  • 当接收方类型为 FeishuUrl 时,接收方取值为具体飞书的告警地址。

  • 当接收方类型为 WebhookUrl 时,接收方取值为具体自定义 Webhook 的告警地址。

https://api.fc.aliyuncs.com/webhook

NotificationChannels

array<object>

通知方式。

object

Channels

array

通知方式。

string

告警方式

  • Mail - 邮件

  • Sms - 短信

  • Phone - 电话

  • Feishu - 飞书

  • Weixin - 微信

  • Dingding - 钉钉

  • Webhook - 自定义 Webhook

Mail

Hooks

array<object>

回调设置。

object

Type

string

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

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

BlockTaskInstance

Condition

string

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

  • 只指定一组规则严重类型和规则校验状态,如${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")

RuntimeConf

string

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

  • queue:执行 EMR 数据质量校验时,使用的 yarn 队列,默认为本项目配置的队列

  • sqlEngine:执行 EMR 的数据校验时,采用的 SQL 引擎
    • HIVE_SQL

    • SPARK_SQL

{ "queue": "default" }

Trigger

object

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

Type

string

质量监控触发类型:

  • ByManual:手动触发,默认值

  • ByScheduledTaskInstance:关联调度任务触发

ByScheduledTaskInstance

TaskIds

array

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

integer

调度任务 Id。

70006236752324

Target

object

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

Type

string

监控对象类型。

  • Table:表

Table

DatabaseType

string

表所属的数据库类型。

maxcompute

TableGuid

string

表在数据地图中的唯一 ID。

odps.api_trace.ods_d_api_log

PartitionSpec

string

监控的分区范围。

pt=$[yyyymmdd-1]

Description

string

数据质量监控的描述信息。

OpenAPI quality monitoring test

Id

integer

数据质量监控 ID。

28544990

ProjectId

integer

工作空间的 ID。

20629

Parameters

string

数据质量校验执行参数,JSON 格式,可用的 key 如下:

  • triggerTime:触发时间的毫秒时间戳,数据质量监控的数据范围中$[yyyymmdd]表达式的基准时间,必填。

{ "triggerTime": 1733284062000 }

FinishTime

integer

实例运行的结束时间。

格式为 13 位数字,例如 1716344665000。

1716344665000

TriggerContext

string

实例触发时的上下文信息,JSON 格式。可能包含的 key 如下:

  • TriggerClient:数据质量监控实例的触发来源,常见的如 CWF2(调度系统)等,后续有可能会新增。

  • TriggerClientId:关联到来源系统中某个具体的业务资源。比如 TriggerClient 为 CWF2 时,这里记录调度任务 ID。

{ "triggerClient": "CWF2", "triggerClientId": 70001238945 }

CreateTime

integer

创建时间。

格式为 13 位数字,例如 1716344665000。

1716344665000

Id

integer

数据质量监控实例 ID。

7234231689

ProjectId

integer

工作空间的 ID。

98330

Results

array<object>

数据质量校验结果列表。

array<object>

Id

integer

校验结果 ID

10001

Status

string

校验结果状态

Passed

CreateTime

integer

校验结果生成时间。

格式为 13 位数字,例如 1708284916414。

1708284916414

TaskInstanceId

integer

质量校验任务实例 ID

20001

Sample

string

本次校验所使用的样本值

[ { "gender": "male", "_count": 100 }, { "gender": "female", "_count": 100 } ]

Details

array<object>

本次校验的详情

object

ReferencedValue

string

使用引用的样本,用来参与 CheckedValue 计算的基准值

0.0

CheckedValue

string

最终用来与阈值比较的值

100.0

Status

string

最终的比较结果状态

Passed

Rule

object

校验开始时,规则配置快照

Id

integer

规则 ID,全局唯一标识

100001

Name

string

规则名称,数字、英文字母、汉字、半角全角标点符号组合,最长 255 个字符

表不能为空

ProjectId

integer

DataWorks 项目空间 ID

100

Enabled

boolean

规则是否启用

Severity

string

规则对于业务的等级(对应页面上的强弱规则)

High

Description

string

规则描述信息,最长 500 个字符

this is a odps _sql task

TemplateCode

string

创建规则时所引用的规则模板

SYSTEM:user_defined_sql

Target

object

规则所监控的对象

Type

string

监控对象类型

  • Table

Table

DatabaseType

string

表类型的数据集,表所属的数据库类型

  • maxcompute

  • emr

  • cdh

  • hologres

  • analyticdb_for_postgresql

  • analyticdb_for_mysql

  • starrocks

maxcompute

TableGuid

string

表在数据地图中的唯一 ID

odps.unit_test.tb_unit_test

SamplingConfig

object

样本采集所需的设置

Metric

string

采样的指标名称

  • Count:表行数

  • Min:字段最小值

  • Max:字段最大值

  • Avg:字段均值

  • DistinctCount:字段唯一值个数

  • DistinctPercent:字段唯一值个数与数据行数占比

  • DuplicatedCount:字段重复值个数

  • DuplicatedPercent:字段重复值个数与数据行数占比

  • TableSize:表大小

  • NullValueCount:字段为空的行数

  • NullValuePercent:字段为空的比例

  • GroupCount:按字段值聚合后每个值与对应的数据行数

  • CountNotIn:枚举值不匹配行数

  • CountDistinctNotIn:枚举值不匹配唯一值个数

  • UserDefinedSql:通过自定义 SQL 做样本采集

Min

MetricParameters

string

样本采集时,所需的参数

{ "Columns": [ "id", "name" ] }

SettingConfig

string

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

SET odps.sql.udf.timeout=600s;

SamplingFilter

string

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

id IS NULL

CheckingConfig

object

样本校验设置

Type

string

阈值计算方式

  • Fixed

  • Fluctation

  • FluctationDiscreate

  • Auto

  • Average

  • Variance

Fixed

ReferencedSamplesFilter

string

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

{ "bizdate": [ "-1", "-7", "-1m" ] }

Thresholds

object

阈值设置

Expected

object

期望的阈值设置

Value

string

阈值数值

100.0

Operator

string

比较符

  • >

  • >=

  • <

  • <=

  • !=

  • =

>

Expression

string

阈值表达式

$checkValue > 0.01

Warned

object

普通警告的阈值设置

Value

string

阈值数值

100.0

Operator

string

比较符

  • >

  • >=

  • <

  • <=

  • !=

  • =

>

Expression

string

阈值表达式

$checkValue > 0.01

Critical

object

严重警告的阈值设置

Value

string

阈值数值

100.0

Operator

string

比较符

  • >

  • >=

  • <

  • <=

  • !=

  • =

>

Expression

string

校验表达式

$checkValue > 0.01

ErrorHandlers

array<object>

质量规则校验问题处理器

object

Type

string

处理器类型

SaveErrorData

ErrorDataFilter

string

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

SELECT * FROM tb_api_log WHERE id IS NULL

示例

正常返回示例

JSON格式

{
  "RequestId": "8abcb91f-d266-4073-b907-2ed67****",
  "DataQualityEvaluationTaskInstance": {
    "Status": "Passed",
    "Task": {
      "Name": "Data quality OpenAPI monitoring test\n",
      "Notifications": {
        "Condition": "${severity} == \"High\" AND ${status} == \"Critical\"",
        "Notifications": [
          {
            "NotificationReceivers": [
              {
                "ReceiverType": "DingdingUrl",
                "Extension": "{ \"atAll\": true }",
                "ReceiverValues": [
                  "https://api.fc.aliyuncs.com/webhook"
                ]
              }
            ],
            "NotificationChannels": [
              {
                "Channels": [
                  "Mail"
                ]
              }
            ]
          }
        ]
      },
      "Hooks": [
        {
          "Type": "BlockTaskInstance",
          "Condition": "(${severity} == \"High\" AND ${status} == \"Critical\") OR (${severity} == \"Normal\" AND ${status} == \"Critical\") OR (${severity} == \"Normal\" AND ${status} == \"Error\")"
        }
      ],
      "RuntimeConf": "{ \"queue\": \"default\" }",
      "Trigger": {
        "Type": "ByScheduledTaskInstance",
        "TaskIds": [
          70006236752324
        ]
      },
      "Target": {
        "Type": "Table",
        "DatabaseType": "maxcompute",
        "TableGuid": "odps.api_trace.ods_d_api_log",
        "PartitionSpec": "pt=$[yyyymmdd-1]"
      },
      "Description": "OpenAPI quality monitoring test",
      "Id": 28544990,
      "ProjectId": 20629
    },
    "Parameters": "{ \"triggerTime\": 1733284062000 }\n",
    "FinishTime": 1716344665000,
    "TriggerContext": "{ \"triggerClient\": \"CWF2\", \"triggerClientId\": 70001238945 }",
    "CreateTime": 1716344665000,
    "Id": 7234231689,
    "ProjectId": 98330,
    "Results": [
      {
        "Id": 10001,
        "Status": "Passed",
        "CreateTime": 1708284916414,
        "TaskInstanceId": 20001,
        "Sample": "[   {     \"gender\": \"male\",     \"_count\": 100   }, {     \"gender\": \"female\",     \"_count\": 100   } ]",
        "Details": [
          {
            "ReferencedValue": "0.0",
            "CheckedValue": "100.0",
            "Status": "Passed"
          }
        ],
        "Rule": {
          "Id": 100001,
          "Name": "表不能为空",
          "ProjectId": 100,
          "Enabled": true,
          "Severity": "High",
          "Description": "this is a odps _sql task",
          "TemplateCode": "SYSTEM:user_defined_sql",
          "Target": {
            "Type": "Table",
            "DatabaseType": "maxcompute",
            "TableGuid": "odps.unit_test.tb_unit_test"
          },
          "SamplingConfig": {
            "Metric": "Min",
            "MetricParameters": "{ \"Columns\": [ \"id\", \"name\" ] }",
            "SettingConfig": "SET odps.sql.udf.timeout=600s;",
            "SamplingFilter": "id IS NULL"
          },
          "CheckingConfig": {
            "Type": "Fixed",
            "ReferencedSamplesFilter": "{ \"bizdate\": [ \"-1\", \"-7\", \"-1m\" ] }",
            "Thresholds": {
              "Expected": {
                "Value": "100.0",
                "Operator": ">",
                "Expression": "$checkValue > 0.01"
              },
              "Warned": {
                "Value": "100.0",
                "Operator": ">",
                "Expression": "$checkValue > 0.01"
              },
              "Critical": {
                "Value": "100.0",
                "Operator": ">",
                "Expression": "$checkValue > 0.01"
              }
            }
          },
          "ErrorHandlers": [
            {
              "Type": "SaveErrorData",
              "ErrorDataFilter": "SELECT * FROM tb_api_log WHERE id IS NULL"
            }
          ]
        }
      }
    ]
  }
}

错误码

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

变更历史

更多信息,参考变更详情。