人民南路建設(shè)廳網(wǎng)站咨詢電話營銷網(wǎng)站的宣傳、推廣與運(yùn)作
目錄
一、任務(wù)基線級別
二、任務(wù)級別 & 表級別
三、字段級別
1. 對指標(biāo)字段的監(jiān)控
2. 對維度字段的監(jiān)控
四、報(bào)表級別監(jiān)控
五、總結(jié)
跑了幾場面試,數(shù)據(jù)質(zhì)量怎么監(jiān)控是經(jīng)常被問到的問題,僅次于自我介紹。
因?yàn)閿?shù)據(jù)行業(yè)發(fā)展了幾年,數(shù)倉大體都建設(shè)成型了,數(shù)倉建設(shè)的方法論大家總結(jié)的也都差不多了,現(xiàn)在大家都開始關(guān)心數(shù)據(jù)質(zhì)量。
在大家心目中,一個合格的數(shù)倉要能產(chǎn)出及時、準(zhǔn)確的數(shù)據(jù),且對數(shù)據(jù)的質(zhì)量有自檢的過程,做到?jīng)]問題,或先于別人發(fā)現(xiàn)問題。
所以數(shù)據(jù)質(zhì)量監(jiān)控是數(shù)倉建設(shè)的一個重要部分。
之前的工作中,我總結(jié)了一套數(shù)據(jù)質(zhì)量監(jiān)控方法論,在這記一下。
監(jiān)控分為多個層次,從大到小說。
一、任務(wù)基線級別
凡是數(shù)倉ETL任務(wù),都有上游和下游,就像B表必須依賴于A表產(chǎn)出,C表又依賴于B表產(chǎn)出。
所有的任務(wù),按上下游的關(guān)系組織起來,會形成一個有向無環(huán)圖,舉個例子如下圖:
假如E表非常重要(例如是線上服務(wù)表),需要對它進(jìn)行基線級別的監(jiān)控,把E表配置進(jìn)基線監(jiān)控任務(wù)后,E表的所有上游就都會進(jìn)入基線的監(jiān)控范圍。
在上圖中,
如果是E表配置基線,基線會同時監(jiān)控根節(jié)點(diǎn)及ABCD表。
如果是D表配置基線,基線同時會監(jiān)控根節(jié)點(diǎn)及AB表。
基線要監(jiān)控什么呢?主要分為兩個方面,所有任務(wù)運(yùn)行時長及結(jié)果任務(wù)產(chǎn)出時間。
所有任務(wù)運(yùn)行時長:假如A表每天的運(yùn)行時長是1h,今天突然變成3h了,那么監(jiān)控系統(tǒng)則會標(biāo)志此 任務(wù)運(yùn)行異常,會報(bào)警給基線負(fù)責(zé)人和任務(wù)負(fù)責(zé)人。
結(jié)果任務(wù)產(chǎn)出時間:如果和下游簽訂了SLA協(xié)議,規(guī)定E表每天7點(diǎn)前產(chǎn)出,那么如果E表今天6點(diǎn)30還沒產(chǎn)出,基線直接預(yù)警給基線負(fù)責(zé)人和任務(wù)負(fù)責(zé)人,預(yù)警時間一般會比產(chǎn)出時間要提前一點(diǎn),給檢修任務(wù)留出時間。
二、任務(wù)級別 & 表級別
對于一個成熟的數(shù)倉來說,絕大多數(shù)情況下,表和ETL任務(wù)都是一一對應(yīng)的。
上一點(diǎn)中,基線監(jiān)控了一條任務(wù)流,監(jiān)控強(qiáng)度是最大的,那么僅次于基線的就是單個任務(wù)的監(jiān)控。
單個任務(wù)監(jiān)控什么呢?主要三方面:任務(wù)運(yùn)行時長、任務(wù)產(chǎn)出時間、表產(chǎn)出大小。
任務(wù)運(yùn)行時長:某任務(wù)平時1h能運(yùn)行完,今天突然變成3h,那么認(rèn)為異常,告警給任務(wù)負(fù)責(zé)人。
任務(wù)產(chǎn)出時間:某任務(wù)平時7點(diǎn)產(chǎn)出,今天7點(diǎn)沒產(chǎn)出,那么認(rèn)為異常,告警給任務(wù)負(fù)責(zé)人。
表產(chǎn)出大小:某表平時每天產(chǎn)出大小1T,今天突然變成500G了,那么認(rèn)為異常,告警給表負(fù)責(zé)人。
三、字段級別
任務(wù)定時產(chǎn)出,表大小也符合預(yù)期,那接下來,我們就要做更細(xì)致的監(jiān)控了。
即字段級別的監(jiān)控。
字段級別的監(jiān)控一般通過DQC任務(wù)實(shí)現(xiàn)( DQC = Data Quality Center,數(shù)據(jù)質(zhì)量中心),可監(jiān)控的內(nèi)容細(xì)致也瑣碎,我把字段監(jiān)控分為兩種類型,對指標(biāo)字段的監(jiān)控和對維度字段的監(jiān)控。
1. 對指標(biāo)字段的監(jiān)控
對于指標(biāo)字段,我們一般關(guān)心它的均值、最大、最小、中位數(shù)等。
指標(biāo)字段,我們關(guān)心它的波動程度,一般來說,會把今天的指標(biāo)與昨天(日)、近7天的平均值(周)、近30天的平均值(月)做比較,看波動率,波動率超過某個閾值,則告警給DQC任務(wù)配置的人(因?yàn)榕渲萌蝿?wù)的人最關(guān)心這個指標(biāo)數(shù)據(jù)的質(zhì)量)。
2. 對維度字段的監(jiān)控
維度字段,我們監(jiān)控三個方面:維度覆蓋率、維度占比、維度下指標(biāo)的波動。
維度覆蓋率:例如性別字段,男女,預(yù)期覆蓋率90%,如果某天數(shù)據(jù)低于90%,則預(yù)警給DQC任務(wù)配置的人。
維度占比:例如男女對應(yīng)的記錄條數(shù)占比,如果今天男性40%、女性50%、未知10%,以往男性占60%、女性占30%、未知占10%(以往可能是昨天、7天平均、30天平均等)我們有理由懷疑數(shù)據(jù)質(zhì)量有問題,預(yù)警給DQC任務(wù)配置的人。
維度下指標(biāo)的波動:例如某應(yīng)用(如微信)男女的平均使用時長,同樣可與昨天、7天平均、30天平均作對比,有問題預(yù)警給DQC任務(wù)配置的人。
四、報(bào)表級別監(jiān)控
報(bào)表級別監(jiān)控一般是把上述的某些監(jiān)控內(nèi)容可視化,并廣播給項(xiàng)目組所有的人,讓大家更直觀地看到數(shù)據(jù)的變化。
報(bào)表監(jiān)控一般用趨勢圖,陡升陡降在趨勢圖中會非常明顯地看到。
五、總結(jié)
總結(jié)一下,列個表:
————————————————
版權(quán)聲明:本文為CSDN博主「瘋狂的土豆1652」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_33310807/article/details/129016896