本文介绍数据标准的相关问题。
数据元、指标和维度属性的质量校验函数(UDF)编写规范是什么?
数据元、指标和维度属性的质量校验函数(UDF)编写规范
整体规范说明:
针对用于数据元、指标和维度属性的质量校验函数UDF,要求定义的函数入口接收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。
假设,定义了身份证号的数据元,且数据元的类型为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
文档内容是否对您有帮助?