文/高亮 吳先斌
?
利用數據質量規則庫推動數據質量管理
文/高亮 吳先斌
不論是高校還是其他行業,管理信息系統數據質量的重要性不言而喻。在業務層面,數據質量問題不僅會影響單點業務的正常開展,還會影響與該業務相關的其他業務順利開展;在決策層面,數據質量問題會直接影響到管理層的決策依據是否準確、客觀。
高校各類業務較多,應用系統繁雜,在系統建設過程中往往會忽視數據質量的重要性,沒有采取足夠的措施,導致隨著系統和數據的逐步深入應用,數據質量問題一點點暴露出來,比如數據的有效性、準確性、一致性等。最壞的結果就是用戶感覺系統和數據是不可信的,最終放棄了使用系統,這樣也就失去了建設系統的意義。
從高校數據質量管理工作進展情況來看,在思想上目前還沒有引起高校CIO的足夠重視,在管理制度、技術措施等方面還沒有開展更多有效工作。數據質量是一個非常復雜的系統性問題,解決數據質量問題應該從數據質量管理制度、應用系統建設、數據質量監控三個方面開展,并且三者要有機結合形成聯動,單靠某一方面的努力是不夠的。我們要清楚一點,再完美的系統都存在數據質量問題,數據質量監控只是一種必不可少的補充手段,已經到了解決問題的下游。本文主要介紹一種基于規則庫的數據質量自動監控平臺實現方法及其在推動數據質量管理方面的重要作用。
數據質量監控平臺主要包括三個部分:數據層、功能層和應用層,平臺架構如圖1所示。

圖1 數據質量監控平臺架構
1.數據層
數據層定義了數據質量監控的對象,主要是各核心業務系統的數據,如人事系統、教學系統、科研系統、學生系統等。
2.功能層
功能層是數據質量監控平臺的核心部分,包括數據質量檢查規則的定義、數據質量檢查規則腳本、檢查規則執行引擎、數據質量檢查規則執行情況監控等。
3.應用層
數據質量檢查結果可以通過兩種方式訪問:一種是通過郵件訂閱方式將數據質量檢查結果發給相關人員,另一種方式利用前端展示工具(如MicroStrategy、Cognos、Tableau等)開發數據質量在線分析報表、儀表盤、分析報告等。前端展示報表不僅能夠查看匯總數據,而且能夠通過鉆取功能查看明細數據以便業務人員能夠準確定位到業務系統的錯誤數據。
數據質量監控規則庫是監控平臺的核心,用來存放用戶根據數據質量標準定義的數據質量檢查規則腳本,供監控引擎讀取并執行,同時將檢查產生的結果存放到監控結果表中,表1是監控規則表的數據結構,其中的核心字段解釋如下:
system_flag:系統標識,用來標記監控規則屬于哪個業務系統。
scan_rule:監控規則,是可執行的SQL腳本,監控規則主要分兩類,一類是單純的數據校驗規則,如檢查是否為NULL、是否與字典表一致等;另一類是業務校驗規則,有些數據從數據庫角度出發是沒有問題的,但是不一定符合業務邏輯,如項目的結項時間早于立項時間等。
scan_rule_desc:監控規則描述信息,用來準確說明監控規則腳本的檢查內容、檢查邏輯等信息,供業務人員和技術人員詳細了解監控規則含義。

表1 監控規則表
scan_object:監控對象,用來說明監控規則檢查的數據對象或業務實體。
check_type_name:檢查類型名稱,指監控規則檢查數據質量的哪一種問題,如完整性、有效性、準確性、唯一性、一致性、合理性。
scan_period:掃描周期,指該監控規則執行的頻率,如每天、每周、每月。
status:規則狀態,指該監控規則是否啟用,1表示啟用,0表示關閉,監控引擎不會執行已經關閉的規則。
last_scan_date:最近掃描時間,記錄該規則上一次執行時間,用來和掃描周期聯合計算當前時間該監控規則是否可執行。
output_result:輸出結果,指監控規則執行后輸出的內容,讓數據質量管理人員準確知道是什么數據存在問題,方便在業務系統中查找、修改。
scan_scope:掃描范圍,指監控規則掃描哪些業務數據,有并不是所有的業務數據都需要去檢查,掃描范圍在監控規則腳本中也有相應的體現。
rule_level:規則級別,指該監控規則對應的數據質量問題對業務的影響程度,一般可分為高、中、低三個級別,高級別的數據質量問題必須在第一時間解決,否則會影響業務的正常開展。
module_name:系統模塊名稱,指監控規則對應業務系統中哪個功能模塊,主要用來將問題數據按系統功能模塊來分類。
charger_email:數據質量負責人郵箱,可以將該規則檢查的結果發生到負責人郵箱中,方便查看問題數據。
表2 是監控結果表的數據結構,該表用來存放某監控規則在相應的掃描時間點檢查出來的結果數據,通過scan_rule_id與監控規則表相關聯就能知道結果數據的詳細信息。

表2 監控結果表

表3 監控規則實例
表3是監控規則庫中教學系統相關的一些監控規則實例,由于排版問題只列出規則的核心字段。
監控引擎是數據質量監控平臺的發動機,負責執行監控腳本并產生監控結果,監控引擎是一個可供調度程序定時執行的存儲過程,需要部署在一個具有讀取其他業務庫的數據庫用戶下,監控引擎執行流程如圖2所示,具體執行過程說明如下:

圖2 數據質量監控引擎執行流程
1.通過調度程序定時觸發監控引擎執行,監控引擎可以根據實際情況靈活設置調度時間,一般設置在凌晨調度,減少對業務系統的影響。
2.監控引擎順序讀取規則庫中的數據質量檢查規則,判斷規則是否有效、判斷規則是否滿足掃描周期。滿足條件后執行檢查規則,并將檢查結果輸出到結果表中。
3.一條規則執行完成后,更新該規則的last_scan_date(最近掃描時間)字段。
4.將監控規則執行是否成功記錄到日志表,尤其是執行失敗的規則,并將日志發送給系統管理員,以便及時修復問題。
5.執行完最后一條規則結束監控引擎的一次運行,同時將檢查結果以報告的形式發送給相關業務人員。
數據質量監控結果可以通過兩種方式提供給相關業務人員,一種是在線可視化展示,業務人員可以隨時直觀地了解數據質量整體情況和詳細情況,便于整改問題數據;另一種是通過郵件方式定期為業務人員推送數據質量報告。圖3是用數據可視化工具Tableau開發的數據質量結果匯總儀表盤,通過該儀表盤可以查看當天每個系統、每條規則數據質量情況,通過鉆取功能可以查看明細數據,方便準確定位具體的問題數據,以便在業務系統中修改。

圖3 數據質量監控結果匯總儀表盤
圖4是數據質量變化趨勢儀表盤,該儀表盤可以展示每個系統、每條規則近30天數據質量變化趨勢,有助于業務人員了解業務系統數據質量的變化情況,并采取相應的整改措施。

圖4 數據質量變化趨勢
本文介紹的數據質量監控平臺具有靈活部署、規則庫動態擴展、調度按需配置等特點,技術人員根據具體數據問題可以靈活地自定義監控規則,對系統運行中發現的數據質量問題進行統一監控和管理。數據質量監控平臺是解決數據質量問題的有效手段之一,為技術人員和業務人員提供了一個了解數據質量的便捷途徑,能夠有效地支持業務人員整改問題數據。高質量的數據不僅能夠支撐日常業務順利開展,還能夠為決策支持系統的建設打下良好基礎,該平臺將成為打造綠色數據生態環境的有力支撐工具。
(作者單位為上海財經大學信息化辦公室)