數(shù)倉數(shù)據(jù)質(zhì)量管理,需要注意哪些問題?

6 評論 12662 瀏覽 26 收藏 14 分鐘

接著上次聊的企業(yè)數(shù)倉數(shù)據(jù)質(zhì)量管理流程,我們來詳細(xì)聊聊數(shù)倉數(shù)據(jù)質(zhì)量管理的各個(gè)環(huán)節(jié)我們都該考慮哪些問題?做哪些事情?怎么做?

一、數(shù)據(jù)資產(chǎn)等級劃分

1. 等級定義

根據(jù)“當(dāng)數(shù)據(jù)質(zhì)量不滿足完整性、準(zhǔn)確性、一致性、及時(shí)性時(shí),對業(yè)務(wù)的影響程度大小”來劃分?jǐn)?shù)據(jù)的資產(chǎn)等級。

  • 毀滅性:數(shù)據(jù)一旦出錯(cuò),會引起巨大的資產(chǎn)損失,面臨重大收益受損等。標(biāo)記為L1
  • 全局性:數(shù)據(jù)用于集團(tuán)業(yè)務(wù)、企業(yè)級效果評估和重要決策任務(wù)等。標(biāo)記為L2
  • 局部性:數(shù)據(jù)用于某個(gè)業(yè)務(wù)線的日常運(yùn)營、分析報(bào)告等,如果出現(xiàn)問題會給該業(yè)務(wù)線造成一定的影響或影響其工作效率。標(biāo)記為L3
  • 一般性:數(shù)據(jù)用于日常數(shù)據(jù)分析,出現(xiàn)問題的帶來的影響很小。標(biāo)記為L4
  • 未知性質(zhì):無法追溯數(shù)據(jù)的應(yīng)用場景。標(biāo)記為Lx

重要程度:L1>L2>L3>L4>Lx。如果一份數(shù)據(jù)出現(xiàn)在多個(gè)應(yīng)用場景中,則根據(jù)其最重要程度進(jìn)行標(biāo)記。

2. 等級劃分

(1)分析數(shù)據(jù)鏈路

定義數(shù)據(jù)資產(chǎn)等級后,我們可以從數(shù)據(jù)流程鏈路開始進(jìn)行數(shù)據(jù)資產(chǎn)等級標(biāo)記,完成數(shù)據(jù)資產(chǎn)等級確認(rèn),給不同的數(shù)據(jù)定義不同的重要程度。

通用的數(shù)據(jù)流轉(zhuǎn)鏈路流程如下圖所示:

(2)標(biāo)記數(shù)據(jù)資產(chǎn)等級

在所有數(shù)據(jù)鏈路上,整理出消費(fèi)各個(gè)表的應(yīng)用業(yè)務(wù)。通過給這些應(yīng)用業(yè)務(wù)劃分?jǐn)?shù)據(jù)資產(chǎn)等級,結(jié)合數(shù)據(jù)的上下游依賴關(guān)系,將整個(gè)鏈路打上某一類資產(chǎn)等級標(biāo)簽。

舉例

假設(shè)公司有統(tǒng)一的訂單服務(wù)中心。應(yīng)用層的應(yīng)用業(yè)務(wù)是按照業(yè)務(wù)線,商品類型和地域統(tǒng)計(jì)公司的訂單數(shù)量和訂單金額,命名為order_num_amount。假設(shè)該應(yīng)用匯影響到整個(gè)企業(yè)的重要業(yè)務(wù)決策,我們可以把應(yīng)用定級為L2,從而整個(gè)數(shù)據(jù)鏈路上的表的數(shù)據(jù)等級,都可以標(biāo)記為L2-order_num_amount,一直標(biāo)記到源數(shù)據(jù)業(yè)務(wù)系統(tǒng),如下圖所示:

二、數(shù)據(jù)加工過程校驗(yàn)

1. 在線系統(tǒng)數(shù)據(jù)校驗(yàn)

在線業(yè)務(wù)系統(tǒng)聲場的數(shù)據(jù)是數(shù)據(jù)倉庫的主要數(shù)據(jù)來源。當(dāng)在線業(yè)務(wù)系統(tǒng)功能迭代時(shí),每次變更都會導(dǎo)致業(yè)務(wù)數(shù)據(jù)的變化。因此,數(shù)倉需要采取相應(yīng)的措施來適應(yīng)業(yè)務(wù)系統(tǒng)的復(fù)雜多變,及時(shí)保障數(shù)據(jù)的準(zhǔn)確性。

我們可以通過工具+人員管理并行的方式來盡可能的解決以上問題:既使用工具捕捉業(yè)務(wù)的每次變更,也要求業(yè)務(wù)開發(fā)部門及時(shí)通知到數(shù)據(jù)部門所發(fā)生的業(yè)務(wù)變更內(nèi)容。

