文/高亮 吳先斌
?
利用數(shù)據(jù)質(zhì)量規(guī)則庫推動(dòng)數(shù)據(jù)質(zhì)量管理
文/高亮 吳先斌
不論是高校還是其他行業(yè),管理信息系統(tǒng)數(shù)據(jù)質(zhì)量的重要性不言而喻。在業(yè)務(wù)層面,數(shù)據(jù)質(zhì)量問題不僅會(huì)影響單點(diǎn)業(yè)務(wù)的正常開展,還會(huì)影響與該業(yè)務(wù)相關(guān)的其他業(yè)務(wù)順利開展;在決策層面,數(shù)據(jù)質(zhì)量問題會(huì)直接影響到管理層的決策依據(jù)是否準(zhǔn)確、客觀。
高校各類業(yè)務(wù)較多,應(yīng)用系統(tǒng)繁雜,在系統(tǒng)建設(shè)過程中往往會(huì)忽視數(shù)據(jù)質(zhì)量的重要性,沒有采取足夠的措施,導(dǎo)致隨著系統(tǒng)和數(shù)據(jù)的逐步深入應(yīng)用,數(shù)據(jù)質(zhì)量問題一點(diǎn)點(diǎn)暴露出來,比如數(shù)據(jù)的有效性、準(zhǔn)確性、一致性等。最壞的結(jié)果就是用戶感覺系統(tǒng)和數(shù)據(jù)是不可信的,最終放棄了使用系統(tǒng),這樣也就失去了建設(shè)系統(tǒng)的意義。
從高校數(shù)據(jù)質(zhì)量管理工作進(jìn)展情況來看,在思想上目前還沒有引起高校CIO的足夠重視,在管理制度、技術(shù)措施等方面還沒有開展更多有效工作。數(shù)據(jù)質(zhì)量是一個(gè)非常復(fù)雜的系統(tǒng)性問題,解決數(shù)據(jù)質(zhì)量問題應(yīng)該從數(shù)據(jù)質(zhì)量管理制度、應(yīng)用系統(tǒng)建設(shè)、數(shù)據(jù)質(zhì)量監(jiān)控三個(gè)方面開展,并且三者要有機(jī)結(jié)合形成聯(lián)動(dòng),單靠某一方面的努力是不夠的。我們要清楚一點(diǎn),再完美的系統(tǒng)都存在數(shù)據(jù)質(zhì)量問題,數(shù)據(jù)質(zhì)量監(jiān)控只是一種必不可少的補(bǔ)充手段,已經(jīng)到了解決問題的下游。本文主要介紹一種基于規(guī)則庫的數(shù)據(jù)質(zhì)量自動(dòng)監(jiān)控平臺(tái)實(shí)現(xiàn)方法及其在推動(dòng)數(shù)據(jù)質(zhì)量管理方面的重要作用。
數(shù)據(jù)質(zhì)量監(jiān)控平臺(tái)主要包括三個(gè)部分:數(shù)據(jù)層、功能層和應(yīng)用層,平臺(tái)架構(gòu)如圖1所示。
圖1 數(shù)據(jù)質(zhì)量監(jiān)控平臺(tái)架構(gòu)
1.數(shù)據(jù)層
數(shù)據(jù)層定義了數(shù)據(jù)質(zhì)量監(jiān)控的對(duì)象,主要是各核心業(yè)務(wù)系統(tǒng)的數(shù)據(jù),如人事系統(tǒng)、教學(xué)系統(tǒng)、科研系統(tǒng)、學(xué)生系統(tǒng)等。
2.功能層
功能層是數(shù)據(jù)質(zhì)量監(jiān)控平臺(tái)的核心部分,包括數(shù)據(jù)質(zhì)量檢查規(guī)則的定義、數(shù)據(jù)質(zhì)量檢查規(guī)則腳本、檢查規(guī)則執(zhí)行引擎、數(shù)據(jù)質(zhì)量檢查規(guī)則執(zhí)行情況監(jiān)控等。
3.應(yīng)用層
數(shù)據(jù)質(zhì)量檢查結(jié)果可以通過兩種方式訪問:一種是通過郵件訂閱方式將數(shù)據(jù)質(zhì)量檢查結(jié)果發(fā)給相關(guān)人員,另一種方式利用前端展示工具(如MicroStrategy、Cognos、Tableau等)開發(fā)數(shù)據(jù)質(zhì)量在線分析報(bào)表、儀表盤、分析報(bào)告等。前端展示報(bào)表不僅能夠查看匯總數(shù)據(jù),而且能夠通過鉆取功能查看明細(xì)數(shù)據(jù)以便業(yè)務(wù)人員能夠準(zhǔn)確定位到業(yè)務(wù)系統(tǒng)的錯(cuò)誤數(shù)據(jù)。
數(shù)據(jù)質(zhì)量監(jiān)控規(guī)則庫是監(jiān)控平臺(tái)的核心,用來存放用戶根據(jù)數(shù)據(jù)質(zhì)量標(biāo)準(zhǔn)定義的數(shù)據(jù)質(zhì)量檢查規(guī)則腳本,供監(jiān)控引擎讀取并執(zhí)行,同時(shí)將檢查產(chǎn)生的結(jié)果存放到監(jiān)控結(jié)果表中,表1是監(jiān)控規(guī)則表的數(shù)據(jù)結(jié)構(gòu),其中的核心字段解釋如下:
system_flag:系統(tǒng)標(biāo)識(shí),用來標(biāo)記監(jiān)控規(guī)則屬于哪個(gè)業(yè)務(wù)系統(tǒng)。
scan_rule:監(jiān)控規(guī)則,是可執(zhí)行的SQL腳本,監(jiān)控規(guī)則主要分兩類,一類是單純的數(shù)據(jù)校驗(yàn)規(guī)則,如檢查是否為NULL、是否與字典表一致等;另一類是業(yè)務(wù)校驗(yàn)規(guī)則,有些數(shù)據(jù)從數(shù)據(jù)庫角度出發(fā)是沒有問題的,但是不一定符合業(yè)務(wù)邏輯,如項(xiàng)目的結(jié)項(xiàng)時(shí)間早于立項(xiàng)時(shí)間等。
scan_rule_desc:監(jiān)控規(guī)則描述信息,用來準(zhǔn)確說明監(jiān)控規(guī)則腳本的檢查內(nèi)容、檢查邏輯等信息,供業(yè)務(wù)人員和技術(shù)人員詳細(xì)了解監(jiān)控規(guī)則含義。
表1 監(jiān)控規(guī)則表
scan_object:監(jiān)控對(duì)象,用來說明監(jiān)控規(guī)則檢查的數(shù)據(jù)對(duì)象或業(yè)務(wù)實(shí)體。
check_type_name:檢查類型名稱,指監(jiān)控規(guī)則檢查數(shù)據(jù)質(zhì)量的哪一種問題,如完整性、有效性、準(zhǔn)確性、唯一性、一致性、合理性。
scan_period:掃描周期,指該監(jiān)控規(guī)則執(zhí)行的頻率,如每天、每周、每月。
status:規(guī)則狀態(tài),指該監(jiān)控規(guī)則是否啟用,1表示啟用,0表示關(guān)閉,監(jiān)控引擎不會(huì)執(zhí)行已經(jīng)關(guān)閉的規(guī)則。
last_scan_date:最近掃描時(shí)間,記錄該規(guī)則上一次執(zhí)行時(shí)間,用來和掃描周期聯(lián)合計(jì)算當(dāng)前時(shí)間該監(jiān)控規(guī)則是否可執(zhí)行。
output_result:輸出結(jié)果,指監(jiān)控規(guī)則執(zhí)行后輸出的內(nèi)容,讓數(shù)據(jù)質(zhì)量管理人員準(zhǔn)確知道是什么數(shù)據(jù)存在問題,方便在業(yè)務(wù)系統(tǒng)中查找、修改。
scan_scope:掃描范圍,指監(jiān)控規(guī)則掃描哪些業(yè)務(wù)數(shù)據(jù),有并不是所有的業(yè)務(wù)數(shù)據(jù)都需要去檢查,掃描范圍在監(jiān)控規(guī)則腳本中也有相應(yīng)的體現(xiàn)。
rule_level:規(guī)則級(jí)別,指該監(jiān)控規(guī)則對(duì)應(yīng)的數(shù)據(jù)質(zhì)量問題對(duì)業(yè)務(wù)的影響程度,一般可分為高、中、低三個(gè)級(jí)別,高級(jí)別的數(shù)據(jù)質(zhì)量問題必須在第一時(shí)間解決,否則會(huì)影響業(yè)務(wù)的正常開展。
module_name:系統(tǒng)模塊名稱,指監(jiān)控規(guī)則對(duì)應(yīng)業(yè)務(wù)系統(tǒng)中哪個(gè)功能模塊,主要用來將問題數(shù)據(jù)按系統(tǒng)功能模塊來分類。
charger_email:數(shù)據(jù)質(zhì)量負(fù)責(zé)人郵箱,可以將該規(guī)則檢查的結(jié)果發(fā)生到負(fù)責(zé)人郵箱中,方便查看問題數(shù)據(jù)。
表2 是監(jiān)控結(jié)果表的數(shù)據(jù)結(jié)構(gòu),該表用來存放某監(jiān)控規(guī)則在相應(yīng)的掃描時(shí)間點(diǎn)檢查出來的結(jié)果數(shù)據(jù),通過scan_rule_id與監(jiān)控規(guī)則表相關(guān)聯(lián)就能知道結(jié)果數(shù)據(jù)的詳細(xì)信息。
表2 監(jiān)控結(jié)果表
表3 監(jiān)控規(guī)則實(shí)例
表3是監(jiān)控規(guī)則庫中教學(xué)系統(tǒng)相關(guān)的一些監(jiān)控規(guī)則實(shí)例,由于排版問題只列出規(guī)則的核心字段。
監(jiān)控引擎是數(shù)據(jù)質(zhì)量監(jiān)控平臺(tái)的發(fā)動(dòng)機(jī),負(fù)責(zé)執(zhí)行監(jiān)控腳本并產(chǎn)生監(jiān)控結(jié)果,監(jiān)控引擎是一個(gè)可供調(diào)度程序定時(shí)執(zhí)行的存儲(chǔ)過程,需要部署在一個(gè)具有讀取其他業(yè)務(wù)庫的數(shù)據(jù)庫用戶下,監(jiān)控引擎執(zhí)行流程如圖2所示,具體執(zhí)行過程說明如下:
圖2 數(shù)據(jù)質(zhì)量監(jiān)控引擎執(zhí)行流程
1.通過調(diào)度程序定時(shí)觸發(fā)監(jiān)控引擎執(zhí)行,監(jiān)控引擎可以根據(jù)實(shí)際情況靈活設(shè)置調(diào)度時(shí)間,一般設(shè)置在凌晨調(diào)度,減少對(duì)業(yè)務(wù)系統(tǒng)的影響。
2.監(jiān)控引擎順序讀取規(guī)則庫中的數(shù)據(jù)質(zhì)量檢查規(guī)則,判斷規(guī)則是否有效、判斷規(guī)則是否滿足掃描周期。滿足條件后執(zhí)行檢查規(guī)則,并將檢查結(jié)果輸出到結(jié)果表中。
3.一條規(guī)則執(zhí)行完成后,更新該規(guī)則的last_scan_date(最近掃描時(shí)間)字段。
4.將監(jiān)控規(guī)則執(zhí)行是否成功記錄到日志表,尤其是執(zhí)行失敗的規(guī)則,并將日志發(fā)送給系統(tǒng)管理員,以便及時(shí)修復(fù)問題。
5.執(zhí)行完最后一條規(guī)則結(jié)束監(jiān)控引擎的一次運(yùn)行,同時(shí)將檢查結(jié)果以報(bào)告的形式發(fā)送給相關(guān)業(yè)務(wù)人員。
數(shù)據(jù)質(zhì)量監(jiān)控結(jié)果可以通過兩種方式提供給相關(guān)業(yè)務(wù)人員,一種是在線可視化展示,業(yè)務(wù)人員可以隨時(shí)直觀地了解數(shù)據(jù)質(zhì)量整體情況和詳細(xì)情況,便于整改問題數(shù)據(jù);另一種是通過郵件方式定期為業(yè)務(wù)人員推送數(shù)據(jù)質(zhì)量報(bào)告。圖3是用數(shù)據(jù)可視化工具Tableau開發(fā)的數(shù)據(jù)質(zhì)量結(jié)果匯總儀表盤,通過該儀表盤可以查看當(dāng)天每個(gè)系統(tǒng)、每條規(guī)則數(shù)據(jù)質(zhì)量情況,通過鉆取功能可以查看明細(xì)數(shù)據(jù),方便準(zhǔn)確定位具體的問題數(shù)據(jù),以便在業(yè)務(wù)系統(tǒng)中修改。
圖3 數(shù)據(jù)質(zhì)量監(jiān)控結(jié)果匯總儀表盤
圖4是數(shù)據(jù)質(zhì)量變化趨勢儀表盤,該儀表盤可以展示每個(gè)系統(tǒng)、每條規(guī)則近30天數(shù)據(jù)質(zhì)量變化趨勢,有助于業(yè)務(wù)人員了解業(yè)務(wù)系統(tǒng)數(shù)據(jù)質(zhì)量的變化情況,并采取相應(yīng)的整改措施。
圖4 數(shù)據(jù)質(zhì)量變化趨勢
本文介紹的數(shù)據(jù)質(zhì)量監(jiān)控平臺(tái)具有靈活部署、規(guī)則庫動(dòng)態(tài)擴(kuò)展、調(diào)度按需配置等特點(diǎn),技術(shù)人員根據(jù)具體數(shù)據(jù)問題可以靈活地自定義監(jiān)控規(guī)則,對(duì)系統(tǒng)運(yùn)行中發(fā)現(xiàn)的數(shù)據(jù)質(zhì)量問題進(jìn)行統(tǒng)一監(jiān)控和管理。數(shù)據(jù)質(zhì)量監(jiān)控平臺(tái)是解決數(shù)據(jù)質(zhì)量問題的有效手段之一,為技術(shù)人員和業(yè)務(wù)人員提供了一個(gè)了解數(shù)據(jù)質(zhì)量的便捷途徑,能夠有效地支持業(yè)務(wù)人員整改問題數(shù)據(jù)。高質(zhì)量的數(shù)據(jù)不僅能夠支撐日常業(yè)務(wù)順利開展,還能夠?yàn)闆Q策支持系統(tǒng)的建設(shè)打下良好基礎(chǔ),該平臺(tái)將成為打造綠色數(shù)據(jù)生態(tài)環(huán)境的有力支撐工具。
(作者單位為上海財(cái)經(jīng)大學(xué)信息化辦公室)