企業(yè)數(shù)倉(cāng)DQC數(shù)據(jù)質(zhì)量管理實(shí)踐篇
一.數(shù)據(jù)質(zhì)量管理背景
??以大數(shù)據(jù)平臺(tái)的核心理念是構(gòu)建于業(yè)務(wù)之上,用數(shù)據(jù)為業(yè)務(wù)創(chuàng)造價(jià)值。大數(shù)據(jù)平臺(tái)、數(shù)據(jù)倉(cāng)庫(kù)的搭建之初,優(yōu)先滿(mǎn)足業(yè)務(wù)的使用需求,數(shù)據(jù)質(zhì)量往往是被忽視的一環(huán)。但隨著業(yè)務(wù)的逐漸穩(wěn)定,數(shù)據(jù)質(zhì)量越來(lái)越被人們所重視。
? ?現(xiàn)在數(shù)據(jù)倉(cāng)庫(kù)層面的工作越來(lái)越多,開(kāi)發(fā)人員也越來(lái)越多,如何保障數(shù)據(jù)準(zhǔn)確性是一項(xiàng)非常重要的工作,數(shù)據(jù)倉(cāng)庫(kù)的很多應(yīng)用數(shù)據(jù)直接呈現(xiàn)給用戶(hù)或者支撐企業(yè)分析決策的,容不得數(shù)據(jù)出現(xiàn)錯(cuò)誤。隨著開(kāi)展的業(yè)務(wù)越來(lái)越多,數(shù)據(jù)模型越來(lái)也多,我們管控的越晚就越容易出問(wèn)題。盡管有數(shù)據(jù)倉(cāng)庫(kù)建設(shè)規(guī)范,同樣在數(shù)據(jù)模型命名,數(shù)據(jù)邏輯開(kāi)發(fā),每個(gè)人都可能不一樣,而這些也容易導(dǎo)致數(shù)據(jù)模型準(zhǔn)確性的問(wèn)題。
? ? 千里之堤,潰于蟻穴,糟糕的數(shù)據(jù)質(zhì)量往往就會(huì)帶來(lái)低效的數(shù)據(jù)開(kāi)發(fā),不準(zhǔn)確的數(shù)據(jù)分析,最終導(dǎo)致錯(cuò)誤的業(yè)務(wù)決策。所以我們迫切需要制定一套數(shù)據(jù)的準(zhǔn)確性驗(yàn)證流程,讓大家都按規(guī)范流程來(lái)做,保障數(shù)據(jù)的準(zhǔn)確性。

二.數(shù)據(jù)質(zhì)量管理定義
? ? 數(shù)據(jù)質(zhì)量管理(Data Quality Management),是指對(duì)數(shù)據(jù)從計(jì)劃、獲取、存儲(chǔ)、共享、維護(hù)、應(yīng)用、消亡生命周期的每個(gè)階段里可能引發(fā)的各類(lèi)數(shù)據(jù)質(zhì)量問(wèn)題,進(jìn)行識(shí)別、度量、監(jiān)控、預(yù)警等一系列管理活動(dòng),并通過(guò)改善和提高組織的管理水平使得數(shù)據(jù)質(zhì)量獲得進(jìn)一步提高。
? ? 數(shù)據(jù)質(zhì)量管理不是一時(shí)的數(shù)據(jù)治理手段,而是循環(huán)的管理過(guò)程。其終極目標(biāo)是通過(guò)可靠的數(shù)據(jù),提升數(shù)據(jù)在使用中的價(jià)值,并最終為企業(yè)贏得經(jīng)濟(jì)效益

