您可以使用有效性规则来对数据中的数据有效性进行校验。
配置示例
{
"datasets": [
{
"type": "Table",
"tables": [
"tb_d_spec_demo"
],
"filter": "dt=$[yyyymmdd]/hh=$[hh24-1/24]",
"dataSource": {
"name": "odps_first",
"envType": "Dev"
}
}
],
"rules": [
{
"invalid_count(email_address) = 0",
"valid": {
"format": "email"
}
}, {
"invalid_percent(last_name) < 5%",
"valid": {
"regex": "(?:XX)"
}
}, {
"invalid_count(house_owner_flag) = 0",
"valid": {
"values": [
"US", "CN"
]
}
}
]
}
定义有效数据
有效性规则指标包含2种:
invalid_count:无效数据行数。
invalid_percent:无效数据行数在总行数中的占比。
使用有效性规则时,需要再使用valid
字段定义何为有效数据,定义方法有3种:
format:数据质量内置的一批数据格式,可以直接使用,支持同时设置多个。内置格式包括:
email:邮件
idcard:中国大陆身份证号码
mobile:中国大陆移动电话号码
phone:中国大陆座机电话号码
decimal:数字
date_yyyymmdd:日期格式,yyyyMMdd
date_minus_yyyymmdd:日期格式,yyyy-MM-dd
date_and_time_24h:时间格式,yyyy-MM-dd hh:mm:ss
date_and_time_milis:时间格式,yyyy-MM-dd hh:mm:ss.SSS
date_us:日期格式,MM/dd/yy
date_cn:日期格式,yyyy年MM月dd日
date_iso_8601:ISO 8601日期格式,yyyy-MM-ddThh:mm:ssTZD
time_24h:时间格式,hh:mm:ss
money_cn:人民币金额,¥1000
money_us:美元金额,$1000
money_gb:英镑金额,£1000
money_eu:欧元金额,€1000
money_jp:日元金额,¥1000
regex:有效数据的正则表达式。
values:有效数据的字面值集合。
指标列表
avg:字段均值
row_count:数据行数
sum:字段加和值
min:字段最小值
max:字段最大值
distinct_count:唯一值个数
distinct_percent:唯一值个数/数据行数 % 100%
table_size:数据存储大小
duplicate_count:重复值数据行数
duplicate_percent:重复值数据行数 / 数据行数 % 100%