MDXを使用したデータの分析および管理
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レポートを使用したデータの分析
MDXレポートを使用して、Essbase Webインタフェースで問合せを格納およびレンダリングできます。レポートの作成に必要な最低限の権限は、「データベース・マネージャ」です。
「アド・ホック分析」タブを使用したレイアウトの定義は、高度なレポートを作成するための常に最も効率的な方法とはかぎりません。問い合せる対象が正確にわかっている場合は、MDXを使用して、グリッドに移入するための問合せを作成できます。
MDXレポートへのアクセス
レポートを使用する方法はキューブ・アクセスによって異なります。
少なくとも、データベース・アクセスのアプリケーションレベルのロールを持つユーザーは、他のユーザーが作成した保存済MDXレポートをレンダリングできます。レポートで表示されるデータはユーザーのフィルタ・アクセスによって異なります。
保存済レポートのレンダリングに加えて、データベース・アクセス・ユーザーは、HTML、CSV、ExcelおよびJSONなど、様々な形式で結果セットをエクスポートできます。
データベース・アクセス・ユーザーは、レポート名の横にある「アクション」メニューをクリックしてから「表示」を選択して、レポートを定義するMDX問合せを表示することもできます。
少なくともデータベース・マネージャのロールを持っている場合、データベース・アクセス・ユーザーと同様にレポートを使用できます。また、「アクション」メニューを使用してレポートを編集および削除できます。
サービス管理者の場合、さらに、「次として実行」ボタンを使用すると、他のユーザーに偽装し、データ・アクセスを確認できます。これは、様々なユーザーに割り当てられたフィルタをテストする際に役立つことがあります。
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レポートを使用したデータの分析を参照してください。
MDXスクリプトを使用するには、ワークフローを選択します。
MDXスクリプトの記述、アップロードおよび実行
このワークフローを使用して、MDXスクリプトをテキスト・エディタで記述し、そのスクリプトをEssbaseにアップロードします。
-
MDXスクリプトをテキスト・エディタで記述し、
.mdx
拡張子を付けて保存します。 -
Essbase Webインタフェースの「ファイル」の下にあるアプリケーションまたはキューブ・ディレクトリにMDXスクリプトをアップロードします。
-
「ジョブ」からMDXスクリプトを実行します。または、Smart Viewから「Essbase」リボンの「計算」を使用して実行します。
スクリプト・エディタでのMDXスクリプトの記述および実行
このワークフローを使用して、MDXスクリプトをキューブのスクリプト・エディタで記述し、そのスクリプトを「ジョブ」から実行します。
-
「アプリケーション」ページでアプリケーションを開き、データベース(キューブ)を開きます。
-
「スクリプト」をクリックし、「MDXスクリプト」をクリックします。
-
「作成」をクリックし、スクリプトの名前を入力して「OK」をクリックします。
-
MDXスクリプトを記述します。メンバー・ツリーと関数リストを参考に作業してください。
-
スクリプトを検証して保存し、スクリプト・エディタを閉じます。
-
「ジョブ」からMDXスクリプトを実行するか(MDXの実行を参照)、Smart Viewを使用している場合は、「Essbase」リボンの「計算」を使用して実行します。
-
アプリケーション・ページで、アプリケーションおよびキューブを展開します。
-
キューブの「アクション」メニューで「検査」をクリックします。
-
「スクリプト」、「MDXスクリプト」の順にクリックします。
-
「+」をクリックしてスクリプト・エディタを開きます。
-
MDXスクリプトを記述します。メンバー・ツリーと関数リストを参考に作業してください。
-
スクリプトを検証して保存し、スクリプト・エディタを閉じます。
-
「ジョブ」からMDXスクリプトを実行するか(MDXの実行を参照)、Smart Viewを使用している場合は、「Essbase」リボンの「計算」を使用して実行します。
キューブ・デザイナにおけるMDXスクリプトの作成および実行
このワークフローでは、アプリケーション・ワークブックを使用してMDXスクリプトを作成し、そのスクリプトを「ジョブ」から実行します。
- アプリケーション・ワークブックで、MDXワークシートを作成します。キューブ・デザイナでのMDXワークシートの操作を参照してください。
- 「ファイル名」フィールドにファイル名を追加します。
- 「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」リボンの「計算」を使用してスクリプトを実行する必要があります。
-
MDXスクリプトの例
次に、「ジョブ」または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