在DataWorks的DataStudio中,支援為資料開發節點配置資料品質監控規則,用以校正該節點產出的資料表。此功能將品質規則的定義、測試與SQL開發流程深度融合,旨在解決傳統模式下品質規則配置滯後、資料問題發現延遲及規則維護成本高的問題。
功能介紹
概述
在 DataWorks IDE 中編輯 SQL節點時,可對該節點中的資料產出表直接配置資料品質規則。規則以 YAML 格式定義,與 SQL 代碼綁定,支援在開發階段測試、隨節點提交發布,並在調度運行時自動執行。
-
開發時測試:在編碼階段即可對品質規則進行測試和驗證。
-
同步版本化:品質規則作為節點代碼的一部分,隨節點一同進行版本管理與發布。
-
生產時校正:發行的規則將線上上調度時自動執行,保障資料產出的可靠性。
與資料品質的關係
資料治理模組的資料品質也支援對資料表配置監控規則,同時提供豐富的規則模板和與周期任務綁定的能力,其與資料開發品質測試功能的關係如下:
定位差異
-
IDE內嵌規則:一種隨代碼版本演化的輕量級規則,適用於與特定節點邏輯強相關的校正情境。
-
資料品質中心:提供全域性、跨任務的統一資料品質治理能力。
協同工作
-
在IDE的“品質測試”功能中,可直接引用並複用資料品質中心已建立的規則模板,以保證規則的統一性並提升配置效率。
-
若在IDE和資料品質中心對同一資料表配置了規則,兩者會同時生效並獨立執行校正。
建議:為避免重複配置和冗餘警示,建議根據實際治理情境,選擇一種主要方式對資料表進行管理。
適用範圍
當前僅支援MaxCompute SQL節點直接配置資料品質規則。
配置指南
配置入口
-
進入資料開發,開啟一個包含資料產出邏輯(如
INSERT OVERWRITE)的MaxCompute SQL節點。 -
在節點編輯器上方的工具列中,單擊質量測試。 IDE底部將自動開啟並切換至質量測試標籤頁。
編寫品質規則
品質規則通過YAML格式的資料品質Spec進行定義。支援智能產生和手動編寫兩種方式。
智能建置規則 (推薦)
此功能旨在通過AI能力大幅降低規則編寫的複雜度。
-
在喚起的質量測試標籤頁中,點擊AI生成規則按鈕。
-
在對話方塊中輸入指令,如:對欄位id進行非空校正。
-
系統分析後會在編輯器中產生推薦規則,點擊接受後可直接使用或在此基礎上修改。
手動編寫規則 (指令碼模式)
對於需要精確控制規則的情境,支援通過編寫YAML代碼進行定義。
- datasets: # 如節點中有多個輸出表,可設定多個datasets來配置不同表的品質規則
- type: Table
dataSource:
name: odps_first
tables:
- table1 # 當前僅支援設定1個表,不支援萬用字元
filter: partition:dt=${bizdate} # 支援按where條件過濾(無需填寫where關鍵字)或者按分區過濾(固定首碼"partition:")。
rules:
- templateId: SYSTEM:field:null_value:fixed # 一個表可以支援多條規則,可選擇左側“規則模版”快捷插入,並修改模板中的變數。
fields:
- id
pass:
- when = 0
name: 欄位id空值行數為0
severity: High
identity: dq_suggestion_monitor_spec_欄位id空值行數為0
- templateId: #
- datasets:
#...
-
資料品質監控規則的配置遵循DataWorks的資料品質Spec,詳情可參見:資料品質Spec配置說明 。
-
單擊右側的規則模板,可在編輯器中自動插入完整的規則片段(Rule),插入後根據實際情況調整。
您可以在資料品質的規則模版庫中以可視化方式配置
-
此處設定的強弱規則對下遊的阻塞與限制,與資料品質側邏輯完全一致。詳見: 資料品質規則 。
編輯器提供了豐富的協助工具功能以提升效率:
-
文法高亮 :對YAML關鍵字、規則名、函數、表名、欄位名等進行顏色區分。
-
自動補全:輸入時,自動提示關鍵字、內建規則模板、以及當前上下文可用的表名與欄位名。
-
即時校正:即時提示YAML語法錯誤,並校正引用的表名、欄位名是否存在,對不存在的對象以波浪線高亮。
YAML對縮排格式較為敏感,請注意縮排文法規範。
測試與驗證
規則配置完成後,支援直接在IDE中進行測試回合,無需等待節點調度即可驗證規則的有效性。
-
測試方式:
-
單獨測試:在質量測試面板中,單擊測試運行可觸發對全部或單條規則的測試回合。
-
聯動測試:在質量測試面板中,勾選節點運行成功後觸發質量測試,然後單擊IDE頂部工具列的 運行。系統將先執行SQL代碼,成功後再執行品質測試。
-
工作流程測試:在工作流程DAG介面,點擊工作流程上方工具列的運行按鈕,或者指定單個指令碼運行,系統也會先後執行任務代碼和品質測試。
-
-
查看結果:
運行結果將直接反饋在質量測試面板中。單擊右上方的結構化日誌,可查看品質規則運行過濾後的結果,對紅色異常的規則,可以點擊查看詳情,跳轉至資料品質規則的運行記錄。
發布與調度
發布與版本管理
-
提交發布:節點提交並發布時,在品質測試面板中配置的YAML規則會作為節點的一部分,一同發布到生產環境。
-
版本對比:支援在品質配置頁簽查看目前的版本包含的規則配置,並能與歷史版本進行Diff對比,以追蹤規則的每一次變更。
生產環境調度運行
發布到生產環境的品質規則,將在每次任務調度運行時自動觸發執行。
-
執行時機:品質規則校正會在其關聯的SQL節點執行成功後自動執行。整個節點執行個體的最終狀態,取決於SQL執行結果和品質校正結果。
-
阻塞機制:
-
強規則 (
severity: High):強規則校正失敗(紅色異常),將導致整個節點執行個體運行失敗,從而阻塞下遊任務。 -
弱規則 (
severity: Normal或不設定):弱規則校正失敗,不會阻塞節點運行,節點執行個體將正常成功。
-
-
警示通知:無論規則是否阻塞節點,只要校正結果出現異常(紅色異常、橙色異常或者校正失敗),系統都會向節點責任人發送郵件警示。
說明警示方式暫不支援變更。