千億級數倉》資料倉儲維度模型設計

2021-10-05 23:08:31 字數 3301 閱讀 4317

2. 維度建模三種模式

資料倉儲分層架構

維度模型是資料倉儲領域大師ralph kimall所倡導,他的《資料倉儲工具箱》,是資料倉儲工程領域最流行的數倉建模經典。維度建模以分析決策的需求出發構建模型,構建的資料模型為分析需求服務,因此它重點解決使用者如何更快速完成分析需求,同時還有較好的大規模複雜查詢的響應效能。

維度建模是專門應用於分析型資料庫、資料倉儲、資料集市建模的方法。資料集市可以理解為是一種"小型資料倉儲"。

發生在現實世界中的操作型事件,其所產生的可度量數值,儲存在事實表中。從最低的粒度級別來看,事實錶行對應乙個度量事件,反之亦然。

事實表表示對分析主題的度量。比如一次購買行為我們就可以理解為是乙個事實。

圖中的訂單表就是乙個事實表,可以理解他就是在現實中發生的一次操作型事件,每完成乙個訂單,就會在訂單中增加一條記錄。

事實表的特徵:表裡沒有存放實際的內容,他是一堆主鍵的集合,這些id分別能對應到維度表中的一條記錄。事實表包含了與各維度表相關聯的外來鍵,可與維度表關聯。事實表的度量通常是數值型別(條/個/次),且記錄數會不斷增加,表資料規模迅速增長。

維度表示要對資料進行分析時所用的乙個量,比如你要分析產品銷售情況, 你可以選擇按類別進行分析,或按區域分析。這樣的按…分析就構成乙個維度。上圖中的使用者表、商家表、時間表這些都屬於維度表。這些表都有乙個唯一的主鍵,然後在表中存放了詳細的資料資訊。

例如:交易金額分析分析

男性使用者的訂單金額、聯想商品的訂單金額、第一季度的訂單金額、手機的訂單金額、家裡下單的訂單金額

例如:學生分析

姓張的同學有多少、男性的同學有多少、江蘇的同學有多少、身高小於170cm的同學有多少、年齡小於23歲的同學有多少。

每個維度表都包含單一的主鍵列。維度表的主鍵可以作為與之關聯的任何事實表的外來鍵,當然,維度錶行的描述環境應與事實錶行完全對應。維度表通常比較寬,是扁平型非規範表,包含大量的低粒度的文字屬性。

總的說來,在資料倉儲中不需要嚴格遵守規範化設計原則。因為資料倉儲的主導功能就是面向分析,以查詢為主,不涉及資料更新操作。

事實表的設計是以能夠正確記錄歷史資訊為準則。

維度表的設計是以能夠以合適的角度來聚合主題內容為準則。

星形模式(star schema)是最常用的維度建模方式。星型模式是以事實表為中心,所有的維度表直接連線在事實表上,像星星一樣。

雪花模式(snowflake schema)是對星形模式的擴充套件。雪花模式的維度表可以擁有其他維度表的,雖然這種模型相比星型更規範一些,但是由於這種模型不太容易理解,維護成本比較高,而且效能方面需要關聯多層維表,效能也比星型模型要低。所以一般不是很常用。

星座模式是星型模式延伸而來,星型模式是基於一張事實表的,而星座模式是基於多張事實表的,而且共享維度資訊。

前面介紹的兩種維度建模方法都是多維表對應單事實表,但在很多時候維度空間內的事實表不止乙個,而乙個維表也可能被多個事實表用到。在業務發展後期,絕大部分維度建模都採用的是星座模式。

分層的主要原因是在管理資料的時候,能對資料有乙個更加清晰的掌控,詳細來講,主要有下面幾個原因:

資料分層每個企業根據自己的業務需求可以分成不同的層次,但是最基礎的分層思想,理論上資料分為三個層,資料運營層、資料倉儲層和資料服務層。基於這個基礎分層之上新增新的層次,來滿足不同的業務需求。

資料運營層(ods)

operate data store(運算元據-儲存),是最接近資料來源中資料的一層,資料來源中的資料,經過抽取、洗淨、傳輸,也就說傳說中的etl之後,裝入ods層。本層的資料,總體上大多是按照源頭業務系統的分類方式而分類的。

例如:mysql裡面的一張表可以通過sqoop之間抽取到ods層

埋點日誌

訊息佇列

資料倉儲層(dw)

data warehouse(資料倉儲)。在這裡,從ods層中獲得的資料按照主題建立各種資料模型。例如以研究人的旅遊消費為主題的資料集中,便可以結合航空公司的登機出行資訊,以及銀聯系統的刷卡記錄,進行結合分析,產生資料集。在這裡,我們需要了解四個概念:維(dimension)、事實(fact)、指標(index)和粒度( granularity)。

dw資料分層,由下到上為 dwd,dwb,dws

dwd:data warehouse detail 細節資料層,是業務層與資料倉儲的隔離層。

dwb:data warehouse base 基礎資料層,儲存的是客觀資料,一般用作中間層,可以認為是大量指標的資料層。

dws:data warehouse service 服務資料層,基於dwb上的基礎資料,整合彙總成分析某乙個主題域的服務資料,一般是寬表。

資料服務層/應用層(ads):

1、ods 資料準備層功能

建模方式及原則:

2、dwd 資料明細層

功能:

建模方式及原則:

3、 dw(b/s) 資料彙總層

功能:

建模方式及原則:

4、 data market (資料集市)層

功能:

建模方式及原則:

5、st 資料應用層(ads層)

功能:

聯機事務處理oltp、聯機分析處理olap。

oltp是傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。

olap是資料倉儲系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。

聯機分析處理的使用者是企業中的專業分析人員及管理決策人員,他們在分析業務經營的資料時,

從不同的角度來審視業務的衡量指標是一種很自然的思考模式。

例如分析銷售資料,可能會綜合時間週期、產品類別、分銷渠道、地理分布、客戶群類等多種因素來考量。

6、根據dw層經過聚合匯**計後的粗粒度事實表建模方式及原則:

維度模型資料倉儲(二) 維度模型基礎

一 維度模型基礎 既然維度模型是資料倉儲建設中的一種資料建模方法,那不妨先看一下幾種主流的資料倉儲架構。1.kimball的dw bi架構 圖 一 1 2.inmon企業資訊工廠架構 圖 一 2 3.混合型架構 圖 一 3 從圖中可以看出,每種架構中都有資料集市。資料集市就是面向終端使用者的資料庫。...

資料倉儲維度建模

雪花模型 星型模型 星座 多個事實表 問題 1 資料倉儲,不針對某乙個分析主題,而是有多個分析主題,即多個事實表,維度表怎麼設計?2 即使是同乙個分析主題,也可能存在多個事實表,維度表如何設計?多個時間維度?無論星型模型 雪花模型還是星座模型,都是針對維度上的區別而來,星座模型實質上還是星型模型,只...

資料倉儲 維度表

維度建模將業務抽象成事實和維度兩個概念。維度建模的核心是對齊維度。所以維度表的一致性是很重要的!維度表是如何進行處理的呢?穩定的維度表。比如 時間維度表 這種維度表的屬性是穩定的,不需要做天的全量快照資料,直接匯入一次即可 緩慢漸變維 維度會隨著時間發生緩慢的變化。比如 使用者維度表 資料量很大,但...