三.數(shù)據(jù)質(zhì)量管理影響因素
? ? ?數(shù)據(jù)問(wèn)題的來(lái)源可能產(chǎn)生于從數(shù)據(jù)源頭到數(shù)據(jù)存儲(chǔ)介質(zhì)的各個(gè)環(huán)節(jié)。在數(shù)據(jù)采集階段,數(shù)據(jù)的真實(shí)性、準(zhǔn)確性、完整性、時(shí)效性都會(huì)影響數(shù)據(jù)質(zhì)量。除此之外,數(shù)據(jù)的加工、存儲(chǔ)過(guò)程都有可能涉及對(duì)原始數(shù)據(jù)的修改,從而引發(fā)數(shù)據(jù)的質(zhì)量問(wèn)題。所以,技術(shù)、流程、管理等多方面的因素都有可能會(huì)影響到數(shù)據(jù)質(zhì)量。
? ? ?在企業(yè)中,隨著企業(yè)業(yè)務(wù)的增長(zhǎng),數(shù)據(jù)也是一個(gè)增量積累的過(guò)程。隨著數(shù)據(jù)類(lèi)型、數(shù)據(jù)來(lái)源的不斷豐富以及數(shù)據(jù)數(shù)量的快速增長(zhǎng),企業(yè)在數(shù)據(jù)管理工作和數(shù)據(jù)流程中面臨越來(lái)越多的數(shù)據(jù)質(zhì)量問(wèn)題。而且數(shù)據(jù)質(zhì)量的管理并沒(méi)有被企業(yè)重視起來(lái),其根本原因還是ROI并沒(méi)有那么明顯。? ? ?
? ? 數(shù)據(jù)質(zhì)量管理相對(duì)來(lái)說(shuō)成本比較高。因?yàn)樗婕暗狡髽I(yè)數(shù)據(jù)標(biāo)準(zhǔn)的制定、規(guī)范的落地、生命周期的管理等多個(gè)環(huán)節(jié)。從收益上來(lái)說(shuō),數(shù)據(jù)質(zhì)量的效益和結(jié)果并不是十分明顯,大部分企業(yè)不會(huì)把數(shù)據(jù)質(zhì)量作為KPI。在企業(yè)的不同系統(tǒng)中,業(yè)務(wù)領(lǐng)域的關(guān)鍵指標(biāo)不一致,數(shù)據(jù)無(wú)法共享導(dǎo)致出現(xiàn)數(shù)據(jù)孤島,大量數(shù)據(jù)無(wú)法關(guān)聯(lián),并且有明顯的數(shù)據(jù)冗余等問(wèn)題,還有數(shù)據(jù)的維護(hù)需要投入大量的人員、時(shí)間、軟硬件成本。所以數(shù)據(jù)的質(zhì)量管理往往被會(huì)邊緣化甚至趨向于無(wú)。
四.數(shù)據(jù)質(zhì)量管理的維度

