數據倉庫,為什么需要分層建設和管理?

0 評論 7765 瀏覽 45 收藏 10 分鐘

數據倉庫是為企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合,為需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制。作者提出,數據倉庫需要做好分層建設和管理,原因是什么,又有什么分層方法,歡迎感興趣的伙伴們閱讀。

數據倉庫是數據化運營和數字化轉型的底層基礎設施,數據倉庫不完善或者建設質量差,再好的上層建筑(數據應用產品或工具)也很難牢固地生存下去。在數據倉庫建設時,繞不開的話題就是數倉分層。

一、為什么要進行數據分層

1. 降低數據開發成本

基于數據模型的開箱即用的開發成本要遠小于每一次的case by case的按需開發。例如要計算產品的DAU指標,直接從加工好的數據表中select一下指標值,不管是SQL代碼的復雜程度還是查詢性能、耗時都要遠比再從源表重新清洗一遍業務邏輯要簡單的多。

通過分層建設,把通用的業務邏輯加工好,后續的開發任務可以基于模型快速使用,數據需求的響應速度也會更快。

2. 降低任務運維成本

業務發展過程中,數據指標口徑、統計邏輯變化是常態,任務失敗也屢見不鮮。如果每一次調整都需要對所有的數據任務進行修改,再去回溯數據,那數據開發大部分時間都在填坑中度過了,而且還會經常出錯。

我們知道,管理一棵大樹,只要花時間聚焦把主干和重要分支維護好,樹就可以正常生長,而管理一片稻田,則需要對每一棵禾苗進行保養。

數倉分層就是希望通過對最基礎的、常用的數據進行抽象,找出數據的主干,對主干進行修復后,下游的葉子節點就可以最小變動。例如,當產品改版后,涉及流量統計指標口徑需要調整,通過數據分層,只修改最底層的源表的邏輯就可以實現整個鏈路的數據更新。

3. 方便共享復用,減少重復建設

不同的開發人員、不同時期開發的模型,如果沒有分層管理規范,往往導致后期使用時找不到,不是不想復用,而是數據找不到或者需要花費很長時間溝通、翻代碼確認,最終耗時反而沒有重新寫一套邏輯來的快,長此以往,導致大家都不敢用別人的模型,數據復用度低,帶來存儲和計算資源的浪費。

通過數據分層,將數據有序的管理起來,就像圖書館的書架導航,可以快速幫助使用者找到所需要的書籍在那一層書架中,能找到現成的,相信都不愿意做冤大頭重新做一份吧。

4. 統一數據口徑

同一個指標在數據加工處理時,復用的是同一個數據模型表,這樣很大程度可以規避數據統計不統一的問題,畢竟本是同根生嘛。

二、數據倉庫的分層方法

ODS層:貼源數據層,一般是從各種業務系統、日志數據庫將數據匯集到數據倉庫中,作為原始數據存儲和備份,一是數據倉庫建設不會直接查業務的關系型數據庫,而是通過數據同步的方式,將業務從庫數據同步到HDFS(Hive)等,適合海量數據存儲和加工處理的介質中。

DWD層:數據明細層,對ODS層數據進行規范化處理,例如臟數據過濾、數據格式化等,但仍以數據明細方式存儲,且將數據進行主題、層級劃分。

DIM層:維度表,在維度建模理論中,可以通過業務主題寬表關聯維度表方式,快速輸出直觀的數據分析結果。

DM層:數據集市層,基于對業務的需求的理解和抽象,建立通用的指標和分析維度模型,數據仍以明細為主,部分可以直接加和匯總的數據指標,可以采用聚合結果的方式呈現,但如DAU等涉及去重的指標,一般以明細存儲。

APP層:數據應用層,面向不同業務部門、不同產品需求提供具體業務場景的結果表,通過數據同步方式再從數倉同步到MySQL、Greenplum等查詢引擎,供前端數據產品輸出使用。定制化程度高。

三、數據倉庫分層管理規范

數據倉庫分層管理中,通過不同層級的數據使用情況指標的構建,對數倉建設完善度和復用度進行指標化管理。

1. 完善度

數倉模型對業務的支撐和覆蓋情況,完善度越高的數倉體系,業務獲取和使用數據的成本就越低。即當業務需要數據時,已經相應的模型在哪里等著使用了,而不是再去對接業務溝通需求,排期開發。

例如當管理者問數倉負責人,你們天天搞數倉建設,現在到底建設到什么程度了呢?有了完善度評價標準,可以量化數倉建設成熟度。

通過數據血緣及查詢日志,可以對數據加工任務以及Adhoc查詢進行統計分析。例如,在數據查詢中,直接查詢ODS的任務占比,占比越高說明有大量任務基于原始數據加工,中間模型DWD、DWT、DWA復用性很差。

在技術上,直接查詢底層表,查詢掃描的數據量會越大,查詢時間會越長,查詢的資源消耗也越大,使用數據的人滿意度會低??梢钥鐚右寐蕘砗饬恐С滞晟贫?,

DWD層:看ODS層有多少表被DWT/DWA/APP 層引用,占所有活躍的ODS 層表比例。

DWT/DWA/APP層完善度:主要看匯總數據能直接滿足多少查詢需求,也就是用匯總層數據的查詢比例,如果匯總數據無法滿足需求,使用數據的人就必須使用明細數據,甚至是原始數據。匯總數據查詢比例:DWT/DWA/APP層的查詢占所有查詢的比例。

跨層引用率越低越好,在數據中臺模型設計規范中,一般不允許出現跨層引用,例如ODS層數據只能被 DWD引用。

2. 復用度

復用度顧名思義,資產建設完成后,被不同業務或用戶復用的情況,復用才會減少重復開發??梢杂靡孟禂底鳛閿祿信_資產復用度評價指標。引用系數越高,說明復用性越好。

引用系數:數據表被讀取,產出下游模型的平均數量。例如一張DWD 層表被8張 DWS層表引用,這個表的引用系數就是8,把擁有下游的DWD 層表(有下游表的)引用系數取平均值,則為DWD 層的平均引用系數。

四、小結

數據倉庫建設以及分層管理,回歸到最初的目的,就是降本提效,通過各種規范、手段、流程,來保障數據輸出效率最高,可以快速響應業務發展的數據需求,用數據來驅動決策或賦能業務。同時,也要從成本角度考慮,不斷降低數據開發成本、存儲成本、計算成本。用最少的人和資源,覆蓋更多的業務數據需求。

專欄作家

數據干飯人,微信號公眾號:數據干飯人,人人都是產品經理專欄作家。專注數據中臺產品領域,覆蓋開發套件,數據資產與數據治理,BI與數據可視化,精準營銷平臺等數據產品。擅長大數據解決方案規劃與產品方案設計。

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

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

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!