有效性规则

您可以使用有效性规则来对数据中的数据有效性进行校验。

配置示例

{
  "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:日期格式,yyyyMMdd

    • 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%