淺談數(shù)據(jù)質(zhì)量管理
Part 01、 什么是數(shù)據(jù)質(zhì)量管理
數(shù)據(jù)質(zhì)量管理,是DAMA數(shù)據(jù)管理知識體系指南中數(shù)據(jù)治理領(lǐng)域非常重要的一部分(圖1 所示),主要是指對數(shù)據(jù)從計劃、獲取、存儲、共享、維護、應(yīng)用、消亡生命周期的每個階段里可能引發(fā)的各類數(shù)據(jù)質(zhì)量問題,進行識別、度量、監(jiān)控、預警等一列管理活動,并通過改善和提高組織的管理水平使得數(shù)據(jù)質(zhì)量獲得進一步提高。
Part 02、 數(shù)據(jù)質(zhì)量問題原因及評價標準
數(shù)據(jù)在計劃、獲取、存儲、共享、維護等各個環(huán)節(jié)都有可能引發(fā)數(shù)據(jù)質(zhì)量問題,主要原因分為幾下幾個方面:
數(shù)據(jù)不完整:由于企業(yè)信息系統(tǒng)的孤立使用,各個業(yè)務(wù)系統(tǒng)或模塊按照各自的需要錄入系統(tǒng),沒有統(tǒng)一的錄入工具和數(shù)據(jù)出口,業(yè)務(wù)系統(tǒng)不需要的信息就不錄,造成同樣的數(shù)據(jù)有不同的信息屬性,再或者取數(shù)動作不規(guī)范,或許某個數(shù)據(jù)本身就是采集過來的,本來就是不完整的,數(shù)據(jù)完整性無法得到保障。
數(shù)據(jù)不合規(guī):沒有統(tǒng)一的數(shù)據(jù)管理平臺和數(shù)據(jù)源頭,數(shù)據(jù)生命周期管理不完整,同時企業(yè)各信息系統(tǒng)的數(shù)據(jù)錄入環(huán)節(jié)過于簡單且手工參與較多,就數(shù)據(jù)本身而言,缺少是否重復、合法、對錯等校驗環(huán)節(jié),導致各個信息系統(tǒng)的數(shù)據(jù)不夠準確,格式混亂,各類數(shù)據(jù)難以集成和統(tǒng)一,沒有質(zhì)量控制導致海量數(shù)據(jù)因質(zhì)量過低而難以被利用。
數(shù)據(jù)時效性差:大數(shù)據(jù)項目對數(shù)據(jù)的時效性要求是非常嚴格的,比如離線項目是每天計算前一天的數(shù)據(jù),如果前一天的源數(shù)據(jù)因為某些原因沒有被及時的傳輸過來,這樣就會嚴重影響后面指標的計算以及報表的生成。
數(shù)據(jù)冗余:各個信息系統(tǒng)針對數(shù)據(jù)的標準規(guī)范不一、編碼規(guī)則不一、校驗標準不一、且部分業(yè)務(wù)系統(tǒng)針對數(shù)據(jù)的驗證標準缺失,造成了企業(yè)頂層視角的數(shù)據(jù)出現(xiàn)“一物多碼,一碼多物”等現(xiàn)象。
數(shù)據(jù)不精確:數(shù)據(jù)的精確性也是指數(shù)據(jù)的準確性,是指數(shù)據(jù)是否與目標值匹配;比如一個訂購金額,如果遠遠大于或低于常規(guī)的數(shù)值,那么我們就要懷疑這個的數(shù)據(jù)的精確性不夠。
那么如何判斷數(shù)據(jù)質(zhì)量的優(yōu)劣?從哪些方面可以評估數(shù)據(jù)質(zhì)量?在實踐中,我們可以通過數(shù)據(jù)質(zhì)量評估維度進行評估。數(shù)據(jù)質(zhì)量評估維度是數(shù)據(jù)質(zhì)量的特征之一,它們?yōu)槎攘亢凸芾頂?shù)據(jù)的質(zhì)量提供了一種途徑和標準。在一個具體的數(shù)據(jù)質(zhì)量項目中,要選擇最適用于業(yè)務(wù)需求的數(shù)據(jù)質(zhì)量維度進行測量,以評價數(shù)據(jù)的質(zhì)量。
在《GB/T36344-信息技術(shù)數(shù)據(jù)質(zhì)量評價指標》中,國家標準化管理委員會明確了數(shù)據(jù)質(zhì)量評價指標框架如圖2所示。
圖2
- 規(guī)范性:數(shù)據(jù)符合數(shù)據(jù)標準、數(shù)據(jù)模型、業(yè)務(wù)規(guī)則、元數(shù)據(jù)或權(quán)威參考數(shù)據(jù)的程度。
- 完整性:按照數(shù)據(jù)規(guī)則要求,數(shù)據(jù)元素被賦予數(shù)值的程度。
- 準確性:數(shù)據(jù)準確表示其所描述的真實實體(實際對象)真實值的程度。
- 一致性:數(shù)據(jù)與其他特定上下文中使用的數(shù)據(jù)無矛盾的程度。
- 時效性:數(shù)據(jù)在時間變化中的正確程度。
- 可訪問性:數(shù)據(jù)能被訪問的程度。
Part 03、目前常用的數(shù)據(jù)質(zhì)量管理工具
3.1 Apache Griffin
Griffin是一個開源的大數(shù)據(jù)質(zhì)量解決方案, 2016年12月07日進入 Apache 孵化,由eBay開源,它支持批處理和流模式兩種數(shù)據(jù)質(zhì)量檢測方式,是一個基于Hadoop和Spark建立的數(shù)據(jù)質(zhì)量服務(wù)平臺 (DQSP),如圖3所示。它提供了一個全面的框架來處理不同的任務(wù),例如定義數(shù)據(jù)質(zhì)量模型、執(zhí)行數(shù)據(jù)質(zhì)量測量、自動化數(shù)據(jù)分析和驗證,以及跨多個數(shù)據(jù)系統(tǒng)的統(tǒng)一數(shù)據(jù)質(zhì)量可視化。
圖3
Griffin由Define、Measure、Analyze三大模塊組成,各個部分的職責如下:
Define:主要負責定義數(shù)據(jù)質(zhì)量統(tǒng)計的維度,比如數(shù)據(jù)質(zhì)量統(tǒng)計的時間跨度、統(tǒng)計的目標(源端和目標端的數(shù)據(jù)數(shù)量是否一致,數(shù)據(jù)源里某一字段的非空的數(shù)量、不重復值的數(shù)量、最大值、最小值、top5的值數(shù)量等)。
Measure:主要負責執(zhí)行統(tǒng)計任務(wù),生成統(tǒng)計結(jié)果。這一塊主要技術(shù)棧使用的是Livy+ Spark,Spark作為執(zhí)行引擎,Apache Livy基于Spark的開源REST服務(wù),它能夠通過REST的方式將代碼片段或是序列化的二進制代碼提交到Spark集群中去執(zhí)行。
Analyze:主要負責保存與展示統(tǒng)計結(jié)果。
-現(xiàn)狀分析:
- Griffin的社區(qū)并不太活躍,現(xiàn)在最新版本還是0.6,網(wǎng)上技術(shù)文檔并不算太多, 擔心出了問題比較難找到解決方案。
- 從技術(shù)棧的角度Livy過于小眾,數(shù)據(jù)存儲方面ES的運維對于一個小團隊來說也比較麻煩。
- 針對數(shù)據(jù)檢查任務(wù)的調(diào)度和數(shù)據(jù)檢查結(jié)果的后續(xù)處理方面,Griffin一般還需要和現(xiàn)有的大數(shù)據(jù)調(diào)度平臺打通,也有一定的工作量。
3.2 Apache DolphinScheduler
在2022年4月22日,Apache DolphinScheduler 正式宣布 3.0.0 alpha 版本發(fā)布,此版本中用戶期待已久的數(shù)據(jù)質(zhì)量校驗應(yīng)用功能上線,實現(xiàn)了數(shù)據(jù)質(zhì)量的原生支持,支持在工作流運行前進行數(shù)據(jù)質(zhì)量的校驗,可由用戶自定義數(shù)據(jù)質(zhì)量的校驗規(guī)則,實現(xiàn)了任務(wù)運行過程中對數(shù)據(jù)質(zhì)量的嚴格控制和運行結(jié)果的監(jiān)控,如圖4所示。
圖4
-現(xiàn)狀分析:
- DolphinScheduler作為一個任務(wù)調(diào)度系統(tǒng),具備了執(zhí)行任務(wù)的基礎(chǔ),不需要引入新的組件來提交任務(wù);
- 數(shù)據(jù)質(zhì)量檢查可以作為一種任務(wù)類型無縫接入到工作流當中;
- 無需新增其他服務(wù)來增加運維的難度;
- 可以很好地與社區(qū)共建開源。
基于以上現(xiàn)狀,DolphinScheduler是一款比較適合與業(yè)務(wù)相結(jié)合進行二次開發(fā)的數(shù)據(jù)質(zhì)量工具,但是目前僅適用于離線數(shù)據(jù)驗證。
3.3 Deequ
Deequ是一個來自AWS實驗室的開源工具,可以用來驗證許多大型生產(chǎn)數(shù)據(jù)集的質(zhì)量。數(shù)據(jù)生產(chǎn)者可以通過添加和編輯數(shù)據(jù)質(zhì)量約束,使得系統(tǒng)定期計算數(shù)據(jù)質(zhì)量指標。當數(shù)據(jù)質(zhì)量約束成功時將數(shù)據(jù)集發(fā)布給消費者,錯誤時可停止數(shù)據(jù)集的發(fā)布,并通知生產(chǎn)者采取行動,這樣數(shù)據(jù)質(zhì)量問題就不會傳播到消費者的數(shù)據(jù)管道,從而減少它們的爆炸半徑。主要組件如圖5所示。
圖5
- 指標計算(Metrics Computation),Deequ 計算數(shù)據(jù)質(zhì)量指標,即完整性、最大值或相關(guān)性等統(tǒng)計數(shù)據(jù)。Deequ 使用 Spark 從 Amazon S3 等源中讀取數(shù)據(jù),并通過一組優(yōu)化的聚合查詢計算指標。
- 約束驗證(Constraint Verification),作為用戶,可以專注于定義一組要驗證的數(shù)據(jù)質(zhì)量約束,Deequ負責利用該約束在數(shù)據(jù)集上進行計算,進而生成數(shù)據(jù)質(zhì)量報告,其中包含約束驗證的結(jié)果。
- 約束建議(Constraint Suggestion),可以選擇自定義所需的數(shù)據(jù)質(zhì)量約束,或使用自動約束建議方法來分析數(shù)據(jù)以推斷有用的約束。
-現(xiàn)狀分析:
- Deequ和spark關(guān)聯(lián)密切,使用spark技術(shù)框架的可以考慮。
- 社區(qū)較為活躍,使用的較多。
3.4 Great Expectations
Great expectations是一個python的工具包,Python近幾年在數(shù)據(jù)分析領(lǐng)域大放異彩,而Python本身對于數(shù)據(jù)質(zhì)量問題的解決一直是一個大問題。而Great expectations正好彌補了這方面的不足。對于一些對Python支持良好的公司,可以優(yōu)先選擇Great expectations來進行數(shù)據(jù)質(zhì)量的解決方案建設(shè)。
-現(xiàn)狀分析:
- 版本更新快,Bug修復也快。
- 社區(qū)非?;钴S,值得長期關(guān)注。
- 上一篇
一文讀懂數(shù)據(jù)運營的指標體系
在大數(shù)據(jù)時代早期,大部分數(shù)據(jù)并沒有被充分地挖掘分析和利用。雖然數(shù)據(jù)規(guī)模非常大,但是卻很難利用這些數(shù)據(jù)創(chuàng)造價值。而數(shù)據(jù)中臺的提出及數(shù)據(jù)指標體系的構(gòu)建,使得數(shù)據(jù)產(chǎn)生了實際價值。
- 下一篇
RPA目前主要應(yīng)用在哪些行業(yè)?
隨著科技的不斷發(fā)展,機器人過程自動化(Robotic Process Automation,簡稱RPA)逐漸成為了企業(yè)和組織的熱門技術(shù)之一。然而,很多人對RPA的具體應(yīng)用范圍和領(lǐng)域還存在困惑。本文將探