iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
2
AI & Data

打造 Microsoft BI 資料服務平台系列 第 25

[25] : 開發一個 Cube~多維度資料模型的設計開發步驟

  • 分享至 

  • xImage
  •  

2019/10/11

Cube 是一種資料模型的概念,把資料依照各種維度建立起來的資料模型稱為 Cube。

在設計開發資料模型時,我們一定要先了解星狀 (Star) 和雪花狀 (snowflake) Schema 資料結構,這是建立 Cube 的基礎。(Star / Snowflake 可參考下圖)

https://ithelp.ithome.com.tw/upload/images/20191009/20120169A1Up1iYhUH.png

Multi-Dimensional Data Model 是在主測量值的外圍會有很多關聯的維度表格,依照分析使用需求上的設計,形成的資料結構關聯圖就好像是 Star 或是 Snowflake 一樣的架構,使用者隨時都可以從任何一個維度視角來查詢資料,這樣就成形了一個所謂 Cube 的概念了。

[範例] Star 星狀 / Snowflake 雪花狀資料結構,以「訂單」資料為範例:

https://ithelp.ithome.com.tw/upload/images/20191009/20120169OtfQqS7clY.png

Multi-Dimensional Data Model 有兩個主要的元素,一個是 Dimension,我們稱它為「維度」:另一個是 Measure,我們稱它為「量值」,這兩個元素各司其職,互相輔佐,讓資料可以組合成 Cube 的資料結構型態,更為接近使用者的視角來看資料,這樣的 Cube 資料結構讓使用者在做資料的上鑽、下探、切片、取磚、查詢資料時,能夠用各種維度來做切割,更為接近使用者的視野角度來看資料。

  1. 先來談談 Dimension
    維度 (Dimension) 就是在表示商務上的個體,這些個體又包含有屬性和階層,在資料庫中的設計就是一個表格 (Table),這些維度是為了用來查詢切割計算集成量值的時候,使用者可以查詢的視角,還有使用者可以分析的顆粒度大小,所以,維度的設計必須要跟使用者的資料分析需求和應用息息相關,從使用者的角度來設計維度,這才是符合 Cube 設計的精神和核心。
    Dimension(維度)通常會定義資料屬性的關聯到 Measure(量值),但並非一定,分析計算的顆粒度屬性通常設定為鍵值 (Key),不是所以的維度都需要關聯到量值,反向來看,所有的量值也不一定會有相同的維度關係和資料集成邏輯。

  2. 再來談談 Measure (Fact)
    量值 (Measure) 就是資料庫中所謂的 Fact Table,一個 Fact Table 可能設計表示成的一個 Measure Group(量值群),也就是多個 Measures,通常都是針對單一主題來設計 Measure Group。
    Measure 是設計用來計算的資料,通常會透過一些集成函數來匯總資料,依照維度階層的設計方法來查詢切割存取資料,得到資料分析所需要的資訊。

Cube 是一種由維度 (Dimensions) 和量值 (Measures) 組合而成的資料模型概念,或是稱之為多維度模型 (Multidimensional Model),互相關聯的 dimensions 形成了 Cube 的最佳設計方法,通常設計的時候,我們會在資料庫 dimensions 設計開發完成之後,再來設計 Cube。

(SSAS) 開發設計 Cube 的步驟:

  1. 從資料倉儲準備資料分析所需要的資料來源
  2. 建立一個“多維度資料挖掘”專案
  3. 設計資料來源(表格和視窗)
  4. 開發設計維度
  5. 開發設計 Cube
  6. 加強 Cube 的設計(計算、集成、KPI、動作等)
  7. 發布建置專案/資料庫
  8. 設定儲存結構、處理作業邏輯、權限與資料安全

一個 SSAS 的 Multi-Dimensional Data Model Package 組成如下圖:
https://ithelp.ithome.com.tw/upload/images/20191009/201201693qROy5GjpD.png

PS : 一般人誤解「建立資料模型就是在建立 Cube」,所以常常聽到說“做資料分析要先建 Cube”,“沒有 Cube 就不叫做資料分析模型”,但是,如果你使用的不是多維度模型架構,那這個資料模型就不會有 Cube 的資料結構概念存在,如果你用的是表格式資料模型,我們通常也不會稱這個資料模型是 Cube。


上一篇
[24] : 資料模型設計概念~你應該要了解的資料模型基本概念
下一篇
[26] : 表格式資料模型~設計一個表格關聯式的資料模型開發步驟
系列文
打造 Microsoft BI 資料服務平台30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言