空值规则

更新时间:
复制为 MD 格式

您可以使用空值规则来对数据中某个字段的空值情况进行校验。

配置示例

datasets:
  - type: Table
    tables:
      - tb_d_spec_demo
    filter: dt=$[yyyymmdd]/hh=$[hh24-1/24]
    dataSource:
      name: odps_first
      envType: Dev
rules:
  - missing_count(birthday) = 0
  - missing_percent(gender) < 5%
  - missing_count(first_name) = 0
    missing:
      regex: "(?:N/A)"
  - missing_count(first_name) = 0
    missing:
      values:
        - n/a
        - NA
        - none
  - missing_percent(email_address) = 0%
computeResource:
  id: 2001

定义空值规则

执行空值规则校验时,系统会扫描数据中的指定字段,统计出指定字段值为空的数据行数或者数据行数占比。

  • 系统会将NULL值当作空值统计。

  • 可以通过missing_percent来校验空值行数的占比。

示例一:校验birthday字段为NULL的数据。

datasets:
  - type: Table
    tables:
      - tb_d_spec_demo
    filter: dt=$[yyyymmdd]/hh=$[hh24-1/24]
    dataSource:
      name: odps_first
      envType: Dev
rules:
  - missing_count(birthday) = 0
computeResource:
  id: 2001

示例二:定义number_employees字段为NULL的行数不能超过监控总行数的5%。

datasets:
  - type: Table
    tables:
      - tb_d_spec_demo
    filter: dt=$[yyyymmdd]/hh=$[hh24-1/24]
    dataSource:
      name: odps_first
      envType: Dev
rules:
  - missing_percent(number_employees) < 5%
computeResource:
  id: 2001

保留问题数据

如果规则的collectFailedRows设置为true,则在校验不通过(状态为warn或者fail)时,会将指定字段为NULL的数据自动保存到问题数据表中供后续问题排查使用。

datasets:
  - type: Table
    tables:
      - tb_d_spec_demo
    filter: dt=$[yyyymmdd]/hh=$[hh24-1/24]
    dataSource:
      name: odps_first
      envType: Dev
rules:
  - missing_percent(number_employees) < 5%
    collectFailedRows: true
computeResource:
  id: 2001