MDXエクスポート仕様

MDXエクスポート句は、問合せ結果をEssbase上のファイルに保存する方法です。これは、クライアントで問合せ出力を表示する別の方法であり、大規模な問合せや、データをエクスポートして後でデータ・ロードを使用してインポートする場合に役立ちます。

構文

[<with_section>]
EXPORT INTO FILE <file_name> [OVERWRITE] [USING COLUMNDELIMITER <delimiter_character>] [DECIMAL <decimal_number>] [DATAEXPFORMAT]
SELECT [<axis_specification>
       [, <axis_specification>...]]
  <subselect> | FROM <cube_specification> 
[WHERE [<slicer_specification>]]

表4-14 MDX EXPORT句の要素

Item 説明
file_name

エクスポートされたMDX問合せ結果を保存するテキスト・ファイルの名前。ファイル拡張子は必要ありません。

OVERWRITE

file_nameがすでに存在する場合は、それを上書きすることを指定するオプションのキーワード。

USING COLUMNDELIMITER delimiter_character

列区切り文字として使用する文字または単語を指定するオプションの引数。省略した場合、デフォルトのMaxL列出力が使用され、デフォルトの列幅は20文字です。

DECIMAL decimal_number エクスポートされた数値データで使用する小数点以下の桁数を指定するオプションの引数。デフォルトは16です。この引数は、集約ストレージ(ASO)キューブとブロック・ストレージ(BSO)キューブの両方に適用されます。例3を参照してください。
DATAEXPFORMAT

オプションのキーワード。集約ストレージ(ASO)キューブにのみ適用されます。ネイティブ・データ・エクスポート形式でデータ(格納済メンバーのみ)をエクスポートします。ネイティブ形式とは、DATAEXPORT計算コマンドまたは「データのエクスポート」ジョブ・タイプによって生成されるものと同じ形式を意味します。

DATAEXPFORMATディレクティブの制限:

  • エクスポートできるのは、レベル0(格納済)のデータのみです。これを実現するためにFilter関数を使用する方法の例を参照してください。
  • このディレクティブをCOLUMNDELIMITERキーワードとともに使用しても効果はありません。
  • 計算されたメンバーはエクスポートでサポートされていません。
  • 式メンバーはエクスポートでサポートされていません。

例2を参照してください。

ノート

MDXエクスポートは、大規模なデータ・エクスポート用に設計されています。最適なパフォーマンスを得るために、Essbaseは、2軸のMDXエクスポート問合せで、行軸をNON EMPTYとして扱います。これは、NON EMPTYが指定されていない場合でもデフォルトの動作です。NON EMPTYの詳細は、MDX軸仕様を参照してください。

MDXエクスポートを使用してデータ・サブセットをエクスポートする場合、エクスポートのパフォーマンスは最適であり、次のガイドラインに従っているかぎり、232セルの問合せの制約はありません:

  • レベル0 (格納済)データのみエクスポートします。これを実現するためにFilter関数を使用する方法の例を参照してください。
  • 問合せのSELECTセクションで2つの軸を使用します。

MDXエクスポートでは、重複メンバー・アウトラインを持つキューブからデータをエクスポートできます。

例1 – 基本的な使用

次の問合せがMaxLシェルに入力されるとします:

EXPORT INTO FILE "example" OVERWRITE USING COLUMNDELIMITER "#~"
SELECT  
   {[Mar],[Apr]} ON  COLUMNS,
   Crossjoin({[100],[200]} , crossjoin({[Actual],[Budget]},
   {[Opening Inventory],[Ending Inventory]})) ON ROWS
FROM [Sample].[Basic]
WHERE ([New York]);  

問合せにより、最小限の情報のみがMaxLシェルに返されます(ステータス1は問合せの実行が成功したことを示します):

 Axis-1              (File)             
+-------------------+-------------------
 (Mdx Export)                          1

出力ファイルであるexample.txtは、キューブ・ディレクトリに保存され、実際の問合せ出力が格納されます:

Product#~Scenario#~Measures#~Mar#~Apr
Colas#~Actual#~Opening Inventory#~2041#~2108
Colas#~Actual#~Ending Inventory#~2108#~2250
Colas#~Budget#~Opening Inventory#~1980#~2040
Colas#~Budget#~Ending Inventory#~2040#~2170
Root Beer#~Actual#~Opening Inventory#~2378#~2644
Root Beer#~Actual#~Ending Inventory#~2644#~2944
Root Beer#~Budget#~Opening Inventory#~2220#~2450
Root Beer#~Budget#~Ending Inventory#~2450#~2710

MaxLシェルを使用しない場合は、Essbase WebインタフェースのAnalyzeビューを使用してMDXエクスポートを実行することもできます。詳細は、MDXスクリプトの実行を参照してください。

例2 – ASOのDATAEXPFORMAT

次の問合せは、格納済の(レベル0)集約ストレージ・キューブ・データを、DATAEXPORT計算コマンドまたは「データのエクスポート」ジョブによって生成されるものと同じ形式でエクスポートします:

