質量規則模板常用于抽象質量規則配置中邏輯一致或相似的邏輯,可以提升后續配置質量監控規則的效率。Dataphin內置支持20+質量規則模板,并支持通過自定義SQL的方式靈活拓展,以滿足企業的質量監控訴求。本文為您介紹如何創建質量規則模板。
權限說明
超級管理員、質量管理員支持新建、克隆、編輯及刪除規則模板。
所有用戶支持引用規則模板。
新建規則模板
在Dataphin首頁,在頂部菜單欄中選擇治理 > 數據質量。
在左側導航欄選擇質量監控 > 規則模板,在規則模板頁面,單擊數據表頁簽,單擊新建規則模板按鈕。
在新建規則模板對話框中,配置參數。
參數
描述
基本信息
模板名稱
自定義規則模板名稱,不能超過64個字符。
模板類型
配置模板所屬的類型,便于后續引用時快速查找。支持自定義規則模板的類型包括:有效性、一致性、及時性和自定義SQL。
有效性包括數據標準碼表參照對比(需開通數據標準模塊)、碼表參照對比、字段格式校驗、字段值域校驗、字段長度校驗。
一致性包括單字段業務邏輯一致性比較、兩表字段統計值一致性比較、兩表字段業務邏輯一致性比較、單表字段統計值一致性比較、跨源兩表字段統計值一致性比較。
及時性包括單表時間字段比較、兩表時間字段比較、時間函數比較。
自定義SQL包括自定義統計指標校驗和自定義數據詳情校驗。
不同類型模板的使用場景,請參見模板類型說明。
數據源類型
模板需要指定支持的數據源類型,避免不同數據源語法結構不一致導致規則定義不生效或校驗結果異常產生誤告警。支持定義2種類型:
通用:校驗條件和具體的數據源無關,所有類型均可以使用相同的校驗語句,例如:完整性模板。
特定類型:規則定義僅對特定數據源類型生效,需要選擇具體的數據源類型。配置后僅支持在指定數據源類型的監控對象下創建質量規則時引用當前定義的模板。
描述
自定義規則模板描述。不超過128個字符。
模板配置
一致性
當模板類型選擇為一致性時,不同模板所需填寫的模板配置參數不同,具體如下。
單表字段業務邏輯一致性比較:
識別表達式:輸入SQL表達式函數。例如
${total_sales}=${unit_price}*${sales_volume}
。說明識別表達式支持使用函數,但需要注意執行時的數據庫需要支持該函數。
支持多個字段之間的業務邏輯的校驗。如總銷售額=單價*銷售數量,校驗總銷售額是否出錯可以用
${total_sales}=${unit_price}*${sales_volume}
。表達式中的
${total_sales}
等變量需要指定實際的表字段,并在執行時會被替換為實際的表字段。
兩表字段統計值一致性比較/單表字段統計值一致性比較:
統計方式:可統計字段分組個數、字段最大值、字段重復率等,詳情請參見數據表參數配置。
兩表字段業務邏輯一致性比較:
業務邏輯:輸入SQL表達式函數。例如
${T1.total_sales}=${T2.unit_price}*${T2.sales_volume}
。說明支持多個字段之間的業務邏輯的校驗。如總銷售額=單價*銷售數量,校驗總銷售額是否出錯可以用
${T1.total_sales}=${T2.unit_price}*${T2.sales_volume}
。表達式中的
${T1.total_sales}
等變量需要指定實際的表字段,并在執行時會被替換為實際的表字段,最多支持雙表。
跨源兩表字段統計值一致性比較:
統計方式:可統計字段分組個數、字段最大值、字段重復率等,詳情請參見數據表參數配置。
數據源類型:選擇該物理表的數據源類型,包括MaxCompute、MySQL、Oracle、Microsoft SQL Server、PostgreSQL、SAP HANA、AnalyticDB for PostgreSQL、ClickHouse、IBM DB2、Hologres、DM(達夢)、StarRocks。
數據源:選擇該物理表所屬的數據源。
選擇比較表:選擇物理表中需要比較的表及該物理表需要比較的字段。
有效性
當模板類型選擇為有效性時,不同模板所需填寫的模板配置參數不同,具體如下。
數據標準碼表參照對比(需開通數據標準模塊):
碼表:選擇在數據標準下已發布狀態的碼表,如需創建碼表,請參見新建和管理標準代碼(碼表)。
碼表參照:根據此處選擇的參照值和字段值進行比較,可選代碼值、代碼名稱、代碼英文名。
碼表參照對比:
數據源類型:選擇數據源類型。
數據源:選擇對應數據源類型的數據源。
說明為了性能考慮,跨數據源最多只會讀取1000條碼表數據進行對比,建議碼表和被檢驗表在同一數據源。
跨數據源對比字段會被自動轉換為string類型, 部分特殊字段類型可能會出現異常情況。建議碼表中的字段類型和校驗字段類型都是string或其他相同類型。
碼表:選擇目標碼表。
碼表名稱:輸入碼表名稱,作為質量規則配置時的提示信息。
碼表參照字段:選擇碼表中對應的參照字段。
說明碼表參照表是判斷某個字段是否在碼表中,需要選擇一個對比的字段。例如判斷用戶詳情表里的用戶ID是否都是注冊用戶。
碼表過濾條件:設置分區表的過濾條件,對數據進行過濾。
字段格式校驗:
內容識別形式:可選擇識別表達式、正則表達式、字符串匹配(%)、開頭是、中間是、結尾是,表達式用于匹配符合規則的數據。
內容識別形式-識別表達式:輸入SQL表達式函數。例如
${column}>0
,其中${column}
為內置參數。內容識別形式-正則表達式:在輸入框中輸入正則表達式。例如您需要匹配所有名稱中帶有test,則正則表達式定義為
.*test.*
。內容識別形式-字符串匹配(%):標準的like表達式,使用%代表通配符,如匹配a開頭的數據,輸入a%即可。
內容識別形式-開頭是:輸入待匹配字符串,會自動按照模式在尾部拼接%,例如:a%。
內容識別形式-中間是:輸入待匹配字符串,會自動按照模式在開頭和尾部拼接%,例如:%a%。
內容識別形式-結尾是:輸入待匹配字符串,會自動按照模式在開頭拼接%,例如:%a。
說明識別表達式支持使用函數,但需要注意執行時的數據庫需要支持該函數。
字段值域校驗:
值域類型:根據實際業務選擇。
文本:用于對文本有效性進行驗證,需要確保校驗字段為文本類型。需設置值域范圍,支持枚舉或區間設置。選擇枚舉值的校驗示例:對比張三和李四,生成的校驗SQL為
x in ("張三", "李四")
。數值:用于對數值有效性進行驗證,需要確保校驗字段為數值類型。需要設置值域范圍,支持枚舉或區間設置。選擇枚舉值的校驗示例:對比3、6、9,生成的校驗SQL為
x in (3, 6, 9)
。日期:用于對日期有效性進行驗證,需要確保校驗字段為日期類型(date)。
時間戳:用于對時間戳有效性進行驗證,需要確保校驗字段為時間戳類型(timestamp)。
自定義:用于對多種格式進行校驗,同時支持使用函數,填寫的內容會直接下發到數據源執行。
需設置值域范圍,支持枚舉或區間設置。
選擇枚舉值的校驗示例:對比3、6、9生成的校驗SQL為
x in (3, 6, 9)
。選擇區間設置的校驗示例:值域范圍為最小值y1~最大值y2;假設被對比字段是x,則最后校驗SQL為
x >= y1 and x <= y2
。說明自定義時的字段格式,例如10和"10"在不同數據源中執行結果可能不同。
需要保證所使用函數在校驗質量的數據源有效。
字段長度校驗:
字段長度:設置長度范圍。支持枚舉或區間設置。
選擇枚舉值的校驗示例:對比3、6、9生成的校驗SQL為
x in (3, 6, 9)
。選擇區間設置的校驗示例:值域范圍為最小值y1~最大值y2;假設被對比字段是x,則最后校驗SQL為
x >= y1 and x <= y2
。
及時性
當模板類型選擇為及時性-單表時間字段比較、及時性-兩表時間字段比較、及時性-時間函數比較時,對應的參數如下所示。
校驗項:基于校驗字段定義表達式。校驗項的內置參數為
${column})
。比較項:比較時間的表達式,內置
${column}
、${bizdate}
參數。基于比較字段定義表達式,
${column}
為比較項內置參數,例如:${column}、substr(${column})
。日期函數比較選擇
${bizdate}
,則會被識別為業務日期。
時間容差:設置校驗項減去比較項的值。取單位項小數點前的值,不做四舍五入。例如發貨日期和下單日期需要在同一天,則校驗項 - 比較項目可設置為小于1天。
自定義SQL
當模板類型選擇為自定義SQL時,不同模板所需填寫的模板配置參數不同,具體如下。
自定義統計指標校驗:即自定義需要校驗的指標加工口徑,結果需是數值,如:校驗當日銷售額。
自定義SQL:自定義SQL指標的統計邏輯,代碼示例如下:
單表查詢
select sum(${t1.c1}) from ${t1} where ds=${bizdate};
子查詢
select sum(${t1.c1}) from (select ${t1.c1} from ${t1} where ds=${bizdate}) a;
多表查詢
select sum(${t1.c1}) from ${t1} join ${t2} on $[t1.id]=$[t2.id] where $[t1.ds]=${bizdate};
自定義數據詳情校驗:通過自定義SQL指定正常、異常數據內容的定義口徑,可配置總行數SQL、異常行數SQL、異常數據SQL。
總行數SQL:必填,定義總行數指標的SQL統計邏輯,結果需是數值,填寫后可以配置正常率、異常率等統計指標。總行數代碼示例如下:
select count(*) from ${t1} where ds=${bizdate};
異常行數SQL:必填,定義異常行數指標的SQL統計邏輯,結果需是數值,且需有異常數據的判斷條件,填寫后可以對異常行數進行統計;填寫總條數后同時可以統計異常率。異常行數代碼示例如下:
select count(*) from ${t1} where ds=${bizdate} and ${t1.c1}<0;
異常數據SQL:選填,定義異常數據指標的SQL統計邏輯(單個字段),填寫后支持使用異常歸檔功能。異常數據代碼示例如下:
select ${t1.c1} as dataphin_quality_error_data from ${t1} where ds=${bizdate} and ${t1.c1}<0;
說明SQL支持多表查詢及子查詢。
支持固定的表名和字段名;Dataphin表支持使用項目名引用物理表或使用板塊名引用邏輯表。
支持使用變量代替表名或字段名。
指定表:單擊編輯框中的填入表名1,快捷輸入表名變量
${t1}-${t5}
。最多指定5張數據表,不區分大小寫。指定某張表的字段:單擊編輯框中的僅填入表1的字段名1,快捷輸入該表的字段名變量
${t1.c1}
。指定表+字段:單擊編輯框中的填入表名1+字段名1,快捷輸入表名+字段名變量
$[t1.c1]
。
僅支持上述變量寫法,其他變量形式將統一被解析為校驗表的字段變量,如${t6}、${table1}、${a.b}等,請避免使用其他變量表達式。
參數配置
填寫質量規則的set參數,不超過128個字符。例如:
set hive.execution.engine=mr
。說明參數設置僅針對MaxCompute、Hive類型數據表的質量規則生效,其他類型的數據表引用該模板配置質量規則時會忽略該參數配置。
針對基于該模板創建的所有質量規則生效,您可以在預覽SQL中查看最終執行的SQL語句。
單擊預覽SQL,可查看規則模板的SQL預覽。
說明在模板中,若有較多配置字段未填寫,可用變量形式表示,如:${table1}、${column1}。
單擊確定,完成模板的創建。
查看規則模板列表
區域 | 描述 |
①篩選及搜索區 | 您可以根據模板的名稱模糊搜索,可以快捷篩選我負責的模板,也可以根據模板類型、模板來源、數據源類型、模板負責人進行精確篩選。 |
②列表區 | 為您展示規則模板的名稱、模板描述、模板類型、模板來源、模板負責人、更新時間、數據源類型信息。同時,不同類型的模板支持不同的操作。 自定義模板(Dataphin數據表、全域數據表):支持查看引用、編輯、添加質量規則、查看模板詳情、克隆、轉交、刪除操作。 系統模板(Dataphin數據表、全域數據表、指標):查看引用、編輯模板參數、添加質量規則操作。 系統模板(數據源、實時元表):支持查看引用、添加質量規則操作。
|
后續步驟
完成規則模板創建后,您可根據規則模板配置質量規則。更多信息,請參見創建質量規則。