集約ストレージ・キューブからのデータのクリア
Essbase集約ストレージ(ASO)キューブからすべてのデータをクリアすることも、指定したリージョンからデータをクリアして、他のリージョンにあるデータを保持することもできます。物理クリアまたは論理クリアを実行できます。
データをクリアするには、データのロードと同じアプリケーション権限(データベース更新権限以上)が必要です。
Essbase Webインタフェースでデータのクリア・ジョブを使用するか、CLIのclearコマンドを使用するか、alter databaseのMaxL文をリージョン内のデータのクリア文法とともに使用できます。このトピックの例では、MaxLを使用しています。
特定のリージョンからのデータのクリア
この方法は、履歴データを保持しながら、揮発性データ(過去1か月間のデータなど)を削除する場合に便利です。
ASOリージョンからデータをクリアする方法には、物理クリアと論理クリアがあります。
-
物理クリア
次に示すように、指定したリージョン内の入力したセルが集約ストレージ・キューブから物理的に削除されます。
図37-2データのリージョンの物理的クリア

キューブ内に複数のデータ・スライスがある場合は、リージョンの物理クリア操作によって、すべてのデータ・スライスがメイン・データ・スライスに自動的にマージされます。指定したリージョンのデータがクリアされた後、リージョンのクリア操作が発生する前にメイン・データ・スライスに存在したすべての集約ビューがEssbaseによって生成されます。
データを物理的にクリアするプロセスが完了するまでの時間は、クリアされるデータのサイズではなく、入力データのサイズに比例します。したがって、この方法は、大きいデータ・スライスを削除する場合にのみ使用します。
データを物理的にクリアするには、alter database MaxL文でclear data in region構文およびphysicalキーワードを使用します。
alter database appname.dbname clear data in region 'MDX set expression' physical;時間を節約するために、MDX set expressionsのカンマ区切りリストを使用して複数の物理リージョンからクリアできます。
-
論理的クリア
次に示すように、指定したリージョン内の入力セルが負の相殺値を含む新しいデータ・スライスに書き込まれ、その結果、クリアする対象のセルの値がゼロになります。
図37-3データのリージョンの論理的なクリア

リージョンの論理クリア操作によって、ゼロ値を含むデータ・スライスのみがメイン・データ・スライスに自動的にマージされます。キューブ内の他のデータ・スライスはマージされません。指定したリージョンのデータがクリアされた後、Essbaseによって、新しいデータ・スライスのみの集約ビューが生成されます。
データを論理的にクリアするプロセスは、クリアされるデータのサイズに比例して完了する時間です。補正セルが作成されるため、このオプションではキューブのサイズが大きくなります。
データを 論理的にクリアするには、alter database MaxL文でclear data in region構文を使用し、physicalキーワードを使用しません。
alter database appname.dbname clear data in region 'MDX set expression';論理的にクリアされたリージョンに対する問合せでは、#MISSING値ではなくゼロ値が戻されます。空のセルの#MISSING値に依存する式を更新する必要がある場合があります。
値がゼロのセルを削除するには、alter database MaxL文でmerge文法とremove_zero_cellsキーワードを使用します。
alter database appname.dbname merge all data remove_zero_cells;ノート:
2回目のリージョンの論理クリア操作では、最初の操作で作成された相殺セルがクリアされず、新しい相殺セルが作成されないため、この操作を同じリージョンで2回実行することはお薦めしません。
クリアするASOリージョンを指定する際は、次のガイドラインに従います。
-
リージョンは対称である必要があります。例
-
{(Jan, Budget)}は、JanのすべてのB Budgetデータをクリアする有効な対称領域です。 -
{(Jan, Forecast1),(Feb, Forecast2)}は、2つの非対称リージョン(Jan、Forecast1およびFEB、Forecast2)で構成されているため、無効なリージョンです
-
-
リージョン指定のディメンションの個々のメンバーは、保管済メンバーである必要があります。
-
リージョン内のメンバーは、次のものにできません。
-
動的メンバー(暗黙的または明示的なMDX式を持つメンバー)
-
属性ディメンションのメンバー
セルを属性によってクリアする必要がある場合は、Attribute MDX関数を使用します。
-
-
リージョン内のメンバーは、保管階層の上位レベルのメンバーにでき、この方法は、複数のレベル0のメンバーを指定する場合に便利です。
たとえば、Qrt1を指定できます。これは、Jan、FebおよびMar (Qrt1のレベル0の子)を指定することと同じです。

次の2つのMaxL文では、同じ結果が生成されます。
alter database appname.dbname clear data in region '{Qtr1}';alter database appname.dbname clear data in region '{Jan, Feb, Mar}'; -
物理クリアの場合のみ、リージョン内のメンバーは、代替階層の上位レベル・メンバーになる場合があります。
たとえば、High End Merchandiseを指定できます。これは、Flat Panel、HDTV、Digital RecordersおよびNotebooks (High End Merchandiseの共有のレベル0の子)を指定することと同じです。

次の2つのMaxL文では、同じ結果が生成されます。
alter database appname.dbname clear data in region '{High End Merchandise}';alter database appname.dbname clear data in region '{[Flat Panel],[HDTV],[Digital Recorders],[Notebooks]}';データを論理的にクリアするときに、代替階層のメンバーを指定するには、Descendants MDX関数を使用します。
ノート:
リージョンに代替階層の上位レベルのメンバーが含まれている場合は、パフォーマンスが低下することがあります。この場合は、レベル0のメンバーのみを使用することを検討してください。
-
MDXのセット式は一重引用符で囲む必要があります。
たとえば、Forecast1およびForecast2のシナリオのJanuaryのすべてのデータをクリアするには、次の文を使用します。
alter database ASOSamp.Basic clear data in region 'CrossJoin({Jan},{Forecast1, Forecast2})';リージョンのクリア操作中は、キューブを更新する操作(データのロード、データ・スライスのマージまたは別のリージョンのデータのクリアなど)を実行できず、データのエクスポートもできません。キューブの問合せは可能です。ただし、問合せ結果は、リージョンクリア操作の前のデータ・セットに基づきます。
clear data in region句では、キューブ全体のデータはクリアできません。
すべてのデータの消去
集約ストレージ・キューブからすべてのデータをクリアすることは、ブロック・ストレージ・キューブの場合と同じです。キューブ全体をクリアするには、alter database MaxL文でresetキーワードを使用します。
alter database appname.dbname reset;