資料品質支援按照資料表配置品質監控規則,用來監控表資料是否符合要求,自動攔截問題任務,阻斷髒資料向下遊蔓延,保障產出的表資料符合預期。本文為您介紹如何配置表的品質監控規則並執行品質監控及其他相關操作。
前提條件
已採集引擎中繼資料。品質規則需基於引擎資料表進行配置,並作用於對應的表資料,因此,配置品質監控規則前,您需先採集中繼資料。詳情請參見中繼資料採集。
配置流程
按表配置品質規則主要流程如下:
選擇待配置規則校正的表。
為表建立品質監控。
以校正的表的具體資料範圍為對象(如分區表的具體分區),通過品質規則關聯品質監控的方式,定義對象資料需要進行哪些品質規則校正。
可建立多個品質監控校正同一張表的不同分區,每個品質監控關聯不同的品質規則,達到同一張表不同分區資料品質校正邏輯不同的目的。
定義品質監控的觸發方式,即是否在調度節點運行時觸發規則校正,還是需要手動觸發才會進行該表品質校正。
定義何種情況下需要發送警示資訊,您可根據資料校正結果異常等級自行決定何種異常需要發送警示資訊。當表資料變更自動進行資料品質規則校正時,您可根據資料異常程度決定是否需要阻塞任務執行。
配置資料品質規則添加到品質監控中。
以品質監控中需要校正的表為對象,定義該表資料品質校正規則的校正方式。通過資料品質規則定義對該表資料的具體校正方式,從而確定該表資料是否符合預期。
資料品質監控規則包括基於模板建立的系統模板規則,以及可自訂SQL邏輯的自訂模板規則。其中:
測試及訂閱品質監控。
使用限制
當前僅支援為MaxCompute、E-MapReduce(簡稱EMR)、Hologres、AnalyticDB PostgreSQL、AnalyticDB MySQL資料來源配置品質監控規則。並且,規則配置後,產出表資料的調度節點需要使用網路已連通的資源群組進行調度,才可正常觸發資料品質規則校正。資源群組的相關配置,詳情請參見新增和使用Serverless資源群組。
動態閾值類規則需要有21天採樣記錄,若少於21天,動態閾值類規則會校正異常。若無21天採樣記錄,您可在配置了動態閾值類規則且規則關聯調度任務後,通過補資料功能補齊21天採樣記錄。
操作步驟
步驟一:進入表品質詳情頁
進入資料品質頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料品質。
進入按表配置監控規則。
在左側導覽列,單擊
,進入按表配置規則頁面。左側資料來源列表按需選擇待配置規則的表所在的資料庫。
根據資料庫類型、資料庫、表名等條件式篩選,單擊目標表名或操作列的監控配置,進入該表的表品質詳情頁。
該頁面展示了當前表所有已配置的品質規則,您可通過規則是否已關聯品質監控來快速過濾目標規則,並對未關聯品質監控的規則定義規則運行方式。
步驟二:建立品質監控
建立品質監控。
您可以通過如下兩種方式建立品質監控:
規則管理頁
在表的表品質詳情頁,單擊規則管理頁簽。單擊品質監控視角後的,建立品質監控。
品質監控頁
在表的表品質詳情頁,切換到品質監控頁簽。單擊建立品質監控。
配置品質監控的相關參數。
參數說明:
配置項
參數
說明
基本配置
品質監控名稱
自訂監控規則名稱。
監控對象
資料品質校正的對象,預設為當前表。
資料範圍
通過分區運算式定義該表需要進行品質規則校正的分區。
非分區表:無需配置,預設為全表。
分區表:運算式格式:
分區名=分區值
,分區值可以是固定值,也可以是附錄二:內建分區運算式。
說明使用自訂模板、自訂SQL配置規則時,此處配置不生效。即使用自訂模板、自訂SQL配置的品質規則校正的分區由自訂SQL決定。
回合設定
觸發方式
監控規則的運行方式。
生產調度觸發:通過關聯DataWorks營運中心中指定的周期調度任務,任務運行完成後,自動觸發該品質監控下的品質規則(空跑任務不會觸發品質規則校正)。
手動觸發:手動觸發當前品質監控關聯的品質監控規則。
關聯調度節點
如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成後,自動觸發品質監控規則。
選擇運行資源
執行品質規則檢測所需的運行資源,預設選擇該工作空間下監控表所屬資料來源。如選取其他資料來源,需確認對應資源可對該表進行訪問。
品質問題處理策略
問題處置策略
配置在檢測到資料品質問題後,具體的阻塞或警示策略。
阻塞:當檢測到資料品質問題後,將識別觸發該表品質檢測的生產調度節點,並將該節點設定為失敗,下遊節點將不執行,以此阻塞生產鏈路,以避免問題資料汙染擴散。
預設為
強規則·紅色異常
。警示:當檢測到資料品質問題後,將對該品質監控的警示訂閱渠道發送警示資訊。
預設為:
強規則·紅色異常
、強規則·橙色異常
、強規則·校正失敗
、弱規則·紅色異常
、弱規則·橙色異常
、弱規則·校正失敗
。
選擇品質規則
選擇品質規則
通過品質監控關聯品質規則的方式,確定通過哪些規則來校正該表當前資料範圍是否符合預期。
說明不同分區可建立多個品質監控並關聯不同的品質規則進行校正,以實現不同分區校正規則不同的目的。
如果還未建立品質規則,本步驟可暫不添加,您可以先完成品質監控的建立,在後續建立品質規則時,將規則添加至品質監控中。品質規則的建立,詳情請參見步驟三:配置資料品質規則。
(可選)您可通過勾選訂閱品質警示(郵件)的方式,快速訂閱當前品質監控結果。
單擊儲存。
步驟三:配置資料品質規則
在表品質詳情頁的規則管理頁簽,單擊建立規則,進入規則配置頁面。
建立資料品質規則。
資料品質提供以下方式配置品質監控規則,您可以按需選擇。
方式一:系統模板規則
資料品質內建幾十種監控規則,您可以根據需要從規則模板中快速建立品質監控規則。
說明您可以單擊頂部的+ 系統模板規則,然後修改規則模板參數調整到目標規則模板。
您也可以在左側找到需要的系統模板規則後,單擊+ 使用。
同時可以添加多個規則。
方式二:自訂模板規則
說明在使用自訂模板建立規則之前,您需要先前往建立並管理自訂規則模板。
中建立自訂規則模板後才可使用。具體操作,請參見引用自訂模板時,將自動顯示該模板的基本配置(例如Flag參數,校正SQL)等,您可以自訂規則名稱,並按照規則類型,配置監控閾值(例如數值型規則需要定義正常閾值、紅色閾值,此外,波動型規則還需要定義橙色閾值。)
方式三:自訂SQL
該方式支援您自訂該表的資料品質校正邏輯。
(可選)您可以將配置的規則添加到品質監控中,品質監控的更多資訊,請參見步驟二:建立品質監控。
說明此處配置的品質規則,只有添加到品質監控中,才會被觸發,您可以在此處選擇已經建立的品質監控,或在配置品質監控時,在選擇品質規則步驟選擇此處配置的品質規則。
單擊確定。
步驟四:測試規則執行
您可以通過如下方式測試品質監控中規則的觸發情況。
規則管理頁簽測試回合
在規則管理頁簽的品質監控視角下,找到已建立的品質監控,然後單擊測試回合。
在測試回合對話方塊中,確認資料範圍、調度時間等參數後,單擊測試回合。當顯示啟動成功後,您可以單擊查看詳情,查看測試回合的具體結果。
品質監控頁簽測試回合
在品質監控頁簽,找到已建立的品質監控,然後單擊操作列的測試。
在測試回合對話方塊中,確認資料範圍、調度時間等參數後,單擊測試回合。當顯示啟動成功後,您可以單擊查看詳情,查看測試回合的具體結果。
步驟四: 訂閱品質監控
觸發規則後預設僅通知規則建立者,若您想通知其他使用者,您還需要為其他使用者訂閱品質監控,使警示可以通過指定方式通知給指定使用者。
您可以通過如下方式訂閱品質監控。
規則管理頁簽訂閱
在規則管理頁簽的品質監控視角下,找到已建立的品質監控,然後單擊
。在訂閱管理對話方塊中,添加訂閱者式和接受對象後,單擊操作列的儲存。儲存後,您可以再次添加其他訂閱者式。
訂閱者式包括郵件通知、郵件和簡訊通知、DingTalk群機器人、DingTalk群機器人@ALL、飛書群機器人、企業微信機器人、自訂Webhook和電話。
說明添加DingTalk群、飛書群和企業微信機器人擷取Webhook地址後,複製Webhook地址至訂閱管理中即可。
僅DataWorks企業版版本支援使用自訂Webhook方式,DataWorks推送自訂Webhook的警示資訊的訊息格式請參見:附錄:Webhook訊息格式。
品質監控頁簽訂閱
在品質監控頁簽,找到已建立的品質監控,然後單擊操作列的
。在訂閱管理對話方塊中,添加訂閱者式和接受對象後,單擊操作列的儲存。儲存後,您可以再次添加其他訂閱者式。
訂閱者式包括郵件通知、郵件和簡訊通知、DingTalk群機器人、DingTalk群機器人@ALL、飛書群機器人、企業微信機器人、自訂Webhook和電話。
說明添加DingTalk群、飛書群和企業微信機器人擷取Webhook地址後,複製Webhook地址至訂閱管理中即可。
僅DataWorks企業版版本支援使用自訂Webhook方式,DataWorks推送自訂Webhook的警示資訊的訊息格式請參見:附錄:Webhook訊息格式。
後續步驟
品質監控運行後,您可以在左側導覽列的品質營運目錄下,單擊品質監控和運行記錄,查看指定表的品質校正情況,以及完整的品質規則校正記錄。
附錄
附錄一:波動率與方差計算公式
波動率計算公式:
波動率 = (樣本 - 基準值) / 基準值
樣本:當天採集的具體的樣本的值。例如對於SQL任務錶行數,1天波動檢測,則樣本是當天分區的錶行數。
基準值:歷史樣本的對比值。
說明如果規則是SQL任務
錶行數,1天波動率
檢測,則基準值是前一天分區產生的錶行數。如果規則是SQL任務
錶行數,7天平均值波動率
檢測,則基準值是前7天的錶行資料的平均值。
方差波動計算公式:
(當次樣本 - 歷史N天平均值) / 標準差
說明僅BIGINT和DOUBLE等數實值型別可以使用方差。
附錄二:內建分區運算式
$[yyyymmdd-1]
分區為按日分區,需要校正業務日期分區資料。
$[yyyymmdd-1]/hour=$[hh24]
分區為二級分區,需要校正調度當日分區的所有二級分區。
$[yyyymmdd]
分區是按日分區,需要校正調度當日分區資料。
$[yyyymmddhh24miss]
分區帶有24進位時間資訊,例如:20211216174847,校正bizdate當日某時間分區資料。
$[yyyymmddhh24miss-1/24]
分區帶有24進位時間資訊,例如:20211216174847,校正bizdate當日某時間的前一小時分區資料。
$[yyyymmdd]000000
分區為每日0時,例如:20211216000000,校正bizdate當日的0點分區的資料。
$[yyyymmdd-7]
分區為按日分區,例如:20211216,校正調度日期前7日(一周前)的分區。
$[hh24miss-1/24]
分區為小時分區,例如:180000,校正調度時間前一小時的分區。
$[hh24miss-30/24/60]
分區為小時分區,例如180000,校正調度前30分鐘的分區。
$[add_months(yyyymmdd,-1)]
分區為按日分區,例如:20211208,校正調度日期前一個月的分區。