(1)業(yè)務(wù)上線發(fā)布平臺

監(jiān)控業(yè)務(wù)上線發(fā)布平臺上的重大業(yè)務(wù)變更,通過訂閱這個(gè)發(fā)布過程,及時(shí)將變更內(nèi)容通知到數(shù)據(jù)部門。

由于業(yè)務(wù)系統(tǒng)復(fù)雜多變,若日常發(fā)布變更頻繁,那么每次都通知數(shù)據(jù)部門,會造成不必要的資源浪費(fèi)。這時(shí),我們可以使用之前已經(jīng)完成標(biāo)記的數(shù)據(jù)資產(chǎn)等級標(biāo)簽,針對涉及高等級數(shù)據(jù)應(yīng)用的數(shù)據(jù)資產(chǎn),整理出哪些類型的業(yè)務(wù)變更會影響數(shù)據(jù)的加工或者影響數(shù)據(jù)統(tǒng)計(jì)口徑的調(diào)整,則這些情況都必須及時(shí)通知到數(shù)據(jù)部門。

如果公司沒有自己的業(yè)務(wù)發(fā)布平臺,那么就需要與業(yè)務(wù)部門約定好,針對高等級的數(shù)據(jù)資產(chǎn)的業(yè)務(wù)變更,需要以郵件或者其他書面的說明及時(shí)反饋到數(shù)據(jù)部門。

(2)相關(guān)操作人員管理

工具只是輔助監(jiān)管的一種手段,而使用工具的人員才是核心。數(shù)據(jù)資產(chǎn)等級的上下游打通過程需要通知給在線業(yè)務(wù)系統(tǒng)開發(fā)人員,使其知道哪些是重要的核心數(shù)據(jù)資產(chǎn),提高在線開發(fā)人員的數(shù)據(jù)風(fēng)險(xiǎn)意識。

可以通過培訓(xùn)的方式,把數(shù)據(jù)質(zhì)量管理的訴求,數(shù)據(jù)質(zhì)量管理的整個(gè)數(shù)據(jù)加工過程,以及數(shù)據(jù)產(chǎn)品的應(yīng)用方式及應(yīng)用場景告知在線開發(fā)人員,使其了解數(shù)據(jù)的重要性、價(jià)值及風(fēng)險(xiǎn)。確保在線開發(fā)人員在完成業(yè)務(wù)目標(biāo)的同時(shí),也要考慮數(shù)據(jù)的目標(biāo),保持業(yè)務(wù)端和數(shù)據(jù)段一致。

2. 離線數(shù)據(jù)加工校驗(yàn)

從數(shù)據(jù)輸入到輸出數(shù)據(jù)產(chǎn)品應(yīng)用的大致流程如下圖所示:

我們可以看到,數(shù)據(jù)從業(yè)務(wù)系統(tǒng)上產(chǎn)生,通過數(shù)據(jù)同步工具進(jìn)入數(shù)倉系統(tǒng)。

數(shù)據(jù)在數(shù)倉系統(tǒng)中進(jìn)行數(shù)據(jù)加工處理后輸出一系列數(shù)據(jù)倉庫模型,同時(shí)也產(chǎn)生了許多數(shù)據(jù)倉庫代碼腳本。

最終再通過數(shù)據(jù)同步工具將加工處理后的數(shù)據(jù)倉庫模型同步到數(shù)據(jù)產(chǎn)品應(yīng)用中。

因此,保障數(shù)據(jù)加工過程中的質(zhì)量是保障離線數(shù)據(jù)倉庫整體數(shù)據(jù)質(zhì)量的重要環(huán)節(jié)。

數(shù)據(jù)加工上線流程如下圖所示:

在這些環(huán)節(jié)中,我們可以采用以下方式來保障數(shù)據(jù)質(zhì)量:

(1)代碼提交核查

開發(fā)相關(guān)的規(guī)則引擎,輔助代碼提交校驗(yàn)。規(guī)則分類大致為:

  • 代碼規(guī)范類規(guī)則:如表命名規(guī)范、字段命名規(guī)范、生命周期設(shè)置、表注釋等
  • 代碼質(zhì)量類規(guī)則:如分母為0提醒、NUll值參與計(jì)算提醒等
  • 代碼性能類規(guī)則:如大表提醒、重復(fù)計(jì)算監(jiān)測、大小表join操作提醒等

(2)代碼發(fā)布核查

加強(qiáng)測試環(huán)節(jié),測試環(huán)境測試后再發(fā)布到生成環(huán)境,且生成環(huán)境測試通過后才算發(fā)布成功。

