MDX (多維表示式) 是一種強大的資料操控與查詢語言。
您可以使用 MDX 執行以下作業:
查詢及回報 Essbase 立方體中的資料和中繼資料
將資料插入 Essbase 立方體中
匯出 Essbase 立方體的資料
一個 MDX 查詢是單一個 MDX 敘述句,只會有一個適用於單一立方體的結果集。
一份 MDX 報表是單一個 MDX 查詢,儲存在立方體相關資訊環境中。您可以從 Smart View 和 Essbase Web 介面存取 MDX 報表。
MDX 命令檔是一個副檔名為 .mdx
的檔案,您可以上傳此類檔案,然後從「工作」或在 Smart View 中執行。MDX 命令檔中只能使用 MDX Insert 和 Export 敘述句。若要分析方格資料,請使用 MDX 報表,而不是 MDX 命令檔。
主題:
您可以在 Essbase Web 介面,使用 MDX 報表儲存及呈現查詢。您至少必須具備「資料庫管理者」權限,才能建立報表。
使用「臨機操作分析」頁籤定義版面配置,不見得是建立複雜報表的最有效率方式。如果您確實知道想要查詢的項目,那麼就可以使用 MDX 建立查詢,在方格中填入資料。
若要進一步瞭解 MDX,請參閱 MDX 和 Writing MDX Queries。
報表的使用方式依立方體存取權而定。
使用者至少必須具備應用程式層級的「資料庫存取」角色,才能呈現其他使用者建立的已儲存 MDX 報表。使用者在報表中見到的顯示資料,會因該使用者的篩選條件存取權而有所不同。
除了呈現已儲存的報表之外,「資料庫存取」使用者還可以多種格式匯出結果集:HTML、CSV、Excel 以及 JSON。
「資料庫存取」使用者也可以按報表名稱旁的動作功能表並選取檢視,以檢視定義報表的 MDX 查詢。
如果您至少具備「資料庫管理者」角色,就可以像「資料庫存取」使用者一樣使用報表。此外,還可以使用動作功能表編輯及刪除報表。
若您是服務管理員,那麼您還可以使用執行身分按鈕,模擬其他使用者並檢查他們的資料存取權。這對於測試指定給多位使用者的篩選條件而言相當實用。
本節中的 MDX 範例展示可使用 MDX 報表執行的特殊類型分析,這類分析通常難以在「臨機操作分析」檢視中完成。
以下是針對在 Sample Basic 立方體上運作所設計的範例。
中繼資料報表
下列範例只會傳回中繼資料 (成員名稱,但沒有資料):
SELECT {[Product].Levels(1).Members} ON ROWS, {} ON COLUMNS
傳回以下方格:
屬性報表
下列範例使用屬性維度的成員 (列在資料欄中):
SELECT [Product].Children ON ROWS, [Ounces].Children ON COLUMNS WHERE {Sales}
傳回以下方格:
已篩選報表
下列範例使用截塊器 (WHERE 子句) 限制對 Cola 的查詢。此外,使用 Filter 函數將查詢中層級 0 的市場限制為利潤為負值的市場。
SELECT { Profit } ON COLUMNS, Filter( [Market].levels(0).members, Profit < 0) ON ROWS WHERE {Cola}
傳回以下方格:
UDA 報表
下列範例顯示含有使用者定義屬性 (UDA) "Major Market" 之 Market 維度成員的 Product 資料。此外,也使用截塊器 (WHERE 子句) 限制讓查詢只包含 Sales 資料。
SELECT [Product].Children ON ROWS, {Intersect(UDA([Market], "Major Market"), [Market].Children)} ON COLUMNS WHERE {Sales}
傳回以下方格:
您可以使用此工作流程在文字編輯器中撰寫 MDX 命令檔,然後將命令檔上傳至 Essbase。
在文字編輯器中撰寫 MDX 命令檔,然後儲存為 .mdx
副檔名的檔案。
將 MDX 命令檔上傳至 Essbase Web 介面中檔案底下的應用程式或立方體目錄。
從工作或 Smart View,使用 Essbase 功能區的計算,執行 MDX 命令檔。
此工作流程可在立方體的命令檔編輯器中撰寫 MDX 命令檔,然後從工作執行這些命令檔。
在「應用程式」頁面中,展開應用程式和立方體。
從立方體的「動作」功能表中,按一下檢查。
依序按一下命令檔和 MDX 命令檔。
按一下 + 號以開啟命令檔編輯器。
撰寫 MDX 命令檔。系統提供成員樹狀結構和函數清單來協助您撰寫命令檔。
驗證並儲存命令檔,然後關閉命令檔編輯器。
從工作執行 MDX 命令檔 (請參閱執行 MDX);或者若使用 Smart View,則使用 Essbase 功能區中的計算來執行 MDX 命令檔。
使用此工作流程以應用程式工作簿建立 MDX 命令檔,然後從工作執行這些命令檔。
以下是使用 MDX 命令檔的準則:
使用 MDX 命令檔執行插入或匯出資料作業。
若要進行方格分析,請使用 MDX 報表,而不是 MDX 命令檔。
可以選擇在 MDX 命令檔包含程式實際執行替代變數。
MDX 命令檔若含有程式實際執行替代變數,必須在 SET RUNTIMESUBVARS 計算命令內使用 XML 語法 (包括 <RTSV_HINT>
),才能在 Smart View 中使用。
若要設成讓程式實際執行替代變數只計算 Smart View 中可見的資料截塊,請將程式實際執行替代變數的值設為 POV,並將資料類型設為成員。
若從 Essbase Web 介面執行,MDX 命令檔可以使用替代變數,但程式實際執行替代變數除外。若要在 MDX 命令檔中使用程式實際執行替代變數,必須從 Smart View 使用 Essbase 功能區的計算來執行命令檔。
以下是可以從「工作」或 Smart View,對 Sample Basic 立方體執行的 MDX 命令檔範例。
MDX 插入
您可以儲存此 .mdx
命令檔,然後從工作或從 Smart View 的計算對話方塊執行。
INSERT "([Measures].[Payroll])" TO "([Measures].[Revised_Payroll])" INTO [Sample].[Basic] FROM ( SELECT {[Measures].[Payroll]} ON COLUMNS, {Crossjoin (Crossjoin(Descendants([Year]), Crossjoin(Descendants([Scenario]), Descendants([Product]))), Descendants([Market]))} ON ROWS FROM [Sample].[Basic] );
以上範例假設先前已經將 Revised_Payroll 計量加到 Sample Basic。
MDX 匯出
您可以儲存此 .mdx
命令檔,然後從工作或從 Smart View 的計算對話方塊執行。
EXPORT INTO FILE "sample01" OVERWRITE SELECT {[Mar],[Apr]} ON COLUMNS, Crossjoin({[New York]}, Crossjoin({[Actual],[Budget]}, {[Opening Inventory],[Ending Inventory]})) ON ROWS FROM [Sample].[Basic] WHERE ([100-10])
執行命令檔後,會將下列匯出檔 sample01.txt
儲存到檔案目錄的立方體目錄中:
Market,Scenario,Measures,Mar,Apr New York,Actual,Opening Inventory,2041,2108 New York,Actual,Ending Inventory,2108,2250 New York,Budget,Opening Inventory,1980,2040 New York,Budget,Ending Inventory,2040,2170
使用程式實際執行替代變數的 MDX 匯出
您可以儲存此 .mdx
命令檔,然後從 Smart View 的計算對話方塊執行。
SET RUNTIMESUBVARS { States = "Massachusetts"<RTSV_HINT><svLaunch> <description>US States</description> <type>member</type> <allowMissing>false</allowMissing> <dimension>Market</dimension> <choice>multiple</choice> </svLaunch></RTSV_HINT>; }; EXPORT INTO FILE "sample002" OVERWRITE SELECT {[Mar],[Apr]} ON COLUMNS, Crossjoin({&States}, Crossjoin({[Actual],[Budget]}, {[Opening Inventory],[Ending Inventory]})) ON ROWS FROM [Sample].[Basic] WHERE ([100-10])
執行命令檔後,會將下列匯出檔 sample002.txt
儲存到檔案目錄的立方體目錄中:
Market,Scenario,Measures,Mar,Apr Massachusetts,Actual,Opening Inventory,-54,-348 Massachusetts,Actual,Ending Inventory,-348,-663 Massachusetts,Budget,Opening Inventory,-160,-520 Massachusetts,Budget,Ending Inventory,-520,-910