本文为您介绍数据标准的相关问题。

数据元、指标和维度属性的质量校验函数(UDF)编写规范是什么?

数据元、指标和维度属性的质量校验函数(UDF)编写规范是什么?

整体规范说明

针对用于数据元、指标和维度属性的质量校验函数UDF,要求定义的函数入口接收2个参数:
  1. 待校验的字段值。
  2. 数据元、指标和维度属性的meta定义,格式为JSON的string。

函数返回整型0/1, 当满足校验规则时返回0,不满足校验规则时返回1。

数据元、指标和维度属性meta定义说明
{
  "type": "STRING",    // 数据元、指标和维度属性类型, INTEGER,  DECIMAL, STRING, DATETIME, DATE, TIME, BINARY
  "size": 32,   // 长度
  "scale": 16,  // 精度
  "ruleDesc": "" // 业务规则
}

更多UDF信息可参考:UDF

MaxCompute UDF样例

假设,定义了身份证号的数据元,且数据元的类型为STRING,长度要求18位,则可定义一个身份证号合法校验。

UDF:
package org.alidata.odps.udf.examples; 
import com.aliyun.odps.udf.UDF; 

public final class IdCardChecker extends UDF { 
  public Integer evaluate(String idCard, String eleMetaStr) { 
    // todo check
    // 符合校验,返回0;不符合校验返回1
    return 0;
  } 
}
说明
  • 第一个参数,idCard,字段值,当前数据元绑定到的字段。
  • 第二个参数,eleMetaStr,数据元Meta定义信息,"{\"type\":\"STRING\",\"size\":18}"。
  • 返回值,符合校验,返回0;不符合校验返回1。

并在MaxCompute的UDF管理中,物理化了id_card_check这个UDF,且将UDF关联到了身份证号数据元。

根据数据元绑定的质量校验UDF,数据建模会据此自动添加对应云计算资源平台下的UDF规则,如自动添加MaxCompute的自定义SQL规则,默认期望值为0,则执行的规则SQL如下:
select sum(id_card_check(idCard, "{\"type\":\"STRING\",\"size\":18}")) from table where partition