1. 程式人生 > >FocusBI:MDX檢索多維模型 FocusBI: SSIS 開發案例(原創)

FocusBI:MDX檢索多維模型 FocusBI: SSIS 開發案例(原創)

微信公眾號:FocusBI
關注可瞭解更多的商業智慧、資料倉庫、資料庫開發、爬蟲知識及滬深股市資料推送。問題或建議,請關注公眾號傳送訊息留言;
如果你覺得FocusBI對你有幫助,歡迎轉發朋友圈或在文章末尾點贊[1]

       

  《商業智慧教程》pdf下載地址    

  連結:https://pan.baidu.com/s/1f9VdZUXztwylkOdFLbcmWw 密碼:2r4v

MDX引擎 


 

       MDX是一種結構化查詢語言,它比SQL查詢語言更復雜,因為MDX是面向多維資料模型進行資料檢索用來支援複雜的商業環境資料驗證。MDX支援兩種不同的模式,一是表示式語言:定義和操作Analysis Service 物件和資料以計算值。二查詢語言:從Analysis Service中檢索資料。

       多維資料集是使用者為了進行資料分析而設計和使用的物件。在資料倉庫設計階段已經對維度和事實資料進行了分割和處理,通過SSAS引擎組裝成多維型,雖然每個事實量值可以按照事先設計好的維度分析資料,這個通過SQL語句很容易實現;根據多維模型的特性它是用來支援複雜的商業環境資料驗證的,所以不管業務人員還是管理人員提出的商業場景應該是很容易實現的;這裡已最為常用的同比環比做一個簡單案例的介紹。

同比環比


 

       這個案例我採用地產資料給簽約金額做一個簽約金額同比、簽約金額環比;

       同比=((本期/同期)-1)* 100%;環比=((本期/上期)-1)* 100%;通過分析這個計算公式本期是已有的量值在簽約量值組中存在,關鍵是如何拿到同期和上期;而MDX引擎提供瞭如何取這兩個資料的方法函式,但是必須要藉助日期維度,同期的思想是要取去年的今天,上期的思想是要取上個月的今天;所以上期可以通過日期維度CurrentMember.PrevMember 獲得,同期可以通過日期維度ParallelPeriod 日期維度.CurrentMember 獲得

實現步驟


 

       這裡使用MDX支援的模式:表示式語言來定義和操作計算量值。

       第一步:開啟專案把日期維度的屬性改成時間型別(Type);

 

       第二步:開啟多維模型,單擊計算按鈕,單擊新建計算成員,名稱改成[測試_簽約金額上期],表示式:([Measures].[簽約金額],[A日期].[年-季-月-日].CurrentMember.PrevMember),顯示資料夾填寫測試。

 

       第三步:單擊計算按鈕,單擊新建計算成員,名稱改成[測試_簽約金額環比],表示式:format([Measures].[簽約金額]/([Measures].[簽約金額],[A日期].[年-季-月-日].CurrentMember.PrevMember) -1,"0.00%"),顯示資料夾填寫測試。

 

       第四步:單擊計算按鈕,單擊新建計算成員,名稱改成[測試_簽約金額同期],表示式:(ParallelPeriod([A日期].[年-季-月-日].[年],1,[A日期].[年-季-月-日].CurrentMember),[Measures].[簽約金額]),顯示資料夾填寫測試。

 

       第五步:單擊計算按鈕,單擊新建計算成員,名稱改成[測試_簽約金額同比],表示式:format ([Measures].[簽約金額]/(ParallelPeriod([A日期].[年-季-月-日].[年],1,[A日期].[年-季-月-日].CurrentMember),[Measures].[簽約金額]) -1,"0.00%"),顯示資料夾填寫測試。

 

       第六步:部署多維模型,這裡就不介紹了前面的文章有介紹如何部署。

       第七步:單擊瀏覽器,從模型中拖日期維度層次結構年-月-日到選擇維度區域並且選擇2016年2月和2017年2月的前四天,年-季-月-日拖到量值區域;從簽約量值組中拖簽約金額到量值區域,測試量值組分別拖測試_簽約金額上期、測試_簽約金額環比、測試_簽約金額同期、測試_簽約金額同比,完成後點選查詢。

 

 

       第八步:根據同比和環比的公式我們可以看到2016年1季度二月20160201 簽約金額=16128001,2016年1季度二月20160202 測試_簽約金額上期=16128001,2017年1季度二月20160201 測試_簽約金額同期=16128001;這兩個都等於本期說明上期和同期的資料取正確了,這時我們可以把日期維度上的日去掉在驗證一下資料是否正確?

 

MDX函式字典


 

       MDX比SQL要難太多,它涉及到很多空間概念一時半會很多人很難理解而且學習起來比較困難因為有關MDX的官方學習資料和書籍非常少;我在對多維資料模型進行逆向工程的時候,拿到了一份非常全面的MDX語言函式表一共有404個函式的使用方法,這份表已經嵌入到《BI專案管理》系統中,這裡我匯入來分享給大家。關注FocusBI傳送 MDX函式 獲取下載連結,已經關注了的直接傳送就行了。這份MDX函式表有部分是全英文的如果你有能力翻譯只要翻譯說明列就行,請翻譯好後分享一份給我。

 

 

 

歷史文章:

FocusBI: SQL Server核心

FocusBI: 匯流排矩陣(原創)

FocusBI: 資料倉庫 (原創)

FocusBI: 商業智慧場景(原創)

FocusBI: SSIS體系結構(原創)

FocusBI: 使用Python爬蟲為BI準備資料來源(原創)

FocusBI: SSIS 開發案例(原創) 

FocusBI:SSAS體系結構(原創)
FocusBI:租房分析&星型模型
FocusBI:地產分析&雪花模型
FocusBI:MDX檢索多維模型
FocusBI:租房分析視覺化(網址體驗)

FocusBI: 《DW/BI專案管理》之資料庫表結構 (原創)

FocusBI:《DW/BI專案管理》之SSIS執行情況