數據質量支持按照數據表配置質量監控規則,用來監控表數據是否符合要求,自動攔截問題任務,阻斷臟數據向下游蔓延,保障產出的表數據符合預期。本文為您介紹如何配置表的質量監控規則并執行質量監控及其他相關操作。
前提條件
已采集引擎元數據。質量規則需基于引擎數據表進行配置,并作用于對應的表數據,因此,配置質量監控規則前,您需先采集元數據。詳情請參見元數據采集。
配置流程
按表配置質量規則主要流程如下:
選擇待配置規則校驗的表。
為表創建質量監控。
以校驗的表的具體數據范圍為對象(如分區表的具體分區),通過質量規則關聯質量監控的方式,定義對象數據需要進行哪些質量規則校驗。
可新建多個質量監控校驗同一張表的不同分區,每個質量監控關聯不同的質量規則,達到同一張表不同分區數據質量校驗邏輯不同的目的。
定義質量監控的觸發方式,即是否在調度節點運行時觸發規則校驗,還是需要手動觸發才會進行該表質量校驗。
定義何種情況下需要發送告警信息,您可根據數據校驗結果異常等級自行決定何種異常需要發送告警信息。當表數據變更自動進行數據質量規則校驗時,您可根據數據異常程度決定是否需要阻塞任務執行。
配置數據質量規則添加到質量監控中。
以質量監控中需要校驗的表為對象,定義該表數據質量校驗規則的校驗方式。通過數據質量規則定義對該表數據的具體校驗方式,從而確定該表數據是否符合預期。
數據質量監控規則包括基于模板創建的系統模板規則,以及可自定義SQL邏輯的自定義模板規則。其中:
測試及訂閱質量監控。
使用限制
當前僅支持為MaxCompute、E-MapReduce(簡稱EMR)、Hologres、AnalyticDB PostgreSQL、AnalyticDB MySQL數據源配置質量監控規則。并且,規則配置后,產出表數據的調度節點需要使用網絡已連通的資源組進行調度,才可正常觸發數據質量規則校驗。資源組的相關配置,詳情請參見新增和使用Serverless資源組。
動態閾值類規則需要有21天采樣記錄,若少于21天,動態閾值類規則會校驗異常。若無21天采樣記錄,您可在配置了動態閾值類規則且規則關聯調度任務后,通過補數據功能補齊21天采樣記錄。
操作步驟
步驟一:進入表質量詳情頁
進入數據質量頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入數據質量。
進入按表配置監控規則。
在左側導航欄,單擊
,進入按表配置規則頁面。左側數據源列表按需選擇待配置規則的表所在的數據庫。
根據數據庫類型、數據庫、表名等條件篩選,單擊目標表名或操作列的監控配置,進入該表的表質量詳情頁。
該頁面展示了當前表所有已配置的質量規則,您可通過規則是否已關聯質量監控來快速過濾目標規則,并對未關聯質量監控的規則定義規則運行方式。
步驟二:創建質量監控
新建質量監控。
您可以通過如下兩種方式新建質量監控:
規則管理頁
在表的表質量詳情頁,單擊規則管理頁簽。單擊質量監控視角后的,新建質量監控。
質量監控頁
在表的表質量詳情頁,切換到質量監控頁簽。單擊新建質量監控。
配置質量監控的相關參數。
參數說明:
配置項
參數
說明
基本配置
質量監控名稱
自定義監控規則名稱。
監控對象
數據質量校驗的對象,默認為當前表。
數據范圍
通過分區表達式定義該表需要進行質量規則校驗的分區。
非分區表:無需配置,默認為全表。
分區表:表達式格式:
分區名=分區值
,分區值可以是固定值,也可以是附錄二:內置分區表達式。
說明使用自定義模板、自定義SQL配置規則時,此處配置不生效。即使用自定義模板、自定義SQL配置的質量規則校驗的分區由自定義SQL決定。
運行設置
觸發方式
監控規則的運行方式。
生產調度觸發:通過關聯DataWorks運維中心中指定的周期調度任務,任務運行完成后,自動觸發該質量監控下的質量規則(空跑任務不會觸發質量規則校驗)。
手動觸發:手動觸發當前質量監控關聯的質量監控規則。
關聯調度節點
如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成后,自動觸發質量監控規則。
選擇運行資源
執行質量規則檢測所需的運行資源,默認選擇該工作空間下監控表所屬數據源。如選取其他數據源,需確認對應資源可對該表進行訪問。
質量問題處理策略
問題處置策略
配置在檢測到數據質量問題后,具體的阻塞或告警策略。
阻塞:當檢測到數據質量問題后,將識別觸發該表質量檢測的生產調度節點,并將該節點設置為失敗,下游節點將不執行,以此阻塞生產鏈路,以避免問題數據污染擴散。
默認為
強規則·紅色異常
。告警:當檢測到數據質量問題后,將對該質量監控的告警訂閱渠道發送告警信息。
默認為:
強規則·紅色異常
、強規則·橙色異常
、強規則·校驗失敗
、弱規則·紅色異常
、弱規則·橙色異常
、弱規則·校驗失敗
。
選擇質量規則
選擇質量規則
通過質量監控關聯質量規則的方式,確定通過哪些規則來校驗該表當前數據范圍是否符合預期。
說明不同分區可新建多個質量監控并關聯不同的質量規則進行校驗,以實現不同分區校驗規則不同的目的。
如果還未創建質量規則,本步驟可暫不添加,您可以先完成質量監控的創建,在后續創建質量規則時,將規則添加至質量監控中。質量規則的創建,詳情請參見步驟三:配置數據質量規則。
(可選)您可通過勾選訂閱質量告警(郵件)的方式,快速訂閱當前質量監控結果。
單擊保存。
步驟三:配置數據質量規則
在表質量詳情頁的規則管理頁簽,單擊新建規則,進入規則配置頁面。
創建數據質量規則。
數據質量提供以下方式配置質量監控規則,您可以按需選擇。
方式一:系統模板規則
數據質量內置幾十種監控規則,您可以根據需要從規則模板中快速創建質量監控規則。
說明您可以單擊頂部的+ 系統模板規則,然后修改規則模板參數調整到目標規則模板。
您也可以在左側找到需要的系統模板規則后,單擊+ 使用。
同時可以添加多個規則。
參數
描述
規則名稱
您可以自定義規則名稱。
規則模板
定義需要對表進行哪種類型規則校驗。
數據質量為您提供大量內置表級別、字段級別的監控模板可直接選擇。詳情請參見查看內置規則模板。
說明平均值、匯總值、最小值和最大值僅對數值型字段生效。
規則范圍
該規則應用的范圍,表級別規則默認為當前表,字段級別規則選擇具體字段。
比較方式
定義規則具體怎么校驗表數據是否符合預期。
手動設置:自定義數據產出結果與規則的比較方式。
不同規則模板,可選擇的比較方式不同,具體請以實際界面為準。
支持數值型結果對比,通常與固定值(即期望值)進行比較,比較方式包括大于、大于等于、等于、不等于、小于、小于等于。支持您自定義正常數據范圍(正常閾值)與異常數據范圍(紅色閾值)。
支持波動型結果對比,通常是進行范圍比較,比較方式包括絕對值、上升、下降。支持您自定義正常數據范圍(正常閾值),您還可以根據異常偏離程度定義數據產出存在異常(橙色閾值)與數據產出不符合預期(紅色閾值)。
智能動態閾值:您無需手動配置波動閾值或期望值,系統會根據智能算法,自動判斷合理閾值;若發現數據異常,會即時觸發告警或阻塞。動態閾值也可支持強、弱規則。
說明僅自定義SQL、自定義范圍、動態閾值類型的質量規則支持智能動態閾值比較方式。
監控閾值
當比較方式為手動設置時,您可以自行設置正常閾值與紅色閾值。
正常閾值:當數據質量規則校驗結果滿足此處設置的值時,說明數據校驗符合預期。
紅色閾值:當數據質量規則校驗結果滿足此處設置的值時,說明數據校驗不符合預期。
當規則為波動型校驗時,您需要指定橙色閾值。
橙色閾值:當數據質量規則校驗結果滿足此處設置的值時,說明數據存在異常但不影響業務運行。
保留問題數據
當規則為啟用狀態時,在本條數據質量監控規則校驗不通過的情況下,系統自動創建問題數據表存儲質量規則校驗過程中發現的問題數據。詳情請參見:管理問題數據。
重要目前僅支持MaxCompute表配置保留問題數據功能。
目前僅部分數據質量監控規則支持配置保留問題數據功能。支持保存問題數據的規則,詳情請參見:附錄:支持保留問題數據的規則列表與問題數據口徑。
受啟停狀態影響,若規則為停用狀態,則不執行保留問題數據。
啟用狀態
規則的啟用和停用狀態,用于控制該規則是否在生產環境中運行。
重要狀態設置為停用時,規則將無法觸發測試運行,并且不會被關聯的調度任務觸發運行。
重要程度
設置規則在業務中的強弱程度。
強規則:比較重要的規則,如果出現紅色異常,默認會阻塞質量監控關聯的調度任務的執行。
弱規則:普通規則,如果出現紅色異常,默認不會阻塞質量監控關聯的調度任務的執行。
描述
您可以對該規則進行補充說明。
方式二:自定義模板規則
說明在使用自定義模板創建規則之前,您需要先前往創建并管理自定義規則模板。
中創建自定義規則模板后才可使用。具體操作,請參見引用自定義模板時,將自動顯示該模板的基本配置(例如Flag參數,校驗SQL)等,您可以自定義規則名稱,并按照規則類型,配置監控閾值(例如數值型規則需要定義正常閾值、紅色閾值,此外,波動型規則還需要定義橙色閾值。)
此處僅展示自定義規則模板獨有參數,其他參數解釋,請參見系統規則模板參數說明。
配置項
說明
FLAG參數
用于定義需要在數據質量校驗SQL執行前提前執行的SET命令。
SQL
定義完整的SQL校驗邏輯,要求返回結果為一行一列,且結果為數值型。
自定義SQL中,請使用中括號的形式匹配表的分區表達式。示例如下:
select count(*) from ${tableName} where ds=$[yyyymmdd];
說明${tableName}
變量取值將根據實際監控的表動態替換。配置分區表達式,詳情請參見附錄二:內置分區表達式。
如果您為表創建了質量監控,則通過此方式配置規則后,質量監控中設置的數據范圍將不會生效。規則將以此處SQL語句中的WHERE為準,確認需要校驗的表分區。
方式三:自定義SQL
該方式支持您自定義該表的數據質量校驗邏輯。
此處僅展示自定義SQL獨有參數,其他參數解釋,請參見系統規則模板參數說明。
配置項
說明
FLAG參數
用于定義需要在數據質量校驗SQL執行前提前執行的SET命令。
SQL
定義完整的SQL校驗邏輯,要求返回結果為一行一列,且結果為數值型。
自定義SQL中,請使用中括號的形式匹配表的分區表達式。示例如下:
select count(*) from <table_name> where ds=$[yyyymmdd];
說明您需要在實際配置中將
<table_name>
替換為當前實際操作的表名,實際監控的表由此處SQL決定。配置分區表達式,詳情請參見附錄二:內置分區表達式。
如果您為表創建了質量監控,則通過此方式配置規則后,質量監控中設置的數據范圍將不會生效。規則將以此處SQL語句中的WHERE為準,確認需要校驗的表分區。
(可選)您可以將配置的規則添加到質量監控中,質量監控的更多信息,請參見步驟二:創建質量監控。
說明此處配置的質量規則,只有添加到質量監控中,才會被觸發,您可以在此處選擇已經創建的質量監控,或在配置質量監控時,在選擇質量規則步驟選擇此處配置的質量規則。
單擊確定。
步驟四:測試規則執行
您可以通過如下方式測試質量監控中規則的觸發情況。
規則管理頁簽測試運行
在規則管理頁簽的質量監控視角下,找到已創建的質量監控,然后單擊測試運行。
在測試運行對話框中,確認數據范圍、調度時間等參數后,單擊測試運行。當顯示啟動成功后,您可以單擊查看詳情,查看測試運行的具體結果。
質量監控頁簽測試運行
在質量監控頁簽,找到已創建的質量監控,然后單擊操作列的測試。
在測試運行對話框中,確認數據范圍、調度時間等參數后,單擊測試運行。當顯示啟動成功后,您可以單擊查看詳情,查看測試運行的具體結果。
步驟四: 訂閱質量監控
觸發規則后默認僅通知規則創建者,若您想通知其他用戶,您還需要為其他用戶訂閱質量監控,使報警可以通過指定方式通知給指定用戶。
您可以通過如下方式訂閱質量監控。
規則管理頁簽訂閱
在規則管理頁簽的質量監控視角下,找到已創建的質量監控,然后單擊
。在訂閱管理對話框中,添加訂閱方式和接受對象后,單擊操作列的保存。保存后,您可以再次添加其他訂閱方式。
訂閱方式包括郵件通知、郵件和短信通知、釘釘群機器人、釘釘群機器人@ALL、飛書群機器人、企業微信機器人、自定義Webhook和電話。
說明添加釘釘群、飛書群和企業微信機器人獲取Webhook地址后,復制Webhook地址至訂閱管理中即可。
僅DataWorks企業版版本支持使用自定義Webhook方式,DataWorks推送自定義Webhook的報警信息的消息格式請參見:附錄:Webhook消息格式。
質量監控頁簽訂閱
在質量監控頁簽,找到已創建的質量監控,然后單擊操作列的
。在訂閱管理對話框中,添加訂閱方式和接受對象后,單擊操作列的保存。保存后,您可以再次添加其他訂閱方式。
訂閱方式包括郵件通知、郵件和短信通知、釘釘群機器人、釘釘群機器人@ALL、飛書群機器人、企業微信機器人、自定義Webhook和電話。
說明添加釘釘群、飛書群和企業微信機器人獲取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,校驗調度日期前一個月的分區。