本文介绍使用数据质量API以及配置Spec时的相关限制。
DataQualityScan Spec 限制
Datasets
Datasets最多只能设置一个。
tables只能支持一个,暂时不支持通配符。
filter的配置对应按照WHERE条件指定数据范围。
说明MaxCompute分区表一定要指定filter,否则执行时会失败。
datasets:
- type: Table
tables:
- ods_d_dq_openapi_log # 最多1个,不支持通配符
dataSource:
name: odps_first
envType: Dev
filter: "dt = '$[yyyymmdd-1]'" # 这里暂时只支持按照where条件指定的数据范围
rules:
# ...Rules
波动类规则的阈值,只能支持如下写法:
规则阈值要求 | 写法 |
上升时告警,fail的阈值要大于warn的阈值,且都大于0 |
|
下降时告警,fail的阈值要小于warn的阈值,且都小于0。 |
|
上升/下降均告警,只能使用not between,而且上下界需要是一对相反数,fail的阈值的上下界绝对值要大于warn的阈值的上下界绝对值,且都不等于0。 |
|
DataQualityTemplate Spec 限制
规则模板中的assertion参数设置,只能支持固定的几种参数组合。
规则 | assertion参数配置示例 |
与固定值比较 | |
7天平均值波动
| |
30天平均值波动 | |
1天周期波动 | |
7天周期波动 | |
30天周期波动 | |
7天方差波动 | |
30天方差波动 | |
1,7,30天波动检测 | |
智能动态阈值 | |
DataQualityAlertRule 限制
一个DataQualityAlertRule只能监控一个DataQualityScan。
监控同一个DataQualityScan的AlertRule的Condition必须相同。
Condition只支持一种写法,使用
results的status属性和results对应rule的severity属性来拼接表达式,且这两个属性要成对出现。results.any { r -> r.status == 'Fail' && r.rule.severity == 'Normal' || r.status == 'Error' && r.rule.severity == 'High' || r.status == 'Warn' && r.rule.severity == 'High' }
该文章对您有帮助吗?