(3)任務(wù)變更或重跑數(shù)據(jù)

在進(jìn)行數(shù)據(jù)更新操作前,需要通知下游數(shù)據(jù)變更原因、變更邏輯、變更時(shí)間等信息。下游沒有異議后,再按照約定時(shí)間執(zhí)行變更發(fā)布操作。

三、數(shù)據(jù)處理風(fēng)險(xiǎn)監(jiān)控

1. 在線數(shù)據(jù)處理風(fēng)險(xiǎn)點(diǎn)監(jiān)控

為確保在線業(yè)務(wù)系統(tǒng)的數(shù)據(jù)質(zhì)量,對在線業(yè)務(wù)系統(tǒng)的數(shù)據(jù)入庫進(jìn)行規(guī)則校驗(yàn)。

如,訂單記錄中,不得出現(xiàn)下單時(shí)間大于當(dāng)天時(shí)間或者下單時(shí)間小于業(yè)務(wù)系統(tǒng)上線時(shí)間等,若出現(xiàn)異常則報(bào)錯(cuò)。

隨著業(yè)務(wù)負(fù)責(zé)程度的提升,會導(dǎo)致規(guī)則繁多、規(guī)則配置的運(yùn)行成本增大,這時(shí)可以按照我們之前的數(shù)據(jù)資產(chǎn)等級有針對性的進(jìn)行監(jiān)控。

2. 離線數(shù)據(jù)處理風(fēng)險(xiǎn)點(diǎn)監(jiān)控

對于離線數(shù)據(jù)處理的風(fēng)險(xiǎn)點(diǎn)監(jiān)控主要是指:對數(shù)據(jù)調(diào)度平臺上所有數(shù)據(jù)處理調(diào)度進(jìn)行監(jiān)控。

以阿里的DataWorks數(shù)據(jù)調(diào)度產(chǎn)品為例,展開介紹。

(1)數(shù)據(jù)準(zhǔn)確性監(jiān)控

DataWorks中的DQC通過配置數(shù)據(jù)質(zhì)量校驗(yàn)規(guī)則,實(shí)現(xiàn)離線數(shù)據(jù)處理中的數(shù)據(jù)質(zhì)量監(jiān)控報(bào)警機(jī)制。

下圖是DQC的工作流程圖:

DQC數(shù)據(jù)監(jiān)控規(guī)則有強(qiáng)規(guī)則和弱規(guī)則:

  • 強(qiáng)規(guī)則:一旦觸發(fā)報(bào)警就會阻斷任務(wù)的執(zhí)行(將任務(wù)置為失敗狀態(tài),使下游任務(wù)不會被觸發(fā)執(zhí)行)。
  • 弱規(guī)則:只報(bào)警但不阻斷任務(wù)的執(zhí)行。

DQC提供常用的規(guī)則模板,包括表行數(shù)較N天前波動率、表空間大小較N天前波動率、字段最大/最小/平均值相比N天前波動率、字段空值/唯一個(gè)數(shù)等。

過多的檢查次數(shù)必然會導(dǎo)致整體調(diào)度任務(wù)的執(zhí)行性能,因此,哪些數(shù)據(jù)需要配置DQC規(guī)則、應(yīng)該配置什么規(guī)則,也需要通過數(shù)據(jù)資產(chǎn)等級來確定。

(2)數(shù)據(jù)及時(shí)性監(jiān)控

1)任務(wù)優(yōu)先級

對于DataWorks平臺的調(diào)度任務(wù),可以通過智能監(jiān)控工具進(jìn)行優(yōu)先級設(shè)置。DataWorks的調(diào)度是一個(gè)樹形結(jié)構(gòu),當(dāng)配置了葉子節(jié)點(diǎn)的優(yōu)先級,這個(gè)優(yōu)先級會傳遞到所有的上游節(jié)點(diǎn),而葉子節(jié)點(diǎn)通常就是服務(wù)業(yè)務(wù)的消費(fèi)節(jié)點(diǎn)。因此,在優(yōu)先級的設(shè)置上,要先確定業(yè)務(wù)的資產(chǎn)等級,等級越高的業(yè)務(wù)對應(yīng)的消費(fèi)節(jié)點(diǎn)優(yōu)先級越高,優(yōu)先調(diào)度并占用計(jì)算資源,確保高等級業(yè)務(wù)的準(zhǔn)時(shí)產(chǎn)出。

總之,就是按照數(shù)據(jù)資產(chǎn)等級優(yōu)先執(zhí)行高等級數(shù)據(jù)資產(chǎn)的調(diào)度任務(wù),優(yōu)先保障高等級業(yè)務(wù)的數(shù)據(jù)需求。

2)任務(wù)報(bào)警

