數倉分層
來源
https://www.bilibili.com/video/BV1t54y1r7Mc?p=79
參考文章:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/122426579
數倉建模:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/122402191
所謂數倉建模:就是應該建哪些表,表與表之間的關係是怎樣的,表裡都應該有哪些欄位
所謂分層,就是每一層放不同的表,比如ODS,DWD分別方不同的表
ODS(Operation Data Store)原始資料層
-
ODS層的資料來源
-
業務系統產生的原始資料,比如下單以後產生的訂單,使用者瀏覽頁面形成的行為日誌,爬蟲等一系列資料來源的資料
-
開發中幾乎都不會直接從ODS層拿資料,因為這裡有隱私資料;
-
ETL(Extract-Transform-Load)
將資料從來源端經過抽取(extract)、轉換(transform)、載入(load)至目的端的過程。是將業務系統的資料經過抽取、清洗轉換之後載入到資料倉庫的過程。
對原有分散的資料庫資料抽取、清理的基礎上經過系統加工、彙總和整理得到的。必須消除源資料中的不一致性
目的是將企業中的分散、凌亂、標準不統一的資料整合到一起,為企業的決策提供分析依據。
-
主要的資料處理是:去空值、去極值(比方取款300億)、去業務極值、部分資料脫敏、維度退化等即對業務資料傳過來的表進行維度退化和降維(如:商品一級二級、省市縣、年月日等)。
DWD(Data WareHouse detail)明細資料層
所謂這層的資料清洗(比如去除空值,去除髒數資料[手機號碼、身份證號碼長度不合法]以及資料脫敏)
維度退化:百度數倉建模
說白了這一層就是再對ODS層的資料再次進行整理,因為ODS層的資料可能會比較亂,包括日誌的解析(日誌在ODS是一個字串)
這層會做維度建模,事實表(dwd_fact)、維度表(dwd_dim)兩種
-
DWD層的資料來源
-
ODS層的資料到DWD層,需要對資料進行清洗做ETL操作(比如去除空值,去除髒數資料[手機號碼、身份證號碼長度不合法]以及資料脫敏)
-
維度退化:百度數倉建模
-
-
DWD層會做維度建模,事實表(dwd_fact)、維度表(dwd_dim)兩種
-
小結
-
這一層就是再對ODS層的資料再次進行整理,因為ODS層的資料可能會比較亂,包括日誌的解析(日誌在ODS是一個字串)
-
DWS(Data WareHouse Service)資料服務層
-
DWS會對以DWD的資料為基礎,根據不同的指標進行輕度彙總,比如今天有多少活躍使用者。。
DWT(Data WareHouse Topic)資料主題層
主題,比如使用者,地區,說白了就是物件
-
這層是以DWS層的資料為基礎,根據不同的主題進行彙總
-
按照一定的主題域進行組織,主題是一個抽象的概念,是指使用者使用資料倉庫進行決策時所關心的重點方面,一個主題通常與多個操作型資訊系統相關。每一個主題基本對應一個巨集觀的分析領域。
比如保險公司的資料,有養老保險、醫療保險、汽車保險;這個保險就是一個主題
-
比如:銀行的資料倉庫的主題:客戶
ADS(Application Data store)資料應用層
為各種統計報表提供資料
azkaban
使用azkaban去排程每一層?百度下
資料倉庫為什麼要分層
-
把複雜問題簡單化
-
將複雜的任務分解層多層來完成,每一層只處理簡單的任務,方便定位問題
-
-
減少重複開發
-
規範資料分層,通過中間層資料,能夠減少極大的重複計算,增加一次計算結果的複用性
-
-
隔離原始資料
-