EXPORT INTO FILE "MDXExport_DataExport1.txt" USING DATAEXPFORMAT
SELECT Filter([Measures].members, [Measures].currentmember.STORED_FLAG)
ON COLUMNS, 
NON EMPTY(
 Crossjoin(
  Crossjoin(
   Crossjoin(
    Crossjoin(
     Crossjoin(
      Crossjoin(
       Crossjoin(
        Crossjoin(
         Crossjoin(
          Filter([Years].members, [Years].currentmember.STORED_FLAG),
         Filter([Time].members, [Time].currentmember.STORED_FLAG)),
        Filter([Transaction Type].members, [Transaction Type].currentmember.STORED_FLAG)),
       Filter([Payment Type].members, [Payment Type].currentmember.STORED_FLAG)),
      Filter([Promotions].members, [Promotions].currentmember.STORED_FLAG)),
     Filter([Age].members, [Age].currentmember.STORED_FLAG)),
    Filter([Income Level].members, [Income Level].currentmember.STORED_FLAG)),
   Filter([Products].members, [Products].currentmember.STORED_FLAG)),
  Filter([Stores].members, [Stores].currentmember.STORED_FLAG)),
 Filter([Geography].members, [Geography].currentmember.STORED_FLAG))
)
ON ROWS FROM ASOSamp.Basic;

出力ファイルMDXExport_DataExport1.txtがキューブ・ディレクトリに保存されます。次の例では、長さが切り捨てられます:

"Original Price" "Price Paid" "Units" "Transactions" "Returns"
"Curr Year" "Jan" "Sale" "Cash" "No Promotion" "1 to 13 Years" "Under 20,000" "Camcorders" "017589" "14036" 656.5 656.5 1 2
"13681" 1443 1443 2 1
"Photo Printers" "14010" 232 232 1 2
"14027" 238 238 1 1
"13428" 214 214 1 2
"13681" 206 206 1 2 206
"Feb" "Digital Cameras" "13421" 436 436 1 2
"Camcorders" 682.5 682.5 1 1
"Photo Printers" "13835" 238 238 1 1
"Jan" "Memory" "13904" 220 220 2 2 220
"13664" 238 238 2 1
"13668" 202 202 2 1 202
"13421" 236 236 2 1
"Other Accessories" "14001" 357 357 6 5
"14027" 202 202 4 2
"13628" 380.5 380.5 7 3
"13636" 157.5 157.5 3 2
. . .

例3 – DECIMAL

次の問合せは、格納済の(レベル0)集約ストレージ・キューブ・データを、値の小数点以下5桁でエクスポートします:

EXPORT INTO FILE "MDXExport_DataExport2.txt" USING DECIMAL 5 
SELECT Filter([Measures].members, [Measures].currentmember.STORED_FLAG)
ON COLUMNS,
NON EMPTY(
 Crossjoin(
  Crossjoin(
   Crossjoin(
    Crossjoin(
     Crossjoin(
      Crossjoin(
       Crossjoin(
        Crossjoin(
         Crossjoin(
          Filter([Years].members, [Years].currentmember.STORED_FLAG),
         Filter([Time].members, [Time].currentmember.STORED_FLAG)),
        Filter([Transaction Type].members, [Transaction Type].currentmember.STORED_FLAG)),
       Filter([Payment Type].members, [Payment Type].currentmember.STORED_FLAG)),
      Filter([Promotions].members, [Promotions].currentmember.STORED_FLAG)),
     Filter([Age].members, [Age].currentmember.STORED_FLAG)),
    Filter([Income Level].members, [Income Level].currentmember.STORED_FLAG)),
   Filter([Products].members, [Products].currentmember.STORED_FLAG)),
  Filter([Stores].members, [Stores].currentmember.STORED_FLAG)),
 Filter([Geography].members, [Geography].currentmember.STORED_FLAG))
)
ON ROWS FROM ASOSamp.Basic;

出力ファイルMDXExport_DataExport2.txtがキューブ・ディレクトリに保存されます。データ値の場合、小数点以下の桁数は5に制限されます。次の例では、長さが切り捨てられます:

Years,Time,Transaction Type,Payment Type,Promotions,Age,Income Level,Products,Stores,Geography,Original Price,Price Paid,Units,Transactions,Returns
Curr Year,Jan,Sale,Cash,No Promotion,1 to 13 Years,Under 20,000,Camcorders,017589,14036,656.50000,656.50000,1.00000,2.00000,#Mi
Curr Year,Jan,Sale,Cash,No Promotion,1 to 13 Years,Under 20,000,Camcorders,017589,13681,1443.00000,1443.00000,2.00000,1.00000,#Mi
Curr Year,Jan,Sale,Cash,No Promotion,1 to 13 Years,Under 20,000,Photo Printers,017589,14010,232.00000,232.00000,1.00000,2.00000,#Mi
Curr Year,Jan,Sale,Cash,No Promotion,1 to 13 Years,Under 20,000,Photo Printers,017589,14027,238.00000,238.00000,1.00000,1.00000,#Mi
. . .