微信公衆號:FocusBI
關注可瞭解更多的商業智能、數據倉庫、數據庫開發、爬蟲知識及滬深股市數據推送。問題或建議,請關注公衆號發送消息留言;
若是你以爲FocusBI對你有幫助,歡迎轉發朋友圈或在文章末尾點贊[1]html
《商業智能教程》pdf下載地址 數據庫
連接:https://pan.baidu.com/s/1f9VdZUXztwylkOdFLbcmWw 密碼:2r4v瀏覽器
MDX是一種結構化查詢語言,它比SQL查詢語言更復雜,由於MDX是面向多維數據模型進行數據檢索用來支持複雜的商業環境數據驗證。MDX支持兩種不一樣的模式,一是表達式語言:定義和操做Analysis Service 對象和數據以計算值。二查詢語言:從Analysis Service中檢索數據。微信
多維數據集是用戶爲了進行數據分析而設計和使用的對象。在數據倉庫設計階段已經對維度和事實數據進行了分割和處理,經過SSAS引擎組裝成多維型,雖然每一個事實量值能夠按照事先設計好的維度分析數據,這個經過SQL語句很容易實現;根據多維模型的特性它是用來支持複雜的商業環境數據驗證的,因此無論業務人員仍是管理人員提出的商業場景應該是很容易實現的;這裏已最爲經常使用的同比環比作一個簡單案例的介紹。函數
這個案例我採用地產數據給簽約金額作一個簽約金額同比、簽約金額環比;post
同比=((本期/同期)-1)* 100%;環比=((本期/上期)-1)* 100%;經過分析這個計算公式本期是已有的量值在簽約量值組中存在,關鍵是如何拿到同期和上期;而MDX引擎提供瞭如何取這兩個數據的方法函數,可是必需要藉助日期維度,同期的思想是要取去年的今天,上期的思想是要取上個月的今天;因此上期能夠經過日期維度CurrentMember.PrevMember 得到,同期能夠經過日期維度ParallelPeriod 日期維度.CurrentMember 得到學習
這裏使用MDX支持的模式:表達式語言來定義和操做計算量值。測試
第一步:打開項目把日期維度的屬性改爲時間類型(Type);url
第二步:打開多維模型,單擊計算按鈕,單擊新建計算成員,名稱改爲[測試_簽約金額上期],表達式:([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比SQL要難太多,它涉及到不少空間概念一時半會不少人很難理解並且學習起來比較困難由於有關MDX的官方學習資料和書籍很是少;我在對多維數據模型進行逆向工程的時候,拿到了一份很是全面的MDX語言函數表一共有404個函數的使用方法,這份表已經嵌入到《BI項目管理》系統中,這裏我導入來分享給你們。關注FocusBI發送 MDX函數 獲取下載連接,已經關注了的直接發送就好了。這份MDX函數表有部分是全英文的若是你有能力翻譯只要翻譯說明列就行,請翻譯好後分享一份給我。
歷史文章:
FocusBI: 使用Python爬蟲爲BI準備數據源(原創)