本文介紹數據標準的相關問題。
數據元、指標和維度屬性的質量校驗函數(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
文檔內容是否對您有幫助?