數倉分層

數據倉庫和數據倉庫分層

數據倉庫的概念

數據倉庫,英文名稱爲Data Warehouse,可簡寫爲DW或DWH。數據倉庫,是爲企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它是單個數據存儲,出於分析性報告和決策支持目的而創建。 爲需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制。

數據倉庫,並不是數據的最終目的地,而是爲數據最終的目的地做好準備。這些準備包括對數據的:清洗,轉義,分類,重組,合併,拆分,統計等等。

爲什麼要對數倉進行分層?

1. 把複雜問題簡單化

將一個複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。

2. 數據結構清晰

每一個數據分層都有它的作用域,這樣我們在使用表的時候能更方便地定位和理解。便於維護數據的準確性,當數據出現問題之後,可以不用修復所有的數據,只需要從有問題的步驟開始修復。

3. 提高數據的複用性

規範數據分層,通過的中間層數據,能夠減少極大的重複計算,增加一次計算結果的複用性。

4. 隔離原始數據

不論是數據的異常還是數據的敏感性,使真實數據與統計數據解耦開。

數倉分層結構圖

數據分層原理:

ODS層(原始數據層):

存放原始數據,直接加載原始日誌、數據,數據保持原貌不做處理。

DWD層(明細數據層):

結構和粒度與ods層保持一致,對ods層數據進行清洗(去除空值,髒數據,超過極限範圍的數據),也有公司叫dwi。

DWS層(服務數據層):

以dwd爲基礎,進行輕度彙總。一般聚集到以用戶當日,設備當日,商家當日,商品當日等等的粒度。在這層通常會有以某一個維度爲線索,組成跨主題的寬表,比如 一個用戶的當日的簽到數、收藏數、評論數、抽獎數、訂閱數、點贊數、瀏覽商品數、添加購物車數、下單數、支付數、退款數、點擊廣告數組成的多列表。

ADS層(數據應用層):

 也有公司或書把這層成爲app層、dal層、dm層,叫法繁多。面向實際的數據需求,以DWD或者DWS層的數據爲基礎,組成的各種統計報表。統計結果最終同步到RDS以供BI或應用系統查詢使用。

關於區分數據集市和數據倉庫

數據集市:Date Market

早在數據倉庫誕生之初,一同並存的就有數據集市的概念。現在市面上的公司和書籍都對數據集市有不同的概念。

狹義上來講數據集市,可以理解爲數據倉庫中爲用戶提供數據支撐的應用層,比如咱們前文說的ADS層。

廣義上,所有以主題劃分的數據倉庫中可供查閱的都可以成爲數據集市,包括DWD,DWS,ADS層,甚至包括從hadoop中同步到RDS的數據都可以稱爲數據集市,比如訂單主題,我可以提供使用者,從明細,聚合統計,比率分析等全部數據,提供給某個部門查詢。那麼除了訂單還有用戶、商品、供應商等等主題分別可以供不同的人員部門使用,這都可以稱之爲數據集市。

關於執行週期

大規模的數據往往無法通過一次或一個時間段計算完成,比如我需要統計今年的總收入。那我們不希望把計算壓力都集中在最後,要統計數據的時候才把全年數據進行計算。我們要把計算壓力分攤開,比如我們如果能提前把每個月的數據計算好,統計年的時候一加就可以了。要用月度或者週數據時候,就把每日算好的數據進行彙總。所以作爲離線數據我們計算的單位週期是日。也就是每日進行一次計算,這樣當日用戶可以查看到截至前一日的數據的計算結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章