1、數(shù)據(jù)完整性
完整性指的是數(shù)據(jù)信息是否存在缺失的狀況,數(shù)據(jù)缺失的情況可能是整個(gè)數(shù)據(jù)記錄缺失,也可能是數(shù)據(jù)中某個(gè)字段信息的記錄缺失。
2、數(shù)據(jù)規(guī)范性
規(guī)范性指的是描述數(shù)據(jù)遵循預(yù)定的語(yǔ)法規(guī)則的程度,是否符合其定義,比如數(shù)據(jù)的類(lèi)型、格式、取值范圍等。
3、數(shù)據(jù)一致性
一致性是指數(shù)據(jù)是否遵循了統(tǒng)一的規(guī)范,數(shù)據(jù)集合是否保持了統(tǒng)一的格式。數(shù)據(jù)質(zhì)量的一致性主要體現(xiàn)在數(shù)據(jù)記錄的規(guī)范和數(shù)據(jù)是否符合邏輯,一致性并不意味著數(shù)值上的絕對(duì)相同,而是數(shù)據(jù)收集、處理的方法和標(biāo)準(zhǔn)的一致。常見(jiàn)的一致性指標(biāo)有:ID 重合度、屬性一致、取值一致、采集方法一致、轉(zhuǎn)化步驟一致。
4、數(shù)據(jù)準(zhǔn)確性
準(zhǔn)確性是指數(shù)據(jù)記錄的信息是否存在異?;蝈e(cuò)誤。和一致性不一樣,存在準(zhǔn)確性問(wèn)題的數(shù)據(jù)不僅僅只是規(guī)則上的不一致,更為常見(jiàn)的數(shù)據(jù)準(zhǔn)確性錯(cuò)誤就如亂碼,其次異常的大或者小的數(shù)據(jù)也是不符合條件的數(shù)據(jù)。常見(jiàn)的準(zhǔn)確性指標(biāo)有:缺失值占比、錯(cuò)誤值占比、異常值占比、抽樣偏差、數(shù)據(jù)噪聲。
5、數(shù)據(jù)唯一性
唯一性指的是數(shù)據(jù)庫(kù)的數(shù)據(jù)不存在重復(fù)的情形。比如真實(shí)成交 1 萬(wàn)條,但數(shù)據(jù)表有 3000 條重復(fù)了,成了 1.3 萬(wàn)條成交記錄,這種數(shù)據(jù)不符合數(shù)據(jù)唯一性。
6、數(shù)據(jù)及時(shí)性
及時(shí)性是指數(shù)據(jù)從產(chǎn)生到可以查看的時(shí)間間隔,也叫數(shù)據(jù)的延時(shí)時(shí)長(zhǎng)。比如一份數(shù)據(jù)是統(tǒng)計(jì)離線(xiàn)今日的,結(jié)果都是第二天甚至第三天才能統(tǒng)計(jì)完,這種數(shù)據(jù)不符合數(shù)據(jù)及時(shí)性。
五. 數(shù)據(jù)質(zhì)量實(shí)施流程

