數倉入門基礎 - 數倉建模

      使用hive時很容易接觸到數倉建模,數倉建模是一個數倉工程師需要的必備的能力。優秀的分層設計能夠讓整個數據體系更易理解和使用。想要做數倉,需要補一補數倉分層,才能知道分層的意義。
      分層很重要,說一下我的理解。

一、 分層基礎

1.理清業務數據

      隨着數據量和業務數據表的不斷擴張,需要我們理清數據作用域,這樣可以清晰的找到數據來源。

2.避免重複計算

      爲了避免多次計算,多次關聯多張表。分層可以保存中間結果,減小開發成本。避免每次查詢都要從原始表計算。

3.增加數據使用便捷性

      倉庫層的設計,讓數據能分析,好分析,能支持大部分的數據需求。每種需求都能從分層中找到自己需要的數據。

4.避免數據分歧

      統一數據口徑,保證數據質量,避免出現統一指標多種概念。

5.通用分層

比較通用的簡單的維度建模分層,分爲三層:
分層示意圖
(圖片來源於網絡,侵刪)

二、 ODS層,操作數據層

      把操作系統的數據幾乎無處理的存放在數倉中,主要有以下工作:
      1.將業務結構化數據增量或全量的同步進來;
      2.將日誌等非結構化的數據結構化處理後落地到數倉中;
      3.累計歷史數據,根據數據業務需求、審計等要求保存歷史數據、清洗數據,保留的數據快照也便於回溯問題。

二、CDM層,公共維度模型層

      存放明細事實數據、維度數據及公共指標彙總數據,統一口徑,保持數據一致性,減少數據重複計算,CDM層分爲DWD層和DWS層。

1.DWD層,明細數據層

      dwd層對業務數據進行清洗、規範化,例如去除作弊數據,對數據字段進行規範命名從而避免歧義化等,另外可採用維度退化手段,將維度退化到事實表中,減少事實表與維度表的關聯,提高明細表的易用性。

2.DWS層,彙總數據層

      dws層,加強指標的維度退化,採用更多的寬表化的手段構建公共指標數據層,提升公共指標的複用性,減少重複加工。

三、ADS層,應用數據層

      ads層存放數據進行個性化的指標計算,不共用性、複雜性(指數型、比值型、排名型)等,會基於應用數據組裝,像大寬表集市、橫標轉縱表、趨勢指標串等,另外由於ADS某些指標具有個性化的特點,儘量不對外提供服務。

      
      
      
      
      
      有點事,等會再寫。

      
      
      
      
      

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