數倉數據質量管理,需要注意哪些問題?

6 評論 8747 瀏覽 15 收藏 14 分鐘

接著上次聊的企業數倉數據質量管理流程,我們來詳細聊聊數倉數據質量管理的各個環節我們都該考慮哪些問題?做哪些事情?怎么做?

一、數據資產等級劃分

1. 等級定義

根據“當數據質量不滿足完整性、準確性、一致性、及時性時,對業務的影響程度大小”來劃分數據的資產等級。

  • 毀滅性:數據一旦出錯,會引起巨大的資產損失,面臨重大收益受損等。標記為L1
  • 全局性:數據用于集團業務、企業級效果評估和重要決策任務等。標記為L2
  • 局部性:數據用于某個業務線的日常運營、分析報告等,如果出現問題會給該業務線造成一定的影響或影響其工作效率。標記為L3
  • 一般性:數據用于日常數據分析,出現問題的帶來的影響很小。標記為L4
  • 未知性質:無法追溯數據的應用場景。標記為Lx

重要程度:L1>L2>L3>L4>Lx。如果一份數據出現在多個應用場景中,則根據其最重要程度進行標記。

2. 等級劃分

(1)分析數據鏈路

定義數據資產等級后,我們可以從數據流程鏈路開始進行數據資產等級標記,完成數據資產等級確認,給不同的數據定義不同的重要程度。

通用的數據流轉鏈路流程如下圖所示:

(2)標記數據資產等級

在所有數據鏈路上,整理出消費各個表的應用業務。通過給這些應用業務劃分數據資產等級,結合數據的上下游依賴關系,將整個鏈路打上某一類資產等級標簽。

舉例

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

二、數據加工過程校驗

1. 在線系統數據校驗

在線業務系統聲場的數據是數據倉庫的主要數據來源。當在線業務系統功能迭代時,每次變更都會導致業務數據的變化。因此,數倉需要采取相應的措施來適應業務系統的復雜多變,及時保障數據的準確性。

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

(1)業務上線發布平臺

監控業務上線發布平臺上的重大業務變更,通過訂閱這個發布過程,及時將變更內容通知到數據部門。

由于業務系統復雜多變,若日常發布變更頻繁,那么每次都通知數據部門,會造成不必要的資源浪費。這時,我們可以使用之前已經完成標記的數據資產等級標簽,針對涉及高等級數據應用的數據資產,整理出哪些類型的業務變更會影響數據的加工或者影響數據統計口徑的調整,則這些情況都必須及時通知到數據部門。

如果公司沒有自己的業務發布平臺,那么就需要與業務部門約定好,針對高等級的數據資產的業務變更,需要以郵件或者其他書面的說明及時反饋到數據部門。

(2)相關操作人員管理

工具只是輔助監管的一種手段,而使用工具的人員才是核心。數據資產等級的上下游打通過程需要通知給在線業務系統開發人員,使其知道哪些是重要的核心數據資產,提高在線開發人員的數據風險意識。

可以通過培訓的方式,把數據質量管理的訴求,數據質量管理的整個數據加工過程,以及數據產品的應用方式及應用場景告知在線開發人員,使其了解數據的重要性、價值及風險。確保在線開發人員在完成業務目標的同時,也要考慮數據的目標,保持業務端和數據段一致。

2. 離線數據加工校驗

從數據輸入到輸出數據產品應用的大致流程如下圖所示:

我們可以看到,數據從業務系統上產生,通過數據同步工具進入數倉系統。

數據在數倉系統中進行數據加工處理后輸出一系列數據倉庫模型,同時也產生了許多數據倉庫代碼腳本。

最終再通過數據同步工具將加工處理后的數據倉庫模型同步到數據產品應用中。

因此,保障數據加工過程中的質量是保障離線數據倉庫整體數據質量的重要環節。

數據加工上線流程如下圖所示:

在這些環節中,我們可以采用以下方式來保障數據質量:

(1)代碼提交核查

開發相關的規則引擎,輔助代碼提交校驗。規則分類大致為:

  • 代碼規范類規則:如表命名規范、字段命名規范、生命周期設置、表注釋等
  • 代碼質量類規則:如分母為0提醒、NUll值參與計算提醒等
  • 代碼性能類規則:如大表提醒、重復計算監測、大小表join操作提醒等

(2)代碼發布核查

