配置規則:按模板(批量)
資料品質為您提供多種預設表層級、欄位層級的監控模板。本文為您介紹如何按模板配置監控規則。
使用限制
按模板配置目前支援配置MaxCompute、E-MapReduce、Hologres、CDH Hive、AnalyticDB PostgreSQL、AnalyticDB MySQL、StarRocks、MySQL、Lindorm、SQL Server、DLF資料來源的監控規則。
配置流程
按模板配置品質規則的主要流程如下:
-
內建模板分為表級和欄位級的模板規則,選擇模板後,以待校正的表為對象,定義該表資料品質校正規則的校正方式。通過資料品質規則定義對該表資料的具體校正方式,從而確定表資料是否符合預期。
-
選擇待批量校正的表或欄位,將規則模板應用到目標表或欄位上。
-
以校正的表的具體數據範圍為對象(如分區表的具體分區),通過品質規則關聯品質監控的方式,定義對象資料需要進行哪些品質規則校正。
操作步驟
一、進入按模板配置監控規則頁面
-
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇對應工作空間後單擊進入數據品質。
-
在左側導覽列選擇,進入按模板配置頁面。
資料品質提供系統內建的表級規則模板和字段級規則模板,您可以單擊對應模板後的配置監控規則來批量對錶或欄位配置監控規則。
按模板配置頁面頂部提供關鍵字搜尋、關聯範圍、品質維度三個篩選條件。系統內建的表級模板包括錶行數固定值、錶行數1天差值、錶行數1天波動率、錶行數7天波動率、錶行數30天波動率等多種時效性監控模板,模板描述列說明了各模板的基準值計算方式和對比邏輯。
二、配置監控規則詳細屬性
-
選擇需要批量應用於多張表或分區的模板,單擊操作列的配置監控規則,進入該模板的批量新增監控規則頁面。
-
配置監控規則的基本屬性。
參數
描述
資料來源類型
選擇後續需要應用此監控規則的表所屬的資料來源類型。
說明按模板配置目前支援配置MaxCompute、E-MapReduce、Hologres、CDH Hive、AnalyticDB PostgreSQL、AnalyticDB MySQL、StarRocks、MySQL、Lindorm、SQL Server、DLF資料來源的監控規則。
數據來源
固定顯示為內置模版和已選擇的規則模板,不可修改。更多內建規則模板, 請參見查看內建規則模板。
規則模版
規則名稱
規則名稱系統會自動產生,您可以按需調整名稱尾碼。
-
配置監控規則的進階屬性。
參數
描述
重要程度
設定規則在業務中的強弱程度。
-
強規則:比較重要的規則,如果出現紅色異常,預設會阻塞品質監控關聯的調度任務的執行。
-
弱規則:普通規則,如果出現紅色異常,預設不會阻塞品質監控關聯的調度任務的執行。
比較管道
定義規則具體怎麼校正表資料是否符合預期。
-
手動設置:自訂資料產出結果與規則的比較方式。
不同規則模板,可選擇的比較方式不同,具體請以實際介面為準。
-
支援數值型結果對比,通常與固定值(即期望值)進行比較,比較方式包括大於、大於等於、等於、不等於、小於、小於等於。支援您自訂正常資料範圍(正常閾值)與異常資料範圍(紅色閾值)。
-
支援波動型結果對比,通常是進行範圍比較,比較方式包括絕對值、上升、下降。支援您自訂正常資料範圍(正常閾值),您還可以根據異常偏離程度定義資料產出存在異常(橙色閾值)與資料產出不符合預期(紅色閾值)。
-
-
智能動態閾值:您無需手動設定波動閾值或期望值,系統會根據智能演算法,自動判斷合理閾值;若探索資料異常,會即時觸發警示或阻塞。動態閾值也可支援強、弱規則。
說明僅自訂SQL、自訂範圍、動態閾值類型的品質規則支援智能動態閾值比較方式。
監控閾值
-
當比較管道為手動設置時,您可以自行設定正常閾值與紅色閾值。
-
正常閾值:當資料品質規則校正結果滿足此處設定的值時,說明資料校正符合預期。
-
紅色閾值:當資料品質規則校正結果滿足此處設定的值時,說明資料校正不符合預期。
-
-
當規則為波動型校正時,您需要指定橙色閾值。
-
橙色閾值:當資料品質規則校正結果滿足此處設定的值時,說明資料存在異常但不影響業務運行。
-
啟用狀態
規則的啟用和停用狀態,用於控制該規則是否在生產環境中運行。
重要狀態設定為停用時,規則將無法觸發測試回合,並且不會被關聯的調度任務觸發運行。
-
-
單擊下一步,進入生成規則頁面。
三、大量新增需要規則校正的表或欄位
根據您選擇的表級規則模板或欄位級規則模板,大量新增需要進行該規則校正的表或欄位。
添加表
-
單擊添加表。在彈出的大量新增頁面中,選擇待配置規則的表。
說明列表中為您展示上一步基本屬性中配置的資料來源類型對應的所有表資訊,您還可以輸入目標表名對結果進行過濾。
-
選中需要配置監控規則的表後,單擊確定,將其添加至待配置規則表的列表中。
添加欄位
-
單擊加入欄位。在彈出的選擇字段對話方塊中,選擇待配置監控規則的目標欄位所在的表。
說明待選擇表地區會展示上一步基本屬性中配置的資料來源類型對應的所有表資訊。
-
選中要配置監控規則的欄位所在的表後,選擇字段地區為您展示已選擇表中的所有欄位資訊,支援您根據字段名和字段描述對結果進行過濾。
例如,在左側待選擇表中勾選
ods_user_info_d(使用者行為分析案例-使用者基本資料表),右側展示該表的欄位列表,勾選需要的欄位(uid、dt、gender、age_range、zodiac),然後單擊添加。 -
選中需要配置監控規則的欄位後,單擊添加,將其添加至待配置規則欄位的列表中。
四、建立或關聯品質監控
以校正的表的具體資料範圍為對象(如分區表的具體分區),通過品質規則關聯品質監控的方式,定義對象資料需要進行哪些品質規則校正。
你可以單獨配置或大量設定。
大量設定
-
選擇多個待添加規則的表或欄位後,單擊設置質檢任務。
-
支援批量自動關聯、批量取消關聯和批量快速新增。
-
自動關聯:選中的表或欄位會自動關聯已有的品質監控。
-
取消關聯:選中的表或欄位會取消已關聯的品質監控。
-
批量快速新增:為已選擇的表配置品質監控的資料範圍和回合設定。
配置項
說明
數據範圍
分區表
通過分區運算式定義該表需要進行品質規則校正的分區。
-
非分區表:預設為全表,您可以按WHERE條件設定範圍。
-
分區表:運算式格式:
分區名=分區值,分區值可以是固定值,也可以是。
運行設置
觸發方式
品質監控的觸發方式。
-
生產調度觸發:通過關聯DataWorks營運中心中指定的周期調度任務,任務運行完成後,自動觸發該品質監控下的品質規則(空跑任務不會觸發品質規則校正)。
-
手動觸發:手動觸發當前品質監控關聯的品質監控規則。
重要如果您的品質監控校正的表為非MaxCompute表,且觸發方式選擇了生產調度觸發,則選擇的周期調度任務不能使用公用調度資源群組,否則品質監控執行時將會報錯。
關聯調度節點
如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成後,自動觸發品質監控規則。
選擇運行資源
執行品質規則檢測所需的運行資源,預設選擇該工作空間下監控表所屬資料來源。如選取其他資料來源,需確認對應資源可對該表進行訪問。
-
-
單表配置
-
在目標表名或欄位右側的質檢任務列,您可以為品質規則關聯品質監控任務,支援選擇已有的品質監控任務或新建質量監控任務。
-
如果沒有品質監控任務,您可以單擊新建質量監控。配置如下參數:
配置項
參數
說明
基本配置
質量監控名稱
自訂監控規則名稱。
質量監控負責人
按需指定該品質監控的責任人,在配置警示訂閱時,可通過郵件通知、郵件和簡訊通知、電話方式,指定警示接收人為品質監控負責人。
質量監控對象
資料品質校正的對象,預設為當前表。
數據範圍
通過分區運算式定義該表需要進行品質規則校正的分區。
-
非分區表:無需配置,預設為全表。
-
分區表:運算式格式:
分區名=分區值,分區值可以是固定值,也可以是。
說明使用自訂模板、自訂SQL配置規則時,此處配置不生效。使用自訂模板、自訂SQL配置的品質規則校正的分區由自訂SQL決定。
選擇質量規則
選擇質量規則
通過品質監控關聯品質規則的方式,確定通過哪些規則來校正該表當前資料範圍是否符合預期。
說明-
不同分區可建立多個品質監控並關聯不同的品質規則進行校正,以實現不同分區校正規則不同的目的。
-
如果還未建立品質規則,本步驟可暫不添加,您可以先完成品質監控的建立,在後續建立品質規則時,將規則添加至品質監控中。品質規則的建立,詳情請參見。
運行設置
觸發方式
品質監控的觸發方式。
-
生產調度觸發:通過關聯DataWorks營運中心中指定的周期調度任務,任務運行完成後,自動觸發該品質監控下的品質規則(空跑任務不會觸發品質規則校正)。
-
手動觸發:手動觸發當前品質監控關聯的品質監控規則。
重要如果您的品質監控校正的表為非MaxCompute表,且觸發方式選擇了生產調度觸發,則選擇的周期調度任務不能使用公用調度資源群組,否則品質監控執行時將會報錯。
關聯調度節點
如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成後,自動觸發品質監控規則。
選擇運行資源
執行品質規則檢測所需的運行資源,預設選擇該工作空間下監控表所屬資料來源。如選取其他資料來源,需確認對應資源可對該表進行訪問。
質量問題處理策略
異常處理策略
配置在檢測到資料品質問題後,具體的阻塞或警示策略。
-
告警:當檢測到資料品質問題後,將對該品質監控的警示訂閱渠道發送警示資訊。
預設為:
強規則·紅色異常、強規則·橙色異常、強規則·校正失敗、弱規則·紅色異常、弱規則·橙色異常、弱規則·校正失敗。 -
阻塞:當檢測到資料品質問題後,將識別觸發該表品質檢測的生產調度節點,並將該節點設定為失敗,下遊節點將不執行,以此阻塞生產鏈路,以避免問題資料汙染擴散。
預設為
強規則·紅色異常。重要策略配置為阻塞時,當命中資料品質規則後將同時觸發警示。
告警方式配置
支援通過郵件通知、郵件和簡訊通知、DingTalk群機器人、DingTalk群機器人@ALL、飛書群機器人、企業微信機器人、自定義Webhook、電話等方式發送警示資訊。
說明-
添加DingTalk群、飛書群和企業微信機器人擷取WebHook地址後,複製WebHook地址至警示訂閱中即可。
-
僅DataWorks企業版版本支援使用自定義Webhook方式,DataWorks推送自定義Webhook的警示資訊的訊息格式請參見:附錄:Webhook訊息格式。
-
當選擇訂閱者式為郵件通知、郵件和簡訊通知、電話時,支援指定授权对象為數據質量監控負責人、值班表或調度任務責任人。
-
數據質量監控負責人:警示資訊將發送到當前品質監控基本配置部分設定的質量監控負責人。
-
值班表:當品質監控關聯節點觸發品質規則校正警示時,系統將會發送警示資訊給值班表內的當天值班人員。
-
調度任務責任人:警示資訊將發送給品質監控關聯調度節點的負責人。
-
-
-
回到批量新增監控規則配置步驟中,單擊重新整理,然後在質檢任務列下拉選擇已建立好的品質監控。
步驟五:測試規則執行
-
單擊生成規則,進入規則驗證頁面。在規則驗證頁面您可以進行如下操作:
-
測試運行:校正規則配置的合理性。
規則建立完成後,您可以選擇單個或多個規則進行測試運行,在彈出的測試運行對話方塊中選擇調度時間(類比給定校正被觸發的時間)和資源群組,系統會根據此時間以及數據範圍,計算要驗證的表的具體分區取值。完成後單擊測試運行,以校正該表該分區下的資料是否符合當前配置的資料品質校正規則。
測試回合後,您可以單擊操作列的運行記錄,查看測試回合的詳情,並進行相應的處理。
-
訂閱管理:定義警示接收人。
支援通過郵件通知、郵件和簡訊通知、DingTalk群機器人、DingTalk群機器人@ALL、飛書群機器人、企業微信機器人、自定義Webhook、電話等方式發送警示資訊。
說明-
添加DingTalk群、飛書群和企業微信機器人擷取WebHook地址後,複製WebHook地址至警示訂閱中即可。
-
僅DataWorks企業版版本支援使用自定義Webhook方式,DataWorks推送自定義Webhook的警示資訊的訊息格式請參見:附錄:Webhook訊息格式。
-
當選擇訂閱者式為郵件通知、郵件和簡訊通知、電話時,支援指定授权对象為數據質量監控負責人、值班表或調度任務責任人。
-
數據質量監控負責人:警示資訊將發送到當前品質監控基本配置部分設定的質量監控負責人。
-
值班表:當品質監控關聯節點觸發品質規則校正警示時,系統將會發送警示資訊給值班表內的當天值班人員。
-
調度任務責任人:警示資訊將發送給品質監控關聯調度節點的負責人。
-
-
-
關聯調度:定義規則引發方式。
您可以單擊推薦設置運行方式或手動設置運行方式,為單個或多個資料品質規則關聯產出表資料的調度節點(營運中心中產出表資料的節點,包括自動調度的周期執行個體,手動觸發的補資料執行個體,測試執行個體),當節點任務執行時便會觸發該資料品質規則校正,您可以設定規則的強弱來控制節點是否失敗退出,從而避免髒資料影響擴大。
-
推薦設定運行方式:系統會根據產出該表的節點血緣關係選中的規則自動關聯推薦的調度節點。
-
手動設定運行方式:您可以為選中的規則手動關聯指定的調度節點。
重要必須關聯相應的調度節點,規則才會被自動觸發運行。
在關聯調度對話方塊中,從工作空間下拉框選擇目標工作空間,從任務節點下拉框選擇需要關聯的調度節點,單擊添加將其加入關聯列表,確認後單擊確定完成關聯。
-
-
刪除:您可以選擇單個或多個規則進行刪除。
-
規則詳情:您可以單擊操作列的規則詳情,查看規則詳情,並對規則進行修改、啟停、刪除、設定規則強弱、查看日誌等操作。
-
-
測試回合成功且關聯調度後,單擊保存運行方式。
後續步驟
品質監控運行後,您可以在左側導覽列的質量運維目錄下,單擊質檢任務和運行記錄,查看指定表的品質校正情況,以及完整的品質規則校正記錄。
附錄:Webhook訊息格式
DataWorks推送自定義Webhook的警示資訊的訊息格式及參數說明如下所示:
訊息樣本
{
"detailUrl": "https://dqc-cn-zhangjiakou.data.aliyun.com/?defaultProjectId=3058#/jobDetail?envType=ODPS&projectName=yongxunQA_zhangbei_standard&tableName=sx_up_001&entityId=10878&taskId=16876941111958fa4ce0e0b5746379cd9bc67999d05f8&bizDate=1687536000000&executeTime=1687694111000",
"datasourceName": "emr_test_01",
"engineTypeName": "EMR",
"projectName": "線上迴歸專案",
"dqcEntityQuality": {
"entityName": "tb_auto_test",
"actualExpression": "ds=20230625",
"strongRuleAlarmNum": 1,
"weakRuleAlarmNum": 0
},
"ruleChecks": [
{
"blockType": 0,
"warningThreshold": 0.1,
"property": "id",
"tableName": "tb_auto_test",
"comment": "測試規則",
"checkResultStatus": 2,
"templateName": "欄位唯一值個數期望值校正",
"checkerName": "fulx",
"ruleId": 123421,
"fixedCheck": false,
"op": "",
"upperValue": 22200,
"actualExpression": "ds=20230625",
"externalId": "123112232",
"timeCost": "10",
"trend": "up",
"externalType": "CWF2",
"bizDate": 1600704000000,
"checkResult": 2,
"matchExpression": "ds=$[yyyymmdd]",
"checkerType": 0,
"projectName": "auto_test",
"beginTime": 1600704000000,
"dateType": "YMD",
"criticalThreshold": "0.6",
"isPrediction": false,
"ruleName": "規則的名稱",
"checkerId": 7,
"discreteCheck": true,
"endTime": 1600704000000,
"MethodName": "max",
"lowerValue": 2344,
"entityId": 12142421,
"whereCondition": "type!='type2'",
"expectValue": 90,
"templateId": 5,
"taskId": "16008552981681a0d6",
"id": 234241453,
"open": true,
"referenceValue": [
{
"discreteProperty": "type1",
"value": 20,
"bizDate": "1600704000000",
"singleCheckResult": 2,
"threshold": 0.2
}
],
"sampleValue": [
{
"discreteProperty": "type2",
"bizDate": "1600704000000",
"value": 23
}
]
}
]
}
參數說明
|
名稱 |
類型 |
樣本值 |
描述 |
|
ProjectName |
String |
autotest |
需要進行資料品質校正的引擎或者資料來源名稱。 |
|
actualExpression |
String |
ds=20200925 |
被校正的資料來源表的實際分區。 |
|
RuleChecks |
Array of RuleChecks |
校正結果的列表。 |
|
|
BlockType |
Integer |
1 |
校正規則的強弱。強弱表示規則的重要程度。取值如下:
|
|
WarningThreshold |
Float |
0.1 |
橙色閾值。表示與樣本預期的偏離程度,您可以根據業務需求自訂該閾值。 |
|
Property |
String |
type |
規則屬性的欄位,即被校正資料來源表的column名稱。 |
|
TableName |
String |
dual |
進行校正的表名稱。 |
|
Comment |
String |
規則的描述資訊。 |
校正規則的描述。 |
|
CheckResultStatus |
Integer |
2 |
校正結果狀態。 |
|
TemplateName |
String |
欄位唯一值個數期望值校正 |
使用的校正模板的名稱。 |
|
CheckerName |
String |
fulx |
校正器的名稱。 |
|
RuleId |
Long |
123421 |
規則ID。 |
|
FixedCheck |
Boolean |
false |
是否為固定值校正。取值如下:
|
|
Op |
String |
> |
比較符。 |
|
UpperValue |
Float |
22200 |
預測上限。設定閾值後自動產生。 |
|
ActualExpression |
String |
ds=20200925 |
被校正的資料來源表的實際分區。 |
|
ExternalId |
String |
123112232 |
調度任務的節點ID。 |
|
TimeCost |
String |
10 |
執行校正任務花費的時間。 |
|
Trend |
String |
up |
校正結果的趨勢。 |
|
ExternalType |
String |
CWF2 |
調度系統的類型。目前僅支援CWF。 |
|
BizDate |
Long |
1600704000000 |
業務日期。如果被校正的業務主體為離線資料,則業務日期通常為執行校正操作的前一天。 |
|
CheckResult |
Integer |
2 |
校正結果。 |
|
MatchExpression |
String |
ds=$[yyyymmdd] |
分區運算式。 |
|
CheckerType |
Integer |
0 |
校正器的類型。 |
|
ProjectName |
String |
autotest |
需要進行資料品質校正的引擎或者資料來源名稱。 |
|
BeginTime |
Long |
1600704000000 |
執行校正操作的開始時間。 |
|
DateType |
String |
YMD |
調度周期的類型。通常為YMD,即年任務、月任務、天任務。 |
|
CriticalThreshold |
Float |
0.6 |
紅色閾值。表示與樣本預期的偏離程度。您可以根據業務需求自訂該閾值。使用強規則並觸發紅色閾值,會阻塞調度任務。 |
|
IsPrediction |
Boolean |
false |
是否為預測的結果。取值如下:
|
|
RuleName |
String |
規則的名稱。 |
規則的名稱。 |
|
CheckerId |
Integer |
7 |
校正器的ID。 |
|
DiscreteCheck |
Boolean |
true |
是否為離散校正。取值如下:
|
|
EndTime |
Long |
1600704000000 |
查詢校正結果的截止時間。 |
|
MethodName |
String |
max |
採集樣本資料的方法包括avg、count、sum、min、max、count_distinct、user_defined、table_count、table_size、table_dt_load_count、table_dt_refuseload_count、null_value、null_value/table_count、(table_count-count_distinct)/table_count、table_count-count_distinct等。 |
|
LowerValue |
Float |
2344 |
預測下限。根據您設定的閾值自動產生。 |
|
EntityId |
Long |
14534343 |
分區運算式ID。 |
|
WhereCondition |
String |
type!='type2' |
校正任務使用的過濾條件。 |
|
ExpectValue |
Float |
90 |
期望值。 |
|
TemplateId |
Integer |
5 |
使用的校正模板的ID。 |
|
TaskId |
String |
16008552981681a0d6**** |
校正任務的ID。 |
|
Id |
Long |
2231123 |
主鍵ID。 |
|
ReferenceValue |
Array of ReferenceValue |
歷史樣本值。 |
|
|
DiscreteProperty |
String |
type1 |
通過group by分組後的樣本欄位取值。例如group by性別欄位,則DiscreteProperty為男生、女生和null。 |
|
Value |
Float |
20 |
樣本值。 |
|
BizDate |
String |
1600704000000 |
業務日期。如果被校正的業務主體為離線資料,則業務日期通常為執行校正操作的前一天。 |
|
SingleCheckResult |
Integer |
2 |
校正結果的字串。 |
|
Threshold |
Float |
0.2 |
閾值。 |
|
SampleValue |
Array of SampleValue |
當前使用的樣本。 |
|
|
DiscreteProperty |
String |
type2 |
通過group by分組後的樣本欄位取值。例如group by性別欄位,則DiscreteProperty為男生、女生和null。 |
|
BizDate |
String |
1600704000000 |
業務日期。如果被校正的業務主體為離線資料,則業務日期通常為執行校正操作的前一天。 |
|
Value |
Float |
23 |
樣本值。 |
|
Open |
Boolean |
true |
規則是否開啟。 |