1、事前管理
1)測(cè)試驗(yàn)證
測(cè)試驗(yàn)證方法如下:
總量核對(duì),核對(duì)上下兩步的數(shù)據(jù)總條數(shù),沒(méi)有過(guò)濾條件的話(huà)應(yīng)該是一致的。
多維度統(tǒng)計(jì),復(fù)雜的多維度指標(biāo)拆分成單維度SQL統(tǒng)計(jì),對(duì)每個(gè)指標(biāo)分別進(jìn)行核查。
多表關(guān)聯(lián)統(tǒng)計(jì),拆分成中間表進(jìn)行核對(duì)每一步驟的指標(biāo)。
明細(xì)到指標(biāo)統(tǒng)計(jì),比如隨機(jī)找一臺(tái)車(chē)的明細(xì)和最后統(tǒng)計(jì)的指標(biāo)進(jìn)行核對(duì)。
新老統(tǒng)計(jì)對(duì)比,比如有些指標(biāo)是遷移或者之前業(yè)務(wù)手工制作,可以開(kāi)發(fā)后的新指標(biāo)同老指標(biāo)進(jìn)行對(duì)比。
測(cè)試需要有專(zhuān)門(mén)的數(shù)據(jù)測(cè)試人員進(jìn)行測(cè)試,輸出測(cè)試用例和測(cè)試報(bào)告。
2)上線(xiàn)審核
需要對(duì)上線(xiàn)的SQL代碼進(jìn)行審核,主要從以下幾個(gè)方面:
對(duì)查詢(xún)表的where后面的條件、join關(guān)聯(lián)字段、group by分組字段等重點(diǎn)檢查邏輯,和需求理解結(jié)合審核。
數(shù)據(jù)集命名、數(shù)據(jù)集字段命名、任務(wù)名稱(chēng)進(jìn)行審核,是否按照數(shù)據(jù)倉(cāng)庫(kù)建設(shè)規(guī)范中的業(yè)務(wù)域、維度、原子指標(biāo)、修飾類(lèi)型、修飾詞、時(shí)間周期、派生指標(biāo)等標(biāo)準(zhǔn)進(jìn)行命名。
代碼注釋審核,每一步處理需要有注釋該步驟的作用,每個(gè)指標(biāo)也要有注釋?zhuān)瑆here條件等也要添加注釋。
重要任務(wù)是否開(kāi)啟短信告警,任務(wù)啟動(dòng)時(shí)間等審核。
任務(wù)上線(xiàn)的位置是否符合上線(xiàn)標(biāo)準(zhǔn),比如上線(xiàn)的數(shù)據(jù)層級(jí)與業(yè)務(wù)層級(jí)等。
上線(xiàn)審核需要審核人員按照以上步驟進(jìn)行審核,對(duì)不合理的地方進(jìn)行指正,審核人員和開(kāi)發(fā)人員共同保障代碼質(zhì)量。
3)流程規(guī)范
l 需求上線(xiàn)時(shí)候需要在知識(shí)庫(kù)中完成所開(kāi)發(fā)需求邏輯說(shuō)明
l 復(fù)雜需求(比如項(xiàng)目指標(biāo)),需要團(tuán)隊(duì)至少兩人以上評(píng)審需求后開(kāi)發(fā)。
提交上線(xiàn)申請(qǐng)的同事需要備注上需求邏輯說(shuō)明。
l 審核上線(xiàn)人員為“輪值”,審核上線(xiàn)人員需要review開(kāi)發(fā)人員的代碼,需要和開(kāi)發(fā)人員共同承擔(dān)代碼質(zhì)量
2、事中監(jiān)控?cái)?shù)據(jù)質(zhì)量
指標(biāo)開(kāi)發(fā)完成后,需要對(duì)指標(biāo)的波動(dòng)情況進(jìn)行監(jiān)控,發(fā)現(xiàn)波動(dòng)較大的進(jìn)行核查,指標(biāo)波動(dòng)范圍需要具體業(yè)務(wù)具體制定,需要業(yè)務(wù)人員協(xié)助確認(rèn)。常用的數(shù)據(jù)質(zhì)量監(jiān)控方法如下:
1)校驗(yàn)每天的記錄數(shù)
分析師遇到的最常見(jiàn)數(shù)據(jù)異常是其報(bào)告的輸出突然降至0。我們通常會(huì)發(fā)現(xiàn)最后的罪魁禍?zhǔn)资钱?dāng)天沒(méi)有將新記錄添加到相應(yīng)的表中。一種簡(jiǎn)單的檢查方法是確保每天一個(gè)表中的新記錄數(shù)>0。
2)NULL和0值校驗(yàn)
分析師常遇到的第二個(gè)問(wèn)題是NULL或0值。我們要保證每天增量數(shù)據(jù)中的NULL或0值不能超過(guò)新增數(shù)據(jù)的99%。要檢查這一點(diǎn),只需將一個(gè)循環(huán)腳本設(shè)置為每天用NULL或0計(jì)數(shù)一個(gè)表中的新記錄數(shù)。如果看到記錄數(shù)急劇增加,則可能存在轉(zhuǎn)換錯(cuò)誤或源業(yè)務(wù)系統(tǒng)就存在異常。
3)每天新增的記錄數(shù)波動(dòng)范圍
某一天你發(fā)現(xiàn)數(shù)據(jù)量出現(xiàn)大幅增長(zhǎng)或下降,而規(guī)則1和2都已校驗(yàn)通過(guò)。這種波動(dòng)可能是正常的,比如電商行業(yè)某天的大促活動(dòng),或者社交軟件的營(yíng)銷(xiāo)活動(dòng)。但是也可能這就是異常的,是因?yàn)閺脑聪到y(tǒng)抽取了重復(fù)的記錄。所以針對(duì)此種情況,我們也要制定數(shù)據(jù)質(zhì)量規(guī)則,檢查這些波動(dòng)何時(shí)發(fā)生,并主動(dòng)進(jìn)行診斷。比如自動(dòng)執(zhí)行的一個(gè)簡(jiǎn)單的SQL過(guò)程,每天檢查COUNT個(gè)新記錄是否在7天跟蹤平均值的誤差范圍內(nèi)。閾值和誤差范圍可能因公司和產(chǎn)品而異,經(jīng)驗(yàn)值一般是加減25%。當(dāng)然,你可也可以直接和前一天的數(shù)據(jù)對(duì)比,增量不超過(guò)前一天的1倍。
4)重復(fù)記錄數(shù)據(jù)校驗(yàn)
不管是電商系統(tǒng)或者是社交系統(tǒng)或者是物聯(lián)網(wǎng)設(shè)備上報(bào)的數(shù)據(jù),正常情況下都不會(huì)出現(xiàn)兩條完全一樣的記錄(包括ID,時(shí)間,值都一樣)。筆者曾遇到一個(gè)終端上報(bào)的兩條數(shù)據(jù)完全一樣的場(chǎng)景,導(dǎo)致我在做時(shí)間分段時(shí)候,劃分不正確。所以,對(duì)數(shù)據(jù)值唯一性校驗(yàn)是有必要的。
5)數(shù)據(jù)時(shí)間校驗(yàn)
? 一般我們業(yè)務(wù)系統(tǒng)的數(shù)據(jù)都是帶有時(shí)間戳的,這個(gè)時(shí)間戳肯定比當(dāng)前的時(shí)間要小。但是由于采集數(shù)據(jù)設(shè)備異常(業(yè)務(wù)系統(tǒng)異常),我們會(huì)碰到“未來(lái)時(shí)間”的數(shù)據(jù),那如果我們以時(shí)間作為分區(qū),后期可能就會(huì)出現(xiàn)異常的分析結(jié)果。當(dāng)然,如果你的公司業(yè)務(wù)是跨國(guó)的,你需要考慮時(shí)差因素。
3、事后分析和問(wèn)題跟蹤
? ? 每周定時(shí)跑一次程序,對(duì)全局?jǐn)?shù)據(jù)進(jìn)行質(zhì)量稽核控制,如唯一性,非空性等對(duì)于程序跑出來(lái)的數(shù)據(jù):數(shù)據(jù)質(zhì)量概覽在數(shù)據(jù)質(zhì)量管理系統(tǒng)查詢(xún)數(shù)據(jù)質(zhì)量明細(xì)數(shù)據(jù)在數(shù)據(jù)質(zhì)量管理系統(tǒng)查詢(xún)根據(jù)異常數(shù)據(jù)統(tǒng)計(jì)出來(lái)的各種數(shù)據(jù)質(zhì)量報(bào)表也可以在數(shù)據(jù)質(zhì)量管理系統(tǒng)查詢(xún),包括表覆蓋率,歷史趨勢(shì),綜合分析,排名分析等(質(zhì)量報(bào)告支持導(dǎo)出為word,pdf,excel)對(duì)異常進(jìn)行評(píng)估、嚴(yán)重程度、影響范圍、問(wèn)題分類(lèi)等可以訂閱自己比較關(guān)心的主題,表或者規(guī)則,郵件只會(huì)發(fā)送訂閱內(nèi)容對(duì)于打分比較低的表或者業(yè)務(wù),可以反推業(yè)務(wù)方進(jìn)行整改
六.最后總結(jié)一下
? ? ?要想真正解決數(shù)據(jù)質(zhì)量問(wèn)題,就要明確業(yè)務(wù)需求并從需求開(kāi)始控制數(shù)據(jù)質(zhì)量,并建立數(shù)據(jù)質(zhì)量管理機(jī)制。從業(yè)務(wù)出發(fā)做問(wèn)題定義,由工具自動(dòng)、及時(shí)發(fā)現(xiàn)問(wèn)題,明確問(wèn)題責(zé)任人,通過(guò)郵件、短信等方式進(jìn)行通知,保證問(wèn)題及時(shí)通知到責(zé)任人。跟蹤問(wèn)題整改進(jìn)度,保證數(shù)據(jù)質(zhì)量問(wèn)題全過(guò)程的管理。
本文使用 文章同步助手 同步