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

2021-08-11 19:19:16 字數 1176 閱讀 9272

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

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

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

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

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

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

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

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

還有兩層比較特殊: 

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

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

以下是資料倉儲資料流架構圖: 

以上就是整個數倉平台的大概架構思路,其實大部分公司的數倉都是差不多的,無非是各個層的劃分的區別,層的多少區別,我是這麼理解的。

大資料數倉之報表開發

在大資料開發中,主要的資料分析目的可以分為2類。一類是基於歷史資料 就算是實時數倉,接收到資料的時候,其實也已經是歷史資料了 做資料規律或者結果提取 一類是基於歷史資料,訓練模型,做未來資料 或者分類等。如果是前者,基於已有資料做資料規律和資料結果提取,這時候就可以稱之為報表開發。參考神策系統,報表...

大資料平台與傳統數倉的區別

基於關聯式資料庫的傳統數倉 基本特點 資料來源 關聯式資料庫 如oracle db2 mysql等 資料倉儲和資料集市 關聯式資料庫或mpp 如teradata vertica greenplum 資料型別 結構化資料 資料規模 gb tb級 資料分析 用sql進行簡單的統計報表分析 資料規模巨大 ...

大資料專案之數倉專案(一)數倉搭建

名稱版本 hadoop 3.1.3 flume 1.9.0 kafka 2.11 2.4.1 zookeeper 3.5.7 mysql 5.1.27 sqoop 1.4.6 spark 3.0.0 hive 3.1.2 本專案採用星型維度建模 1 配置sparkonhive 注意配置spark h...