1. 程式人生 > >大資料之數倉平臺設計思路01

大資料之數倉平臺設計思路01

對於大資料來說,數倉的作用不言而喻,承載著整個公司全業務線的資料,現階段,在hadoop上的數倉主要是用來解決企業內部資料的分析,尤其是各種各樣的統計分析報表。本文主要結合自己公司目前數倉的結構設計和現階段解決的問題而敘述和分享,如有不明,錯誤之處,各位看官可指出,非常感謝!

下圖為數倉整體的技術架構:

這裡寫圖片描述

一個優秀可靠的數倉,一定要結構、分層清晰,而不是越多的分層和主題越好,保障清晰的狀態下,能夠快速找到資料的位置。主題域的劃分,完全可按照公司內部的業務線和結構去劃分。

圖中BDL層,作為緩衝資料層,其實就是貼資料層,和源資料表相同的表。直接用源庫(傳統關係型業務庫)抽取資料,只存每天最新的資料快照(主要是增量資料)

BAK層是BDL層抽數,儲存的是全歷史業務資料,起備份和查錯的作用。

FDL層是基礎資料層,是基於主題、數倉模型開發的基礎資料表。這裡主要用到了正規化建模法和維度建模法(即星型模型)包含最細粒度的資料,故稱基礎資料層,通俗的理解,這才是整個數倉的最核心的基礎資料層,因為BAK層和BDL層的資料表結構跟業務庫的資料是完全一致的,而FDL層的資料才是開始進行真正意義上的第一次清洗,不要的欄位去除,不規範的欄位命名去除,統一資料,規範標準化的一個過程。

GDL層是通用資料層,就是寬表層。也是基於主題、數倉模型開發的寬表。可能會犧牲第三正規化,將相關的各維度或屬性整合到一張表裡。這種表的特點就是欄位較多,資料量較大,但它能幫助消除重複查詢。由於這種表會被各種需求用到,故稱通用資料層。

ADL層是彙總資料層,是基於主題、數倉模型開發的彙總資料表。這裡只用到維度建模法(即星型模型)。指標庫可以放到這一層。

APP層是開放給使用者,使用者可以在此層自己開發資料,提數。給使用者的脫敏資料也可以放到這一層。我們開發的資料產品所需資料也可以在這一層做。

還有兩層比較特殊:
一個是TMP(臨時層),說白了就是儲存中間結果表,有些業務場景比較複雜,需要拆表,多次計算,要用到一些中間結果集表,因此這層也是輔助層。

DIM層是維表層,各種時間維,省市區維度都可以存放,根據公司的業務形態去劃分,ADL層可以跟DIM層的多維度關聯,做各種報表,手到擒來。

以下是資料倉庫資料流架構圖:
這裡寫圖片描述

以上就是整個數倉平臺的大概架構思路,其實大部分公司的數倉都是差不多的,無非是各個層的劃分的區別,層的多少區別,我是這麼理解的。如果有更新意的分層、數倉設計,歡迎大家交流,一起探討,接下來的幾章,我會大概敘述數倉的標準化的建設,如何設計模型,如何編寫清洗指令碼,伺服器目錄如何標準化分目錄等等,這些都很重要,流程的規範化,會給實際工作開發帶來巨大的效率提升!

--------------------- 本文來自 hxiao1317098 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/hxiao1317098/article/details/73623690?utm_source=copy