資料品質支援按照資料表配置品質監控規則,用來監控表資料是否符合要求,自動攔截問題任務,阻斷髒資料向下遊蔓延,保障產出的表資料符合預期。規則配置完成後,您可先試跑該規則,確保品質規則的配置符合預期。同時,還可對品質規則執行訂閱、複製、查看分區動作記錄、查看上一次校正結果等管理操作。本文為您介紹如何配置表的品質監控規則並進行相關管理操作。
背景資訊
資料品質監控規則包括基於模板建立的模板規則,及可⾃定義SQL邏輯的自訂規則。其中:
模板規則:可通過DataWorks提供的43種內建規則建立,也可通過您自我維護的規則模板(即您可將常用的自訂規則固化為規則模板,便於後續快速複用)建立。
自訂規則:若模板規則無法滿足您對分區運算式中資料品質的監控需求,則可使用自訂規則。
通常,資料表的內容較多且繁雜,為避免全表掃描,兩類規則均是基於分區運算式建立,用於監控指定分區的表資料情況。因此,建立規則前,您需先建立分區運算式。規則建立後,您還可根據需要執行相關規則管理操作,詳情請參見管理規則。
前提條件
已採集引擎中繼資料。品質規則需基於引擎資料表進行配置,並作用於對應的表資料,因此,配置品質監控規則前,您需先採集中繼資料。詳情請參見中繼資料採集。
使用限制
當前僅支援手動設定規則,不支援自動落標規則。
當前僅支援為MaxCompute、E-MapReduce(簡稱EMR)、Hologres、AnalyticDB for PostgreSQL、CDH等資料來源配置品質監控規則。並且,規則配置後,產出表資料的調度節點需要使用網路已連通的獨享調度資源群組進行調度,才可正常觸發資料品質規則校正。獨享調度資源群組的相關配置,詳情請參見新增和使用獨享調度資源群組。
動態閾值類規則需要有21天採樣記錄,若少於21天,動態閾值類規則會校正異常。若無21天採樣記錄,您可在配置了動態閾值類規則且規則關聯調度任務後,通過補資料功能補齊21天採樣記錄。
進入按表配置監控規則頁面
進入資料品質頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料品質。
進入按表配置監控規則。
在左側導覽列,單擊
,進入按表配置規則頁面。左側資料來源列表為您展示當前工作空間下所有在資料開發中繫結資料源,您可以選擇表所在資料來源。
根據引擎、表名等條件進行篩選,單擊目標表後監控配置,進入該表的規則配置介面。
建立分區運算式
通常,資料表的內容較多較雜,為避免全表掃描,資料品質基於分區運算式來配置品質監控規則,用於監控指定分區的表資料情況。配置規則前,您需在表的規則配置介面,按照如下步驟建立分區運算式。
若規則監控的對象為非分區表,則可配置分區運算式為NOTAPARTITIONTABLE。
若規則監控的對象為分區表,則可配置分區運算式為業務日期格式的分區運算式。例如,dt=$[yyyymmdd]。
不同類型分區運算式的格式及說明如下。
分區運算式類型 | 分區運算式格式 | 說明 |
一級分區運算式 | 分區名=分區值 | 分區值可以是固定值,也可以是內建參數運算式。 |
多級分區運算式 | 1級分區名=分區值/2級分區名=分區值/N級分區名=分區值 | 分區值可以是固定值,也可以是內建參數運算式。參數必須使用中括弧表示,例如,$[yyyymmdd-N]。分區表必須配置到最後一級分區。 |
DataWorks為您提供了部分內建的業務日期格式分區運算式,可直接使用。若內建運算式無法滿足您的需要,則可根據需要輸入自訂運算式。更多時間業務日期分區運算式,詳情請參見調度參數支援的格式。內建的業務日期格式分區運算式如下表。
資料品質規則中,分區運算式不支援使用大括弧相關格式。例如,${yyyymmdd-1}。
分區運算式 | 描述 |
dt=$[yyyymmdd] | 表示擷取定時時間。 |
dt=$[yyyymmdd-1] | 表示擷取業務日期。 |
dt=$[yyyymmddhh24miss] | 表示擷取定時時間。精確到秒。 |
dt=$[yyyymmddhh24miss-1/24] | 表示擷取定時時間的前一小時。精確到秒。 |
dt=$[yyyymmdd]000000 | 表示擷取整點定時時間。 |
dt=$[yyyymmdd-7] | 表示擷取一周前。精確到天。 |
dt=$[hh24miss-1/24] | 表示擷取一小時前。 |
dt=$[hh24miss-30/24/60] | 表示擷取半小時前。 |
dt=$[add_months(yyyymmdd,-1)] | 表示擷取上個月今天的日期。精確到天。 |
NOTAPARTITIONTABLE | 非分區表可選擇該分區運算式。 |
配置分區運算式後,單擊計算,資料品質會以目前時間作為調度時間,計算出分區運算式的實際結果,用來驗證分區運算式是否正確。運算式建立完成後,您可基於該運算式建立模板規則或建立自訂規則。
若您有不需要的分區運算式,可在分區運算式列表將其刪除。如果該分區運算式已經配置有品質監控規則,刪除時會同步刪除該運算式下的所有規則。請謹慎操作。
建立模板規則
建立模板規則分為添加監控規則和快捷添加。
添加監控規則:提供細粒度的資料監控,可根據需要配置規則的強弱、閾值、比較方式等多種監控參數。若需細粒度的監控資料,可使用該方式。
快捷添加:提供粗粒度的表和欄位級常用規則。若需快速體驗品質監控規則功能,或對資料的監控粒度較粗,可使用該方式。
添加監控規則
該方式可基於內建模板或規則模板庫建立監控規則:
內建模板:系統提供,不可更改,共含有43種表級和欄位級的模板規則供您使用。
規則模板庫:個人維護,可按需更改,是將您建立的使用較多的自訂規則固化為規則模板,便於後續直接使用。
本文以使用內建模板為例,為您介紹添加監控規則的主要參數配置。
參數 | 描述 |
規則名稱 | 自訂的規則名稱。 |
強弱 | 設定規則的強弱程度,不同程度對下遊任務的影響不同。
|
動態閾值 | 根據業務需求,選擇是否開啟動態閾值。 開啟後,無需手動設定波動閾值或期望值,系統會根據智能演算法,自動判斷合理閾值。若探索資料異常,立即觸發警示或阻塞。 |
規則來源 | 包括內建模板和規則模板庫。
說明 您需購買DataWorks企業版及以上版本,才可以選擇規則模板庫。購買或升級DataWorks,詳情請參見購買指引。 |
規則欄位 | 包括表級規則和欄位級規則,欄位級規則包括數值型和非數值型。 |
規則模板 | 資料品質為您提供43種內建表層級、欄位層級的監控模板可直接選擇。詳情請參見查看內建規則模板。 說明 平均值、匯總值、最小值和最大值僅對數值型欄位生效。 |
比較方式 | 不同規則模板,可選擇的比較方式不同。包括絕對值、上升、下降、大於、等於等多種方式,具體請以實際介面為準。
|
波動值比較 | 用於計算波動率。 您可根據波動率計算公式(波動率=(樣本-基準值)/基準值)計算結果:
您可設定橙色閾值和紅色閾值,對不同嚴重程度的問題進行監控。
|
啟停狀態 | 用於控制該規則是否在生產環境中運行。 重要 狀態設定為停用時,規則將無法觸發試跑,並且不會被關聯的調度任務觸發運行。 |
保留問題資料 | 當規則為啟用狀態時,在本條資料品質監控規則校正不通過的情況下,系統自動建立問題資料表格儲存體品質規則校正過程中發現的問題資料。 重要
|
快捷添加
該方式提供了粗粒度的表和欄位級常用規則,可協助您快速配置一個品質監控規則使用。
參數 | 描述 |
規則名稱 | 自訂規則名稱。 |
規則欄位 | 包括表級規則和欄位級規則,欄位級規則包括數實值型別和非數實值型別。 |
快捷規則 | 包括錶行數大於0、錶行數動態閾值、欄位重複值等多種規則。表級規則和欄位級規則可配置的快捷規則存在差異,具體請以實際介面為準。 重要 您需購買DataWorks企業版及以上版本,才可以選擇錶行數動態閾值規則。購買或升級DataWorks,詳情請參見購買指引。 |
啟停狀態 | 用於控制該規則是否在生產環境中運行。 重要 狀態設定為停用時,規則將無法觸發試跑,並且不會被關聯的調度任務觸發運行。 |
建立自訂規則
如果模板規則不能滿足您對分區運算式中資料品質的監控需求,您可通過建立自訂規則來滿足個人化的監控需求。
建立自訂規則分為添加監控規則和快捷添加。
添加監控規則:提供細粒度的資料監控,可根據需要配置規則的強弱、閾值、比較方式等多種監控參數。若需細粒度的監控資料,可使用該方式。
快捷添加:提供粗粒度的表和欄位級常用規則。若需快速體驗品質監控規則功能,或對資料的監控粒度較粗,可使用該方式。
添加監控規則
添加監控規則時,規則欄位支援選擇表級規則、欄位級規則和自訂SQL,不同類型規則的配置參數存在差異。
表級規則和欄位級規則的主要配置參數如下。
參數
描述
規則名稱
自訂的規則名稱。
強弱
設定規則的強弱程度,不同程度對下遊任務的影響不同。
強規則:紅色異常警示並阻塞下遊任務節點,橙色異常警示但不阻塞下遊任務節點。
弱規則:紅色異常警示不阻塞下遊任務節點,橙色異常不警示也不阻塞下遊任務節點。
規則欄位
此處可選擇表級規則或欄位級規則。表級、欄位級⾃定義規則⽀持根據業務屬性⾃定義where過濾條件。
採樣方式
支援count和count/table_count、sum等多種方式。表級、欄位級規則可選擇的採樣方式不同,具體請以實際介面為準。
說明此處的count/table_count指的是根據配置的過濾條件過濾後的結果條數與當前分區的表總行數的比值。
過濾條件
輸入過濾條件。例如,您需要查詢業務日期下表的分區,則可設定過濾條件為pt=$[yyyymmdd-1]。
校正類型
支援數值型、波動率型和動態閾值型。開啟動態閾值後,無需手動設定波動閾值或期望值,系統會根據智能演算法,自動判斷合理閾值,若探索資料異常,會立即觸發警示或阻塞。
說明您需購買DataWorks企業版及以上版本,才可以選擇動態閾值型。購買或升級DataWorks,詳情請參見購買指引。
校正方式
進行表資料校正的方式。不同校正類型,支援選擇的校正方式不同。具體請以實際介面為準。
比較方式
不同校正類型,支援選擇的比較方式不同。包括絕對值、上升、下降、大於、等於等多種方式,具體請以實際介面為準。
數值型模板通常與固定值(即期望值)進行比較,故多採用大於、等於等比較方式。該類比較方式需設定期望值。
波動型模板通常是進行波動範圍比較,故多採用絕對值、上升、下降等比較方式。該方式需設定波動值比較。
動態閾值型通過由系統自動提供合適的閾值,並與該閾值進行比較。該方式需設定樣本參考量,樣本參考量預設為15。
說明模型樣本參考量是指使動態閾值演算法模型生效的樣本最小時間視窗範圍,該時間視窗內允許少於10%的資料缺失。未達到樣本參考量時不會警示,缺失資料會由演算法自動補齊。
波動值比較
用於計算波動率。
您可根據波動率計算公式(波動率=(樣本-基準值)/基準值)計算結果:
樣本:當天採集的具體樣本值。例如,對於SQL任務錶行數,1天波動檢測,則樣本是當天分區的錶行數。
基準值:歷史樣本的對比值。例如:
若規則是SQL任務錶行數,1天波動檢測,則基準值是前一天分區產生的錶行數。
若規則是SQL任務錶行數,7天平均值波動檢測,則基準值是前7天的錶行資料的平均值。
您可設定橙色閾值和紅色閾值,對不同嚴重程度的問題進行監控。
情境一:校正值小於或等於橙色閾值,則返回正常。
情境二:校正值大於橙色閾值,小於或等於紅色閾值,且規則為弱規則,則返回正常。
情境三:校正值大於橙色閾值,小於或等於紅色閾值,且規則為強規則,則返回橙色警示,但任務不會被阻塞。
情境四:校正值大於紅色閾值,且規則為弱規則,則返回紅色警示,但任務不會被阻塞。
情境五:校正值大於紅色閾值,且規則為強規則,則返回紅色警示,且任務會被阻塞。
啟停狀態
用於控制該規則是否在生產環境中運行。
重要狀態設定為停用時,規則將無法觸發試跑,並且不會被關聯的調度任務觸發運行。
自訂SQL規則可根據需要自訂SQL邏輯,主要配置參數如下。
參數
描述
規則名稱
自訂的規則名稱。
強弱
設定規則的強弱程度,不同程度對下遊任務的影響不同。
強規則:紅色異常警示並阻塞下遊任務節點,橙色異常警示但不阻塞下遊任務節點。
弱規則:紅色異常警示不阻塞下遊任務節點,橙色異常不警示也不阻塞下遊任務節點。
規則欄位
選擇自訂SQL,支援自訂SQL邏輯(單行單列輸出)。
採樣方式
僅支援自訂SQL。
Set Flag
輸入SQL的前置set語句。
自訂SQL
輸入完整的SQL語句,查詢結果只能返回一行一列的值。
自訂SQL中,請使用中括弧的形式匹配表的分區運算式。樣本如下:
select count(*) from table_name where ds=$[yyyymmdd];
說明此處table_name代指當前正在配置監控規則的表名,您需要在實際配置中將其替換為當前實際操作的表名。
配置分區運算式,詳情請參見建立分區運算式。
基於自訂SQL建立的資料品質規則校正的表分區由當前SQL條件決定,與上述步驟中的分區運算式配置無關。
校正類型
支援數值型、波動率型和動態閾值型。開啟動態閾值後,無需手動設定波動閾值或期望值,系統會根據智能演算法,自動判斷合理閾值,若探索資料異常,會立即觸發警示或阻塞。
說明您需購買DataWorks企業版及以上版本,才可以選擇動態閾值型。購買或升級DataWorks,詳情請參見購買指引。
校正方式
進行表資料校正的方式。不同校正類型,支援選擇的校正方式不同。具體請以實際介面為準。
比較方式
不同校正類型,支援選擇的比較方式不同。包括絕對值、上升、下降、大於、等於等多種方式,具體請以實際介面為準。
數值型模板通常與固定值(即期望值)進行比較,故多採用大於、等於等比較方式。該類比較方式需設定期望值。
波動型模板通常是進行波動範圍比較,故多採用絕對值、上升、下降等比較方式。該方式需設定波動值比較。
動態閾值型通過由系統自動提供合適的閾值,並與該閾值進行比較。該方式需設定樣本參考量,樣本參考量預設為15。
說明模型樣本參考量是指使動態閾值演算法模型生效的樣本最小時間視窗範圍,該時間視窗內允許少於10%的資料缺失。未達到樣本參考量時不會警示,缺失資料會由演算法自動補齊。
波動值比較
用於計算波動率。
您可根據波動率計算公式(波動率=(樣本-基準值)/基準值)計算結果:
樣本:當天採集的具體樣本值。例如,對於SQL任務錶行數,1天波動檢測,則樣本是當天分區的錶行數。
基準值:歷史樣本的對比值。例如:
若規則是SQL任務錶行數,1天波動檢測,則基準值是前一天分區產生的錶行數。
若規則是SQL任務錶行數,7天平均值波動檢測,則基準值是前7天的錶行資料的平均值。
您可設定橙色閾值和紅色閾值,對不同嚴重程度的問題進行監控。
情境一:校正值小於或等於橙色閾值,則返回正常。
情境二:校正值大於橙色閾值,小於或等於紅色閾值,且規則為弱規則,則返回正常。
情境三:校正值大於橙色閾值,小於或等於紅色閾值,且規則為強規則,則返回橙色警示,但任務不會被阻塞。
情境四:校正值大於紅色閾值,且規則為弱規則,則返回紅色警示,但任務不會被阻塞。
情境五:校正值大於紅色閾值,且規則為強規則,則返回紅色警示,且任務會被阻塞。
啟停狀態
用於控制該規則是否在生產環境中運行。
重要狀態設定為停用時,規則將無法觸發試跑,並且不會被關聯的調度任務觸發運行。
快捷添加
該方式提供了粗粒度的欄位級常用規則,可協助您快速配置一個品質監控規則使用。
參數 | 描述 |
規則名稱 | 自訂規則名稱。 |
規則類型 | 僅支援多欄位重複值。 |
規則欄位 | 設定監控欄位。支援選擇多個欄位。 |
啟停狀態 | 用於控制該規則是否在生產環境中運行。 重要 狀態設定為停用時,規則將無法觸發試跑,並且不會被關聯的調度任務觸發運行。 |
配置關聯調度
如果您需要在生產鏈路上監控離線資料品質,需要將資料品質規則與產出表資料的調度節點進行關聯:
產出表資料的調度節點必鬚髮布後才可以關聯調度。
關聯前,請確保您在關聯的工作空間中擁有空間管理員、開發或營運中至少一個角色。
資料品質的關聯調度是將分區運算式和節點任務相關聯,並且可關聯多個節點任務。關聯調度完成後,分區運算式下的資料品質監控規則將在關聯的任務運行時自動觸發檢測。
資料品質的關聯可以靈活配置,您關聯的任務並非一定與您的表有關係。
若關聯了多個任務節點,每個任務節點運行完,都會觸發品質規則校正。
試跑規則
品質規則配置完成後,您可針對某規則通過選擇調度時間進行試跑,確認當前試跑的分區資料是否符合預期。若不符合預期,請根據實際情況調整該規則。
進入規則詳情頁。
在規則列表頁面,根據條件式篩選目標規則,單擊該規則即可進入規則詳情頁。
試跑規則。
在規則詳情頁,選擇目標規則並設定調度時間,進行試跑。試跑完成後,根據介面指引進入任務查詢,查看並處理試跑結果。步驟如下。
說明品質規則是基於表分區進行配置的,若某分區下存在多個規則,您也可選擇批量試跑多個規則。
管理規則
規則建立完成後,您還可對已建立規則執行如下管理操作。
訂閱規則
觸發規則後預設僅通知規則建立者,若您想通知其他使用者,則可在相應表的品質監控規則詳情頁,單擊訂閱管理添加需要通知的使用者。
訂閱者式包括郵件通知、郵件和簡訊通知、DingTalk群機器人、DingTalk群機器人@ALL、飛書群機器人、企業微信機器人和自訂Webhook。
添加DingTalk群、飛書群和企業微信機器人擷取Webhook地址後,複製Webhook地址至訂閱管理中即可。
僅DataWorks企業版版本支援使用自訂Webhook方式,DataWorks推送自訂Webhook的警示資訊的訊息格式請參見:附錄:Webhook訊息格式。
查看分區動作記錄
在相應表的品質監控規則詳情頁,單擊分區動作記錄,即可在動作記錄對話方塊中查看歷史操作的詳細資料。操作內容顯示當前分區運算式設定的所有規則。
查看上一次校正結果
在相應表的品質監控規則詳情頁,單擊上一次校正結果,即可進入任務查詢頁面查看當前分區運算式下的運行結果情況和歷史結果。
複製規則
在相應表的品質監控規則詳情頁,單擊複製規則,即可根據需要選擇複製當前規則至哪個分區運算式。同時,您還可選擇是否同步規則的訂閱人,或替換自訂SQL規則中的表名。
該操作會複製當前分區運算式下的所有規則到所選的目標資料分割運算式中。
後續步驟
若在指定業務時間內,您希望不符合品質校正規則的資料不阻塞任務運行,可以使用去噪管理功能,詳情請參見配置資料品質規則去噪。