分享 微軟BI專題 MDX功能初探

2021-04-22 22:53:06 字數 2593 閱讀 9984

本文講述了在分析資料時,利用sql server analysis service 2005多維資料集的mdx語言可以輕鬆實現關聯式資料庫t_sql語句難於實現的功能。

在關係型資料庫中存放著基本的、日常的資料,通常使用t_sql語句來查詢想要的資料,但要在海量資料中分析資料出現的規律,挖掘出自己關心的資料,使用t_sql語句就難於實現了。比如公司領導要實時了解公司運營狀況,通過檢視報表了解以下資訊:

其實,這兩個需求就是我們常說的同比和環比問題,而在關係型資料庫中使用t_sql語句難於實現。如何用簡單的語句實現上述報表要求,並提高查詢分析效率 呢?將關係型資料庫中的資料放到適合分析的多維資料集結構(多維資料集結構不作介紹)中,利用microsoft sql server 2005 analysis services(ssas)中的mdx語言來查詢,事情會變得輕而易舉。關係型資料庫能夠實時存放資料,但不適合作查詢分析。也就是說,t_sql是關 系型資料庫的查詢語言,適用於對基礎資料的增加、刪除、修改和查詢;mdx是多維資料集的查詢語言,適用於查詢分析資料,它的查詢分析功能比t_sql語 言更加靈活,但它不能對資料進行增加、刪除和修改。對於mdx語言,在msdn中對它的定義是:多維表示式(multidimensional expression,mdx),是用於在 microsoft sql server 2005 analysis services(ssas)中處理和檢索多維資料的查詢語言。

通過以下例子可以展現出mdx的分析功能,例子均採用sql server 2005的analysis services的adventure works dw示例庫。

需求:使用mdx語句查詢2023年至2023年的銷售量。

實現方法:在sql server management studio中連線analysis services,選中adventure works dw多維資料庫,新建查詢,在查詢視窗裡貼上以下mdx語句:

以下是**:

__select [measures].[internet sales amount] on 0,

[date].[calendar year].&[2001]:

[date].[calendar year].&[2004] on 1

from [adventure works]

執行結果如圖1。

圖1這是乙個非常簡單的mdx語句。由於mdx是基於多維資料集結構,即cube的查詢語句,可以從各個維度(本例為日期)來分析各度量值(本例為銷售額),所以其查詢效率比使用t_sql查詢關係型資料庫提高很多倍。

在分析資料的問題上,mdx的優勢不僅表現在查詢效率上,還表現在它能輕而易舉地實現很多t_sql語句難於實現的功能。

那麼如何使用mdx來實現剛才提到的同比和環比問題呢?

實現環比功能

需求:本月銷售額及本月比上月銷售額的增長率。

實現方法:在management studio的查詢視窗中輸入貼上以下mdx語句:

以下是**:

with member measures.[amount change rate] as

[measures].[internet sales amount]/

([measures].[internet sales amount],[date].[fiscal].currentmember.prevmember) -1

, format_string = '0%'

select

on 0,

[date].[fiscal].[month].members on 1

from [adventure works]

執行結果如圖2。

圖2實現同比功能

需求:本季度每個月比上個季度同期銷售額增長了多少個百分點?

實現方法:在management studio的查詢視窗中貼上以下mdx語句:

以下是**:

with member measures.[change amount rate] as

[measures].[internet sales amount]/

(  [measures].[internet sales amount],

cousin([date].[fiscal].currentmember, [date].[fiscal].currentmember.parent.prevmember)

) - 1, format_string = '0%'  

__select on 0,

[date].[fiscal].[month].members on 1

from [adventure works]

執行結果如圖3。

圖3同比和環比是bi專案中經常要做的內容,採用mdx語句可以輕鬆實現這個需求。

使 用mdx不僅可以在management studio中進行資料分析,也可以應用於reporting service。將mdx查詢的結果放到reporting service的資料集裡,再用報表的形式展示出來,如圖4,這不就是公司領導想要看到的報表了嗎(報表製作這裡不作講解)?

圖4

微軟商業智慧型 BI 體系

微軟 microsoft 認為 用最簡單的術語來說,商業智慧型是任何嘗試獲取 分析企業資料以更清楚地了解市場和客戶 改進企業流程 更有效地參與競爭的努力。在正確的時間向正確的決策者提供正確的資訊,商業智慧型使企業用更好的時間做出比以前更好的決策。衡量商業智慧型解決方案的標準是從資料獲取知識的能力,這...

微軟BI系統架構設計

總體架構設計 bi已成為微軟產品線中不可或缺的一部分。從2005年到2007年,微軟在其bi產品線中增加了大量的產品,本文將介紹微軟bi產品線的各款產品及其系統架構。從下圖中可以看到,微軟bi產品線已經涵蓋了所有bi功能點,具體如下 1.etl sql server 2005 integration...

分享 微軟Kinect初體驗

kinect於周四開始發售,它可以利用玩家的身體運動控制螢幕上的動作。和與之類似的任天堂wii相比,它的不同之處是沒有任何要握住的東西,也沒有任何按鈕。kinect依靠三部攝像感測器和四台麥克風識別站在站在前方的使用者。系統識別語音命令並讀取玩家全範圍內的運動 不僅是揮舞手臂 然後將它們轉譯為遊戲內...