加強測試環節,測試環境測試后再發布到生成環境,且生成環境測試通過后才算發布成功。

(3)任務變更或重跑數據

在進行數據更新操作前,需要通知下游數據變更原因、變更邏輯、變更時間等信息。下游沒有異議后,再按照約定時間執行變更發布操作。

三、數據處理風險監控

1. 在線數據處理風險點監控

為確保在線業務系統的數據質量,對在線業務系統的數據入庫進行規則校驗。

如,訂單記錄中,不得出現下單時間大于當天時間或者下單時間小于業務系統上線時間等,若出現異常則報錯。

隨著業務負責程度的提升,會導致規則繁多、規則配置的運行成本增大,這時可以按照我們之前的數據資產等級有針對性的進行監控。

2. 離線數據處理風險點監控

對于離線數據處理的風險點監控主要是指:對數據調度平臺上所有數據處理調度進行監控。

以阿里的DataWorks數據調度產品為例,展開介紹。

(1)數據準確性監控

DataWorks中的DQC通過配置數據質量校驗規則,實現離線數據處理中的數據質量監控報警機制。

下圖是DQC的工作流程圖:

DQC數據監控規則有強規則和弱規則:

  • 強規則:一旦觸發報警就會阻斷任務的執行(將任務置為失敗狀態,使下游任務不會被觸發執行)。
  • 弱規則:只報警但不阻斷任務的執行。

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

過多的檢查次數必然會導致整體調度任務的執行性能,因此,哪些數據需要配置DQC規則、應該配置什么規則,也需要通過數據資產等級來確定。

(2)數據及時性監控

1)任務優先級

對于DataWorks平臺的調度任務,可以通過智能監控工具進行優先級設置。DataWorks的調度是一個樹形結構,當配置了葉子節點的優先級,這個優先級會傳遞到所有的上游節點,而葉子節點通常就是服務業務的消費節點。因此,在優先級的設置上,要先確定業務的資產等級,等級越高的業務對應的消費節點優先級越高,優先調度并占用計算資源,確保高等級業務的準時產出。

總之,就是按照數據資產等級優先執行高等級數據資產的調度任務,優先保障高等級業務的數據需求。

2)任務報警

任務報警和優先級類似,通過DataWorks的智能監控工具進行配置,只需要配置葉子節點即可向上游傳遞報警配置。任務執行過程中,可能出錯或延遲,為了保障最重要數據(即資產等級高的數據)產出,需要立即處理出錯并介入處理延遲。

3)DataWorks智能監控

DataWorks進行離線任務調度時,提供智能監控工具,對調度任務進行監控告警。根據監控規則和任務運行情況,智能監控決策是否報警、何時報警、如何報警以及給誰報警。智能監控會自動選擇最合理的報警時間、報警方式以及報警對象。

以上內容借助了阿里的DataWorks產品介紹文檔,下面說一下自己的理解:

離線數據處理風險監控無外乎就是把離線數據加工過程中所遇到的問題及時反饋預警,然后人工及時進行干預并處理。

對于數據準確性的監控,要看我們規則配置引擎的強大與否,通過數據處理日志中捕捉的出錯信息,我們可以不斷的完善我們的規則配置引擎,從而不斷的提高整個平臺的產出數據的準確性。

對于數據及時性的監控,主要是調度資源的合理分配及優化和及時出錯報警機制。通過平臺資源的優化配置,優先產出高數據資產等級的數據,用于滿足業務的數據及時性需求。

四、結語

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

數據產品路上,與君共勉!

#相關閱讀#

怎么保障企業數據倉庫中的數據質量?

 

本文由 @BennettC 原創發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

給作者打賞,鼓勵TA抓緊創作!
更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 發現有個錯別字 ?? ??

    回復
    1. ??還是沒有看到

      回復
    2. “在線業務系統生產的數據”寫成了“在線業務系統聲場的數據”~

      回復
    3. 哦哦,慚愧慚愧

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

    回復
    1. 嗯嗯,是的,實際工作當中,不可能做到對每個表都去進行字段級別的規則配置。一是像您說的那樣,工作量太大;二是頻繁的字段校驗會降低調度平臺的性能;所以,這就是我們為什么要劃分數據資產等級的目的,只對重大數據資產進行較細粒度的規則配置,而對于普通的數據資產進行粗粒度(一般必須保證數據的完整性即可)的規則配置即可。

      回復