MDX (マルチディメンショナル式)は、強力なデータ操作/問合せ言語です。
MDXを使用して、次のことができます。
Essbaseキューブに対するデータとメタデータの問合せおよび報告
Essbaseキューブへのデータの挿入
Essbaseキューブからのデータのエクスポート
MDX問合せは、1つの結果セットを対象として単一のキューブに適用される単一のMDX文です。
MDXレポートは、キューブ・コンテキストに保存された単一のMDX問合せです。MDXレポートには、Smart ViewおよびEssbase Webインタフェースからアクセスできます。
MDXスクリプトは拡張子.mdx
のファイルで、これをアップロードして、「ジョブ」またはSmart Viewから実行できます。MDX挿入およびMDXエクスポートの文のみ、MDXスクリプトで使用する必要があります。グリッド・データを分析するには、MDXスクリプトではなくMDXレポートを使用します。
トピック:
MDXレポートを使用して、Essbase Webインタフェースで問合せを格納およびレンダリングできます。レポートの作成に必要な最低限の権限は、「データベース・マネージャ」です。
「アド・ホック分析」タブを使用したレイアウトの定義は、高度なレポートを作成するための常に最も効率的な方法とはかぎりません。問い合せる対象が正確にわかっている場合は、MDXを使用して、グリッドに移入するための問合せを作成できます。
レポートを使用する方法はキューブ・アクセスによって異なります。
少なくとも、データベース・アクセスのアプリケーションレベルのロールを持つユーザーは、他のユーザーが作成した保存済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は、グリッドベースの分析に役立つのみでなく、マルチディメンショナル・データのサブセットをコピーおよび更新する目的でも使用できます。
MDX挿入句を使用すると、MDXを使用して定義した計算済(非物理)メンバーを使用して、キューブをデータで更新できます。
MDXエクスポート句を使用すると、問合せ結果をデータのサブセットとして保存およびエクスポートし、後で表示またはインポートできるようにすることができます。
MDX挿入およびMDXエクスポートの各文は、保存済のMDXスクリプトとして実行できます。
MDX挿入およびエクスポートについてさらに学習するには、「MDX挿入の指定」および「MDXエクスポートの指定」を参照してください。
データの挿入またはエクスポート操作を実行する必要がある場合、MDXスクリプトを使用します。
グリッド・データの分析の場合、MDXレポートを使用します。MDXレポートを使用したデータの分析を参照してください。
MDXスクリプトを使用するには、ワークフローを選択します。
このワークフローを使用して、MDXスクリプトをテキスト・エディタで記述し、そのスクリプトをEssbaseにアップロードします。
MDXスクリプトをテキスト・エディタで記述し、.mdx
拡張子を付けて保存します。
Essbase Webインタフェースの「ファイル」の下にあるアプリケーションまたはキューブ・ディレクトリにMDXスクリプトをアップロードします。
「ジョブ」からMDXスクリプトを実行します。または、Smart Viewから「Essbase」リボンの「計算」を使用して実行します。
このワークフローを使用して、MDXスクリプトをキューブのスクリプト・エディタで記述し、そのスクリプトを「ジョブ」から実行します。
「アプリケーション」ページでアプリケーションを開き、データベース(キューブ)を開きます。
「スクリプト」をクリックし、次に「MDXスクリプト」をクリックします。
「作成」をクリックし、スクリプトの名前を入力して「OK」をクリックします。
MDXスクリプトを記述します。メンバー・ツリーと関数リストを参考に作業してください。
スクリプトを検証して保存し、スクリプト・エディタを閉じます。
「ジョブ」からMDXスクリプトを実するか(「MDXの実行」を参照)、Smart Viewを使用している場合は、Essbaseリボンの「計算」を使用して実行します。
アプリケーション・ページで、アプリケーションおよびキューブを展開します。
キューブの「アクション」メニューで「検査」をクリックします。
「スクリプト」、「MDXスクリプト」の順にクリックします。
「+」をクリックしてスクリプト・エディタを開きます。
MDXスクリプトを記述します。メンバー・ツリーと関数リストを参考に作業してください。
スクリプトを検証して保存し、スクリプト・エディタを閉じます。
「ジョブ」からMDXスクリプトを実するか(「MDXの実行」を参照)、Smart Viewを使用している場合は、Essbaseリボンの「計算」を使用して実行します。
このワークフローでは、アプリケーション・ワークブックを使用してMDXスクリプトを作成し、そのスクリプトを「ジョブ」から実行します。
MDXスクリプトを扱う際には、次のガイドラインに従ってください。
データの挿入またはエクスポート操作を実行するためにMDXスクリプトを使用します。
グリッド分析の場合、MDXスクリプトではなくMDXレポートを使用します。
MDXスクリプトにはオプションでランタイム代替変数を含めることができます。
ランタイム代替変数を含むMDXスクリプトをSmart View内で利用するには、SET RUNTIMESUBVARS計算コマンド内でXML構文を使用し、その中に<RTSV_HINT>
を含める必要があります。
ランタイム代替変数を設定して、Smart Viewで表示可能なデータ・スライスのみが計算されるようにするには、ランタイム代替変数の値をPOVに設定し、データ型をmemberに設定します。
MDXスクリプトをEssbase Webインタフェースから実行する場合、代替変数は使用できますが、ランタイム代替変数は使用できません。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