使用hive時很容易接觸到數倉建模,數倉建模是一個數倉工程師需要的必備的能力。優秀的分層設計能夠讓整個數據體系更易理解和使用。想要做數倉,需要補一補數倉分層,才能知道分層的意義。
分層很重要,說一下我的理解。
一、 分層基礎
1.理清業務數據
隨着數據量和業務數據表的不斷擴張,需要我們理清數據作用域,這樣可以清晰的找到數據來源。
2.避免重複計算
爲了避免多次計算,多次關聯多張表。分層可以保存中間結果,減小開發成本。避免每次查詢都要從原始表計算。
3.增加數據使用便捷性
倉庫層的設計,讓數據能分析,好分析,能支持大部分的數據需求。每種需求都能從分層中找到自己需要的數據。
4.避免數據分歧
統一數據口徑,保證數據質量,避免出現統一指標多種概念。
5.通用分層
比較通用的簡單的維度建模分層,分爲三層:
(圖片來源於網絡,侵刪)
二、 ODS層,操作數據層
把操作系統的數據幾乎無處理的存放在數倉中,主要有以下工作:
1.將業務結構化數據增量或全量的同步進來;
2.將日誌等非結構化的數據結構化處理後落地到數倉中;
3.累計歷史數據,根據數據業務需求、審計等要求保存歷史數據、清洗數據,保留的數據快照也便於回溯問題。
二、CDM層,公共維度模型層
存放明細事實數據、維度數據及公共指標彙總數據,統一口徑,保持數據一致性,減少數據重複計算,CDM層分爲DWD層和DWS層。
1.DWD層,明細數據層
dwd層對業務數據進行清洗、規範化,例如去除作弊數據,對數據字段進行規範命名從而避免歧義化等,另外可採用維度退化手段,將維度退化到事實表中,減少事實表與維度表的關聯,提高明細表的易用性。
2.DWS層,彙總數據層
dws層,加強指標的維度退化,採用更多的寬表化的手段構建公共指標數據層,提升公共指標的複用性,減少重複加工。
三、ADS層,應用數據層
ads層存放數據進行個性化的指標計算,不共用性、複雜性(指數型、比值型、排名型)等,會基於應用數據組裝,像大寬表集市、橫標轉縱表、趨勢指標串等,另外由於ADS某些指標具有個性化的特點,儘量不對外提供服務。
有點事,等會再寫。