1. 維度建模基本概念
維度建模(dimensional modeling)是專門用於分析型資料庫、資料倉儲、資料集市建模的方法。資料集市可以理解為是一種"小型資料倉儲"。
維度表(dimension)
維度表示你要對資料進行分析時所用的乙個量,比如你要分析產品銷售情況, 你可以選擇按類別來進行分析,或按區域來分析。這樣的按..分析就構成乙個維度。再比如"昨天下午我在星巴克花費200元喝了一杯卡布奇諾"。那麼以消費為主題進行分析,可從這段資訊中提取三個維度:時間維度(昨天下午),地點維度(星巴克), 商品維度(卡布奇諾)。通常來說維度表資訊比較固定,且資料量小。
事實表(fact table)
表示對分析主題的度量。事實表包含了與各維度表相關聯的外來鍵,並通過join方式與維度表關聯。事實表的度量通常是數值型別,且記錄數會不斷增加,表規模迅速增長。比如上面的消費例子,它的消費事實表結構示例如下:
消費事實表:prod_id(引用商品維度表), timekey(引用時間維度表), place_id(引用地點維度表), unit(銷售量)。
總的說來,在資料倉儲中不需要嚴格遵守規範化設計原則。因為資料倉儲的主導功能就是面向分析,以查詢為主,不涉及資料更新操作。事實表的設計是以能夠正確記錄歷史資訊為準則,維度表的設計是以能夠以合適的角度來聚合主題內容為準則。
2. 維度建模三種模式
2.1. 星型模式
星形模式(star schema)是最常用的維度建模方式。星型模式是以事實表為中心,所有的維度表直接連線在事實表上,像星星一樣。
星形模式的維度建模由乙個事實表和一組維表成,且具有以下特點:
a. 維表只和事實表關聯,維表之間沒有關聯;
b. 每個維表主鍵為單列,且該主鍵放置在事實表中,作為兩邊連線的外來鍵;
c. 以事實表為核心,維表圍繞核心呈星形分布;
2.2. 雪花模式
雪花模式(snowflake schema)是對星形模式的擴充套件。雪花模式的維度表可以擁有其他維度表的,雖然這種模型相比星型更規範一些,但是由於這種模型不太容易理解,維護成本比較高,而且效能方面需要關聯多層維表,效能也比星型模型要低。所以一般不是很常用。
2.3. 星座模式
星座模式是星型模式延伸而來,星型模式是基於一張事實表的,而星座模式是基於多張事實表的,而且共享維度資訊。
前面介紹的兩種維度建模方法都是多維表對應單事實表,但在很多時候維度空間內的事實表不止乙個,而乙個維表也可能被多個事實表用到。在業務發展後期,絕大部分維度建模都採用的是星座模式。
3. 本專案中資料倉儲的設計
注:採用星型模型
3.1. 事實表設計
3.2. 維度表設計
注意:維度表的資料一般要結合業務情況自己寫指令碼按照規則生成,也可以使用工具生成,方便後續的關聯分析。
比如一般會事前生成時間維度表中的資料,跨度從業務需要的日期到當前日期即可.具體根據你的分析粒度,可以生成年,季,月,周,天,時等相關資訊,用於分析。
大資料開發之資料倉儲理論
二 數倉和資料庫的區別 三 數倉的資料 四 數倉的分層 五 數倉建模 六 數倉調優 七 資料維護 資料倉儲,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它出於分析性報告和決策支援目的而建立。為需要業務智慧型的企業,提供指導業務流程改進 監視時間 成本 質量以及控制。概括來看,數倉...
大資料資料倉儲 場景
2015 10 24 朱潔hadoop技術學習 傳統oltp olap之分 資料倉儲裡面有oltp olap之分,oltp是傳統關係型資料庫的主要應用,其主要面向基本的 日常的事務處理,例如銀行交易。olap是資料倉儲系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。大資...
資料倉儲 大資料定義
2012年gartner公司將大資料定義為3v,即 大容量 volume 高流速 velocity 多樣化 variety 後來人們在3v基礎上增加新的v veracity 即真實性。現在人們普遍認可的大資料是具有4v,即 volume velocity variety veracity,也就是大 ...