數(shù)據(jù)倉庫,為什么需要分層建設(shè)和管理?

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

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

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

一、為什么要進(jìn)行數(shù)據(jù)分層

1. 降低數(shù)據(jù)開發(fā)成本

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

通過分層建設(shè),把通用的業(yè)務(wù)邏輯加工好,后續(xù)的開發(fā)任務(wù)可以基于模型快速使用,數(shù)據(jù)需求的響應(yīng)速度也會更快。

2. 降低任務(wù)運(yùn)維成本

業(yè)務(wù)發(fā)展過程中,數(shù)據(jù)指標(biāo)口徑、統(tǒng)計(jì)邏輯變化是常態(tài),任務(wù)失敗也屢見不鮮。如果每一次調(diào)整都需要對所有的數(shù)據(jù)任務(wù)進(jìn)行修改,再去回溯數(shù)據(jù),那數(shù)據(jù)開發(fā)大部分時間都在填坑中度過了,而且還會經(jīng)常出錯。

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

數(shù)倉分層就是希望通過對最基礎(chǔ)的、常用的數(shù)據(jù)進(jìn)行抽象,找出數(shù)據(jù)的主干,對主干進(jìn)行修復(fù)后,下游的葉子節(jié)點(diǎn)就可以最小變動。例如,當(dāng)產(chǎn)品改版后,涉及流量統(tǒng)計(jì)指標(biāo)口徑需要調(diào)整,通過數(shù)據(jù)分層,只修改最底層的源表的邏輯就可以實(shí)現(xiàn)整個鏈路的數(shù)據(jù)更新。

3. 方便共享復(fù)用,減少重復(fù)建設(shè)

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

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

4. 統(tǒng)一數(shù)據(jù)口徑

同一個指標(biāo)在數(shù)據(jù)加工處理時,復(fù)用的是同一個數(shù)據(jù)模型表,這樣很大程度可以規(guī)避數(shù)據(jù)統(tǒng)計(jì)不統(tǒng)一的問題,畢竟本是同根生嘛。

二、數(shù)據(jù)倉庫的分層方法

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

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

DIM層:維度表,在維度建模理論中,可以通過業(yè)務(wù)主題寬表關(guān)聯(lián)維度表方式,快速輸出直觀的數(shù)據(jù)分析結(jié)果。

DM層:數(shù)據(jù)集市層,基于對業(yè)務(wù)的需求的理解和抽象,建立通用的指標(biāo)和分析維度模型,數(shù)據(jù)仍以明細(xì)為主,部分可以直接加和匯總的數(shù)據(jù)指標(biāo),可以采用聚合結(jié)果的方式呈現(xiàn),但如DAU等涉及去重的指標(biāo),一般以明細(xì)存儲。

APP層:數(shù)據(jù)應(yīng)用層,面向不同業(yè)務(wù)部門、不同產(chǎn)品需求提供具體業(yè)務(wù)場景的結(jié)果表,通過數(shù)據(jù)同步方式再從數(shù)倉同步到MySQL、Greenplum等查詢引擎,供前端數(shù)據(jù)產(chǎn)品輸出使用。定制化程度高。

三、數(shù)據(jù)倉庫分層管理規(guī)范

數(shù)據(jù)倉庫分層管理中,通過不同層級的數(shù)據(jù)使用情況指標(biāo)的構(gòu)建,對數(shù)倉建設(shè)完善度和復(fù)用度進(jìn)行指標(biāo)化管理。

1. 完善度

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

例如當(dāng)管理者問數(shù)倉負(fù)責(zé)人,你們天天搞數(shù)倉建設(shè),現(xiàn)在到底建設(shè)到什么程度了呢?有了完善度評價標(biāo)準(zhǔn),可以量化數(shù)倉建設(shè)成熟度。

通過數(shù)據(jù)血緣及查詢?nèi)罩?,可以對?shù)據(jù)加工任務(wù)以及Adhoc查詢進(jìn)行統(tǒng)計(jì)分析。例如,在數(shù)據(jù)查詢中,直接查詢ODS的任務(wù)占比,占比越高說明有大量任務(wù)基于原始數(shù)據(jù)加工,中間模型DWD、DWT、DWA復(fù)用性很差。

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

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

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

跨層引用率越低越好,在數(shù)據(jù)中臺模型設(shè)計(jì)規(guī)范中,一般不允許出現(xiàn)跨層引用,例如ODS層數(shù)據(jù)只能被 DWD引用。

2. 復(fù)用度

復(fù)用度顧名思義,資產(chǎn)建設(shè)完成后,被不同業(yè)務(wù)或用戶復(fù)用的情況,復(fù)用才會減少重復(fù)開發(fā)??梢杂靡孟禂?shù)作為數(shù)據(jù)中臺資產(chǎn)復(fù)用度評價指標(biāo)。引用系數(shù)越高,說明復(fù)用性越好。

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

四、小結(jié)

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

專欄作家

數(shù)據(jù)干飯人,微信號公眾號:數(shù)據(jù)干飯人,人人都是產(chǎn)品經(jīng)理專欄作家。專注數(shù)據(jù)中臺產(chǎn)品領(lǐng)域,覆蓋開發(fā)套件,數(shù)據(jù)資產(chǎn)與數(shù)據(jù)治理,BI與數(shù)據(jù)可視化,精準(zhǔn)營銷平臺等數(shù)據(jù)產(chǎn)品。擅長大數(shù)據(jù)解決方案規(guī)劃與產(chǎn)品方案設(shè)計(jì)。

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

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

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!