[Microsoft-SSAS] MDX Basic

Dana Huang
Jan 3, 2021

我最近報名了Azure Fundamental的微軟課程,因為算是未來工作可能會使用的雲端服務,但因為是邊辦公邊聽的,沒有辦法即時吸收,但它還有贈送免費的AZ-900測驗,無論如何,這陣子就想辦法來考上它吧!

這篇準備內容寫得很好~~

https://medium.com/blacksecurity/az-900-microsoft-azure-fundamentals-d0718175de65

回到正題,上周說MDX會有些類似線性代數的概念,今天來繼續介紹這些基本概念,今天的內容可能會有點長喔,但觀念有了我覺得日後建立cube會輕鬆一些。

•Tuples

  • Cells
  • Sets

MDX都由上述三種集合構成的,Tuple原文的意思代表Cube中任一個可識別的位置,在二維度空間就是一個座標點,三維就是一個空間中的點,而tuple代表多維度空間中的一個座標點。

譬如這樣的一個資料定義,就是代表在Adventure Works這個cube中,各個維度軸所表示出來後的位置。

Cell的中文叫做細胞,在cube中叫做資料格,原文: A cube is composed of cells, organized by measure groups and dimensions. A cell represents the unique logical intersection in a cube of one member from every dimension in the cube. 代表它需要被定義清楚,否則可能讓cube的組成出問題。

所謂的定義清楚,是因為我們在看cube(也就是拉pivot table)時,各種維度組合的可能都會有,但是有些組合之下aggregate出來的value其實是無意義的,所以我們在定義cell時候都給予其properties上的設定,限制一些維度組合,讓使用者使用時出來的數字結果呈現上可以更合理,更準確看到需要的資料。

至於Sets它就是tuple的組合,原文: Using collections of tuples, known as sets, to retrieve multiple cells,譬如下面這樣的資料category欄位的名稱集合就是Sets,在cube使用上它也會有一些hierarchy上的限制,否則也會讓結果呈現出現奇怪的現象。

譬如下面右下角這樣的Sets,將不同層級的產品欄位同時呈現在一個維度上,就是不合理的呈現,所以這樣子query必定是跑不出結果的..

像這樣就是正確的query了,結果就會出現像excel樞紐那樣的資料囉!

另外,不同維度排列順序上也有規定,下圖左方也是錯誤的呈現,因為國家和年度是需要並排呈現的,所以年度出現幾次,國家欄位就要出現幾次,不過這種寫法會讓欄位撰寫重複,因此其實可以直接用corss join的寫法,接著會再稍微介紹。

上面三個概念,是組成cube的基本元素,都是很基本的概念喔! 我們也知道,cube是由很多個維度和measurements組成的資料,我們分析時候通常用到五六個就蠻多了,系統上是可以承受到128個維度,真的非常多,但也要看RAM和CPU是否能負擔這麼大就是了…欄和列其實也只是其中二種表現的方式,真正使用上還更多進階的技巧。

最後的最後,再來介紹一下基本的cube使用常用的函數

Cross Join

剛才說到,維度如果寫到二個其實二者欄位值的順序需要互相配合,但如果自已寫出所有的排列組合也未免太累了,所以我們可以用cross join的方式,把要使用的維度用set的方式組合就可以了,寫法分Crossjoin和*兩種,分別如下面二張圖:

Calculated member

這是在cube上建置欄位的技巧,更常用在開發cube上面,使用者query時候也可以使用,就跟我們在SQL時候寫select…from中間自己加工的欄位一樣的意思喔!下面是一個範例建置一個X=1+1的欄位

Non Empty Function

這個函數通常用在cross join後其實有些組合出來是沒有對應結果的,這時候可以直接忽略不呈現的意思,這種做法可以大大減少呈現出來的data size,增進很大的效能。

資料來源:

SQL server 2008 OLAP多維度分析 悅知文化 尹相志 著 Ch11~13

Ssas mdx language

https://www.slideshare.net/VinodWilson/ssas-mdx-language?from_action=save

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Dana Huang
Dana Huang

Written by Dana Huang

我做數據處理的工作已超過五年,從資料驗證、報表整理到自動化呈現,形形色色的工具真的用不完,突然覺得透過網址寫寫寫心路歷程還不錯!另外也記錄一些生活、工作與理財相關的心情記錄與訊息!

No responses yet

Write a response