維度建模
目錄
維度建模(dimensional modeling)是專門用於分析型資料庫、資料倉儲、資料集市建模的方法.
1 維度表
1.1 概念
維度:表示對資料進行分析時所用的一個量,比如你要分析產品銷售情況, 你可以選擇按類別來進行分析,或按區域來分析.再比如"昨天下午我在星巴克花費200元喝了一杯卡布奇諾".那麼以消費為主題進行分析,可從這段資訊中提取三個維度:時間維度(昨天下午),地點維度(星巴克), 商品維度(卡布奇諾).通常來說維度表資訊比較固定,且資料量小.
代理關鍵字:一般是指維度表中使用順序(序列)分配的整數值作為主鍵,用於維度表和事實表的連線.使用代理關鍵字,而不應該使用自然關鍵字或者智慧關鍵字.資料倉儲中的主鍵不應該是智慧的,要避免通過主鍵的值就可以瞭解一些業務資訊.
1.2 維度分類
1.2.1 緩慢變化維
在現實世界中,維度的屬性並不是靜態的,它會隨著時間的流失發生緩慢的變化.代理關鍵字可以用來處理緩慢變化維.
1.2.2 一致性維度
一致性維度的範圍是匯流排架構中的維度,即可能會在多個資料集市中都存在的維度.在後臺建立好的維度同步複製到各個資料集市,這樣所有資料集市的這部分維度都是完全相同的.建立新的資料集市時,需要在後臺進行一致性維度處理,根據情況來決定是否新增和修改一致性維度,然後同步複製到各個資料集市.這是不同資料集市維度保持一致的要點.
在同一個集市內,一致性維度的意思是兩個維度如果有關係,要麼就是完全一樣的,要麼就是一個維度在數學意義上是另一個維度的子集.例如建立月維度的話,月維度的各種描述必須與日期維度中的完全一致.
維度保持一致後,事實就可以儲存在各個資料集市中.雖然在物理上是獨立的,但在邏輯上由一致性維度使所有的資料集市是聯絡在一起,隨時可以進行交叉探察等操作,也就組成了資料倉儲.
1.2.3 退化維度
一般都是事務的編號,如訂單編號、發票編號等.這類編號需要儲存到事實表中,但是不需要對應的維度表.退化維度經常會和其他一些維度一起組合成事實表的主鍵,在分析中可以用來做分組使用.
1.2.4 漸變維度
大多數維度值是隨著時間改變的,有必要記錄維度的歷史變化資訊.漸變維(SCD)是一種在多維資料倉儲中實現維度歷史的技術,有三種不同的SCD技術.
(1) SCD1:通過更新維度記錄直接覆蓋已存在的值,它不維護記錄的歷史.一般用於修改錯誤的資料.
(2) SCD2:在源資料發生變化時,給維度記錄建立一個新的"版本"記錄,從而維護維度歷史.SCD2不刪除、修改已存在的資料.
(3) SCD3:通常用作保持維度記錄的幾個版本.它通過給某個資料單元增加多個列來維護歷史.SCD3可以有效維護有限的歷史,而不像SCD2那樣儲存全部歷史.SCD3 很少使用,只適用於資料的儲存空間不足並且使用者接受有限維度歷史的情況.
1.3 常用的維度表
(1) 時間維度表:描述星型模式中記錄的事件所發生的時間,具有所需的最低階別的時間粒度.
(2) 地理維度表:描述位置資訊的資料,如國家、省份、城市、區縣、郵編等.
(3) 產品維度表:描述產品及其屬性.
(4) 人員維度表:描述人員相關的資訊,如銷售人員、市場人員、開發人員等.
(5) 範圍維度表:描述分段資料的資訊,如高階、中級、低階等.
2 事實表
事實表存放用來描述業務的大量資料,包含了與各維度表相關聯的外來鍵.比如上面的消費例子,它的消費事實表結構示例如下:消費事實表:Prod_id(引用商品維度表), TimeKey(引用時間維度表), Place_id(引用地點維度表), Unit(銷售量).
以粒度作為化分依據,主要有三種事實表,分別是事務粒度事實表,週期快照粒度事實表和累積快照粒度事實表;從用途的不同來說,事實表可以分為三類,分別是原子事實表,聚集事實表和合並事實表.
2.1 根據粒度劃分
(1) 事務粒度事實表:記錄事務層面的事實,儲存的是最原子的資料,也稱"原子事實表".事務事實表中的資料在事務事件發生後產生,資料的粒度通常是每個事務一條記錄.一旦事務被提交,事實表資料被插入,資料就不再進行更改,其更新方式為增量更新.使用者可以通過事務事實表對事務行為進行特別詳細的分析.
(2) 週期快照粒度事實表:週期快照事實表以具有規律性的、可預見的時間間隔來記錄事實.週期快照事實表的日期維度通常是記錄時間段的終止日,記錄的事實是這個時間段內一些聚集事實值.通常比事務事實表的粒度要粗,是在事務事實表之上建立的聚集表.週期快照事實表的維度個數比事務事實表要少,但是記錄的事實要比事務事實表多.事實表的資料一旦插入即不能更改,其更新方式為增量更新.
(3) 累計快照事實表:累積快照事實表代表的是完全覆蓋一個事務或產品的生命週期的時間跨度,它通常具有多個日期欄位,用來記錄整個生命週期中的關鍵時間點.還會有一個用於指示最後更新日期的附加日期欄位.週期快照事實表記錄的確定的週期的資料,而累積快照事實表記錄不確定的週期的資料.
2.2 根據用途劃分
(1) 原子事實表:是儲存較細粒度資料的事實表.
(2) 聚集事實表:是原子事實表上的彙總資料,也稱為彙總事實表.
(3) 合併事實表:是指將位於不同事實表中處於相同粒度的事實進行組合建模而成的一種事實表,它的維度是兩個或多個事實表的相同維度的集合.合併事實表的粒度可以是原子粒度也可以是聚集粒度.
3 維度建模模式
3.1 星型模式
星形模式(Star Schema)是最常用的維度建模方式.星型模式是以事實表為中心,所有的維度表直接連線在事實表上,像星星一樣.
星形模式的維度建模由一個事實表和一組維表成,且具有以下特點:
a. 維表只和事實表關聯,維表之間沒有關聯;
b. 每個維表主鍵為單列,且該主鍵放置在事實表中,作為兩邊連線的外來鍵;
c. 以事實表為核心,維表圍繞核心呈星形分佈;
3.2 雪花模式
雪花模式的維度表可以擁有其他維度表的,使用的是規範化資料,減少了資料冗餘.由於這種模型維護成本比較高,而且效能方面需要關聯多層維表,效能也比星型模型要低.
3.3 星座模式
星座模式是星型模式延伸而來,星型模式是基於一張事實表的,而星座模式是基於多張事實表的,而且共享維度資訊.
前面介紹的兩種維度建模方法都是多維表對應單事實表,但在很多時候維度空間內的事實表不止一個,而一個維表也可能被多個事實表用到.在業務發展後期,絕大部分維度建模都採用的是星座模式.
相關文章
- 關係建模ER建模-維度建模
- 【資料倉儲】|3 維度建模之維度表設計
- 工業資料分析之數倉建模 | 正規化建模和維度建模,你pick誰?
- 三維建模
- 【資料倉儲】|4 維度建模之事實表設計
- 【資料倉儲】|5 維度建模設計和實施過程
- 物件導向建模 = 面向賓語建模 != 主語思維物件
- torch 維度
- Rhinoceros mac版(犀牛三維建模軟體)ROSMac
- 犀牛Rhinoceros 7 for Mac(三維建模軟體)ROSMac
- 犀牛Rhinoceros Mac/Win三維建模軟體ROSMac
- 阿里巴巴資料專家乾貨|資料中臺模型設計系列(一):維度建模初探阿里模型
- The Foundry Modo 16 for Mac,專業三維建模工具Mac
- 犀牛Rhinoceros 7(三維建模軟體)Mac/WindowsROSMacWindows
- GRAPHISOFT ArchiCAD 25 Mac/Win三維建模軟體Mac
- 專業三維建模軟體:Modo 16 for MacMac
- 資料倉儲工具箱-維度建模權威指南(第三版)讀書筆記筆記
- The Foundry Modo 16 for Mac 專業三維建模軟體Mac
- 最先進的三維建模解決方案,速看!
- 多維標度法
- ArchiCAD 26 for Mac(三維建模軟體) 26.0.0.6002啟用版Mac
- 學好三維建模,先從軟體開始(一)
- Rhinoceros mac版(犀牛三維建模軟體)中文版ROSMac
- Kafka多維度調優Kafka
- Rhino 7:靈活高效的三維建模神器 mac/win版Mac
- 利用數學軟體Mathematica的三維影像進行建模
- Magna:品牌信任維度報告
- 資料分析-基礎維度
- Rhinoceros 8:實現細節完美的三維建模 mac/win版ROSMac
- 來聊聊如何學好3ds Max三維建模軟體3D
- 面對高維度的優勢,低維度的數量優勢無濟於事
- 恐怖遊戲的兩個維度遊戲
- 文件評審的四個維度
- RxJava 沉思錄(三):時間維度RxJava
- RxJava 沉思錄(二):空間維度RxJava
- ifelse過度設計:人工智慧建模中的最大錯誤 - svpino人工智慧
- 用 GetLength(int dimension) 獲取陣列指定維度的長度。陣列
- C4DR26中文 Maxon Cinema 4D三維建模