任務(wù)報(bào)警和優(yōu)先級類似,通過DataWorks的智能監(jiān)控工具進(jìn)行配置,只需要配置葉子節(jié)點(diǎn)即可向上游傳遞報(bào)警配置。任務(wù)執(zhí)行過程中,可能出錯(cuò)或延遲,為了保障最重要數(shù)據(jù)(即資產(chǎn)等級高的數(shù)據(jù))產(chǎn)出,需要立即處理出錯(cuò)并介入處理延遲。

3)DataWorks智能監(jiān)控

DataWorks進(jìn)行離線任務(wù)調(diào)度時(shí),提供智能監(jiān)控工具,對調(diào)度任務(wù)進(jìn)行監(jiān)控告警。根據(jù)監(jiān)控規(guī)則和任務(wù)運(yùn)行情況,智能監(jiān)控決策是否報(bào)警、何時(shí)報(bào)警、如何報(bào)警以及給誰報(bào)警。智能監(jiān)控會自動選擇最合理的報(bào)警時(shí)間、報(bào)警方式以及報(bào)警對象。

以上內(nèi)容借助了阿里的DataWorks產(chǎn)品介紹文檔,下面說一下自己的理解:

離線數(shù)據(jù)處理風(fēng)險(xiǎn)監(jiān)控?zé)o外乎就是把離線數(shù)據(jù)加工過程中所遇到的問題及時(shí)反饋預(yù)警,然后人工及時(shí)進(jìn)行干預(yù)并處理。

對于數(shù)據(jù)準(zhǔn)確性的監(jiān)控,要看我們規(guī)則配置引擎的強(qiáng)大與否,通過數(shù)據(jù)處理日志中捕捉的出錯(cuò)信息,我們可以不斷的完善我們的規(guī)則配置引擎,從而不斷的提高整個(gè)平臺的產(chǎn)出數(shù)據(jù)的準(zhǔn)確性。

對于數(shù)據(jù)及時(shí)性的監(jiān)控,主要是調(diào)度資源的合理分配及優(yōu)化和及時(shí)出錯(cuò)報(bào)警機(jī)制。通過平臺資源的優(yōu)化配置,優(yōu)先產(chǎn)出高數(shù)據(jù)資產(chǎn)等級的數(shù)據(jù),用于滿足業(yè)務(wù)的數(shù)據(jù)及時(shí)性需求。

四、結(jié)語

從數(shù)倉數(shù)據(jù)質(zhì)量管理的基礎(chǔ)流程,到每個(gè)治理環(huán)節(jié)的實(shí)施方法論,從宏觀上就與大家先分享這么多內(nèi)容,后續(xù),結(jié)合實(shí)際工作總數(shù)倉數(shù)據(jù)質(zhì)量管理所遇到的問題,再和大家做深入的交流與探討。也歡迎各位小伙伴與我分享自己工作中遇到的問題,共同成長,共同進(jìn)步。

數(shù)據(jù)產(chǎn)品路上,與君共勉!

#相關(guān)閱讀#

怎么保障企業(yè)數(shù)據(jù)倉庫中的數(shù)據(jù)質(zhì)量?

 

本文由 @BennettC 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 發(fā)現(xiàn)有個(gè)錯(cuò)別字 ?? ??

    來自廣東 回復(fù)
    1. ??還是沒有看到

      回復(fù)
    2. “在線業(yè)務(wù)系統(tǒng)生產(chǎn)的數(shù)據(jù)”寫成了“在線業(yè)務(wù)系統(tǒng)聲場的數(shù)據(jù)”~

      來自上海 回復(fù)
    3. 哦哦,慚愧慚愧

      回復(fù)
  2. 老師好,想咨詢一下實(shí)踐中的問題,如果基于字段去界定,實(shí)踐中,數(shù)倉的表太多了,每個(gè)表都去標(biāo)記的話,工作量很大,這塊如何去操作呢?

    來自上海 回復(fù)
    1. 嗯嗯,是的,實(shí)際工作當(dāng)中,不可能做到對每個(gè)表都去進(jìn)行字段級別的規(guī)則配置。一是像您說的那樣,工作量太大;二是頻繁的字段校驗(yàn)會降低調(diào)度平臺的性能;所以,這就是我們?yōu)槭裁匆獎(jiǎng)澐謹(jǐn)?shù)據(jù)資產(chǎn)等級的目的,只對重大數(shù)據(jù)資產(chǎn)進(jìn)行較細(xì)粒度的規(guī)則配置,而對于普通的數(shù)據(jù)資產(chǎn)進(jìn)行粗粒度(一般必須保證數(shù)據(jù)的完整性即可)的規(guī)則配置即可。

      來自北京 回復(fù)