數倉分層和維度建模及表的簡述

2022-01-10 19:12:58 字數 2026 閱讀 1543

1.ods層

原始資料層,存放原始資料,直接載入原始日誌、資料,資料保持原貌不做處理,起到備份資料的作用。資料採用lzo壓縮,並建立索引減少磁碟儲存空間(切片)。建立分割槽表,防止後續全表掃瞄。可以通過建立外部表供多人使用,內部表(僅供自己使用)

2.dwd層

明細資料層,對ods層資料進行清洗(去空值,髒資料,超過極限範圍的資料)。負責準備資料工作,本層需要構建維度模型,使維度退化,此操作可以減少後續大量join。多使用parquet列式儲存

3.dws層

服務資料層,進行輕度彙總

4.ads層

資料應用層,為各種統計報表提供資料

1.選擇業務過程

選擇我們需要實現的主題業務,比如下單業務,支付業務,退款業務,物流 業務,一條業務線對應一張事實表。

2.宣告粒度

資料粒度指資料倉儲的資料中儲存資料的細化程度或綜合程度的級別

宣告粒度意味著精確定義事實表中的一行資料表示什麼,應該盡可能選擇最小粒度,以 此來應各種各樣的需求。

3.確定維度

維度的主要作用是描述業務是事實,主要表示的是「誰,何處,何時」。維度退化

4.確定事實

此處的「事實」一詞,指的是業務中的度量值,如訪問次數、等待時間等。

一、實體表

故名思意,就是業務中存在的現實物件,表中存在的每一條資料都是客觀存在的資料

二、維度表

又稱維表、碼表,可以看作對某類事務粒度的抽離及細化,也是對業務過程的上下文描述,主要包含**鍵、文字資訊和離散的數字。是進入事實表的入口,多樣的維度表可以減少資料冗餘(給與對事物表的分析切割能力)。例如一張訂單狀態維度表和一張時間表就可以讓事實表中的字段減少,細化粒度(業務狀態,時間)大幅提公升儲存和查詢效率。就結構來講與事實表相反,行少列多。如果屬性值是離散的,用於過濾和標記的,就放到維度表裡,如果是屬性值是連續取值,可用於計算的,就放到事實表中。

維度表型別:緩慢變化維、日期維、角色維、雜項維、支架維、多值維度橋接維

三、事實表

事實表儲存了從業務活動或事件提煉處理啊的效能度量,主要包含維度表的外來鍵和連續比那花的可加性數值或半可加事實。事務表產生於業務過程而不是業務過程的描述資訊。一般是行多列少,佔據數倉近九成的空間。

​ 事物表的粒度確定了該錶的主鍵,且事實表的所有度量值必須具有有相同的粒度.

​ 事實表按型別分為以下幾種:

1.事務事實表

​ 面向事務,每一行對應乙個事物,被稱為「原子事實表」是最細粒度的事實表。事務事實表中的資料中在事務事件發生後產生,資料的粒度通常是每個事務一條記錄。一旦事務被提交,事務表資料被插入,資料就不再進行更改,更新方式為增量更新。

2.週期快照事實表

​ 按照良好的時間週期間隔(每天,每週,每月)來捕捉業務活動的執**況,一旦裝入事實表就不會再去更新,它是事務事實表的補充,而非替代。典型的例子如銷售日快照表、庫存日快照表等。週期快照事實表的粒度是每個時間段一條記錄,通常比事務事實表的粒度要粗,是在事務事實表之上建立的聚集表。週期快照事實表的維度個數比事務事實表要少,但是記錄的事實要比事務事實表多。

3.累積快照事實表

​ 它用於描述業務過程中某個不確定時間跨度裡的活動,它隨著業務活動的發生會不斷的更新。累積快照事實表和週期快照事實表有些相似之處,它們儲存的都是事務資料的快照資訊。但是它們之間也有著很大的不同,週期快照事實表記錄的確定的週期的資料,而累積快照事實表記錄的不確定的週期的資料。

累積快照事實表代表的是完全覆蓋乙個事務或產品的生命週期的時間跨度,它通常具有多個日期字段,用來記錄整個生命週期中的關鍵時間點。另外,它還會有乙個用於指示最後更新日期的附加日期字段。由於事實表中許多日期在首次載入時是不知道的,所以必須使用**關鍵字來處理未定義的日期,而且這類事實表在資料載入完後,是可以對它進行更新的,來補充隨後知道的日期資訊

數倉 正規化建模 維度建模

third normal form,3nf 是資料模型常用的乙個方法,主要解決關係型資料庫的資料儲存。目前關係型資料庫的建模方法,大部分採用三正規化建模,即通過實體關係 entity relationship,er 模型描述企業業務。是資料倉儲之父inmon提出的集線器的自上而下 edw dm 的資...

數倉維度建模之維度表設計(基礎概念一)

對業務過程的度量稱為事實 在維度建模中,將度量稱為 事實 將環境描述為 維度 維度是用於分析事實所需要的多樣環境 維度所包含的表示維度的列,稱為維度屬性 如開門方式是維度,具體11種方式是維度屬性 維度屬性是查詢約束條件 分組和的基本 是資料包表標籤生成易用性的關鍵。維度的作用一般是查詢約束 分類彙...

數倉建模 分層建設理論 03

簡單點兒,直接ods dm就可以了,將所有資料同步過來,然後直接開發些應用層的報表,這是最簡單的了 當dm層的內容多了以後,想要重用,就會再拆分乙個公共層出來,變成3層架構,這個過程有點類似 重構,就是在實踐中不斷的進行抽象 總結 數倉的建模或者分層,其實都是為了更好的去組織 管理 維護資料,所以當...