1. 程式人生 > 其它 >數倉分層

數倉分層

資料倉庫分層

來源

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去排程每一層?百度下

資料倉庫為什麼要分層

  • 把複雜問題簡單化

    • 將複雜的任務分解層多層來完成,每一層只處理簡單的任務,方便定位問題

  • 減少重複開發

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

  • 隔離原始資料

    • 不論是資料的異常還是資料的敏感性,使真實資料與統計資料解耦開