2013-10-04 35 views
0

我是MDX的新手。我知道MDX是一種查詢語言,而不是數據轉換語言。但是,我也知道這種區別是部分無意義的;轉換和報表之間沒有明確的界限,每個查詢語言都有一定的轉換能力。精通查詢語言需要知道哪些轉換是合理的,哪些轉換需要重新設計基礎模式。在MDX中可以執行哪些轉換?

從我看到的MDX中,它顯然具有用於在維度內創建計算成員的功能。除此之外,我不清楚它的轉換能力。任何人都可以提供關於MDX可以合理預期執行哪些類型的轉換的簡明摘要?

我不打算將此問題限制在我的特定報告挑戰中。但是,通過描述我的項目,我可以舉例說明一些我感興趣的轉換類型。因此,以下是我正在處理的轉換類型的描述:

我需要使用MDX創建一些庫存和銷售報告。我正在使用Microsoft SQL Server 2008 Analysis Services。數據分爲三個不同的立方體:現有庫存,過境庫存和銷售。我的報告要求以多種方式轉換數據。例如:

1)我需要使用4-4-5日曆的規則從「Weeks」屬性中推斷「Months」屬性。我相當肯定這可以用MDX來優雅地完成。

2)我需要從「Months」屬性推斷「日曆月」維度。我相信這可以通過MDX來完成,但我不確定是否有一個優雅的解決方案或一個應該避免重新設計模式的kludge。

3)我需要從「倉庫」維度中推斷「區域」維度。我沒有看到證據表明這可以通過MDX以優雅的方式完成。

4)我需要將總庫存計算爲現有庫存加運輸庫存。從搜索網頁看來,查詢兩個不同的立方體似乎是可能的,但不鼓勵有利於模式重新設計,但水仍然非常泥濘。

回答

0

我會說你的大部分需求可以用Analysis Services來完成,但不一定用MDX來完成。相反,他們將在立方體設計中完成。這通常是使用GUI(稱爲BIDS(商業智能開發工作室))的Visual Studio完成的。如果您絕對想要使用某種語言,則可以使用XMLA,BIDS如何與Analysis Services服務器進行通信。但是這仍然不是MDX,並且沒有很好的記錄,因此很難學習。您可以使用.net和AMO,但最簡單的方法是BIDS中的GUI。

並且您的一些需求將在多維數據集所基於的關係表的設計中得到最佳實施。前三個需求最好在維度表中實現,然後僅用於多維數據集定義中的維度對象。對於第四個要求,您是對的,這可以很容易地在立方體計算腳本中以計算得到的度量來實現。而這的確是MDX。

理論上,您也可以在MDX中以某種方式實現前三項要求。但是這會很複雜,很難維護並且性能不好。 MDX只是不適合這種類型的需求。

相關問題