資料品質為您提供數十種預設表層級、欄位層級的監控模板。本文為您介紹如何按模板配置監控規則。
背景資訊
內建模板分為表級和欄位級的模板規則,支援您通過內建規則模板來快速為一批表大量建立資料品質規則。還支援您按表配置資料品質規則,詳情請參見配置規則:按表(單表)。
使用限制
按模板配置目前支援配置EMR(E-MapReduce)、Hologres、AnalyticDB for PostgreSQL、MaxCompute資料來源的監控規則。
進入按模板配置監控規則頁面
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料品質。
在左側導覽列選擇 ,進入按模板配置頁面。
資料品質提供系統內建的表級規則模板和欄位規則模板,您可以單擊對應模板後的配置監控規則來批量對錶或欄位配置監控規則。
配置監控規則
選擇需要進行規則配置的模板,單擊操作列的配置監控規則,進入該模板的批量新增監控規則頁面。
配置監控規則的基本屬性。
配置監控規則的基本屬性。
參數
描述
引擎/資料來源
選擇後續需要應用此監控規則的表所屬的計算引擎或資料來源類型。
說明按模板配置目前支援配置EMR(E-MapReduce)、Hologres、AnalyticDB for PostgreSQL、MaxCompute資料來源的監控規則。
規則來源
預設來源為內建模板。
規則模板
此處展示配置選擇的規則模板名稱。詳情請參見查看內建規則模板。
說明平均值、匯總值、最小值和最大值僅對數值型欄位生效。
規則名稱
規則名稱系統會自動產生,您可以按需調整名稱尾碼。
描述
對配置的監控規則進行簡單描述。
配置監控規則的詳細屬性。
參數
描述
強弱
設定強規則或弱規則:
如果設定強規則,紅色異常警示並阻塞下遊任務節點,橙色異常警示不阻塞。
如果設定弱規則,紅色異常警示不阻塞下遊任務節點,橙色異常不警示不阻塞。
比較方式
當模板的規則類型為數值型時,比較方式包括大於、大於等於、等於、不等於、小於、小於等於。
當模板的規則類型為波動率型時,比較方式包括絕對值、上升和下降。
期望值
當模板的規則類型為數值型時,您需要填寫期望值。當觸發規則校正時將資料探查結果與期望值進行比較。如果探索資料異常,便會觸發警示或阻塞。
波動值比較
當模板的規則類型為波動率型時,您可以設定橙色閾值和紅色閾值,對資料探查結果的波動率與指定時間內資料採樣結果的波動率進行比較。支援上升範圍、下降範圍或波動範圍(絕對值)的比較。
例如,假設規則為強規則,並且規則橙色閾值為5%,紅色閾值為10%。
當波動率大於5%且小於等於10%時,將觸發橙色警示,任務不會被阻塞,並且發送警示資訊。
當波動率大於10%時,將觸發紅色警示,任務將被阻塞,並且發送警示資訊。
啟停狀態
單擊開關按鈕啟用或停用規則,用於控制該規則是否在生產環境中運行。
重要狀態設定為停用時,規則將無法觸發試跑,並且不會被關聯的調度任務觸發運行。
單擊下一步,進入建置規則頁面。
根據您選擇的表級規則模板和欄位級規則模板,大量新增需要進行該規則校正的表或欄位,添加後,請為分區表配置分區運算式。分區運算式用於確定校正資料的採樣範圍。對於非分區表,系統會預設配置為NOTAPARTITIONTABLE。
添加表或欄位。
單擊添加表,在彈出的對話方塊中,選擇目標引擎/資料庫執行個體,列表中為您展示當前引擎/資料庫中的所有表資訊,您還可以輸入目標表名對結果進行過濾。選中需要配置監控規則的表添加至列表中。
單擊添加欄位,在彈出的對話方塊中,選擇目標引擎/資料庫執行個體,待添加表地區為您展示當前引擎/資料庫中的所有表資訊,選中要配置監控規則的欄位所在的表後,選擇欄位地區為您展示已添加表中的所有欄位資訊,支援您根據欄位名和欄位描述對結果進行過濾。選中需要配置監控規則的欄位後添加至建置規則頁面的列表中。
配置分區運算式。
單擊目標表名右側的按鈕,在彈出的大量設定分區運算式頁面輸入分區運算式,單擊確認。資料品質將通過表配置的分區運算式來匹配調度節點每天產出的表分區。如果您需要批量為表配置分區運算式,則可以單擊設定分區運算式按鈕為選中的表大量新增分區運算式。
單擊建置規則,進入規則驗證頁面。
您可以單擊自訂欄,按需自訂規則詳情表中需要顯示的內容。在規則驗證頁面您可以進行如下操作:
校正規則配置的合理性:試跑
規則建立完成後,您可以選擇單個或多個規則進行試跑,在彈出來的試跑對話方塊中選擇調度時間(類比給定校正被觸發的時間),系統會根據此時間以及設定的分區運算式,計算要驗證的表的具體分區取值。完成後單擊試跑,去校正該表該分區下的資料是否符合當前配置的資料品質校正規則。
試跑後您可以單擊操作列的試跑記錄,查看試跑狀態詳情,並進行相應的處理。
說明試跑錯誤的可能原因為:表或表分區不存在、表資料不符合品質校正規則。
定義警示接收人:訂閱管理
您可以單擊訂閱管理,選擇訂閱者式及接受對象,目前支援通過郵件通知、郵件和簡訊通知、DingTalk群機器人、DingTalk群機器人@ALL、飛書群機器人、企業微信機器人和自訂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 | 規則是否開啟。 |
後續步驟
完成後當您進行配置規則:按表(單表)品質監控規則的時候,即可查看已配置的模板規則詳情,並對該規則手動設定訂閱管理,目前支援通過郵件通知、郵件和簡訊通知、DingTalk群機器人、DingTalk群機器人@ALL、飛書群機器人、企業微信機器人和自訂Webhook,警示給指定接收人。
如果您需要在指定業務時間內,不符合品質校正規則的資料不阻塞任務運行,可以用去噪管理功能,詳情請參見:配置資料品質規則去噪。