集約ストレージ・データベースの特定のリージョンからのデータのクリア
集約ストレージ・データベース内の指定したリージョンからデータをクリアし、他のリージョンにあるデータを保持できます。 この機能は、揮発性データ(先月に対応するデータなど)を削除し、履歴データを保持する場合に便利です。 データをクリアするには、データベース・マネージャ権限または管理者権限が必要です。
リージョンからデータを消去するメソッド:
-
物理
「図38-2」に示すように、指定したリージョンの入力セルは集計ストレージ・データベースから物理的に削除されます。
図38-2 データのリージョンの物理的なクリア
データベースに複数のデータ・スライスがある場合、物理的なクリア・リージョン操作により、すべてのデータ・スライスがメイン・データ・スライスに自動的にマージされます。 指定した地域のデータがクリアされると、Essbaseは、リージョンのクリア操作が実行される前に、メイン・データ・スライスにあったすべての集計ビューをマテリアライズします。
データを物理的にクリアするプロセスは、消去するデータのサイズではなく、入力データのサイズに比例した時間の長さで完了します。 したがって、このメソッドは、大量のデータ・スライスを削除する場合にのみ使用できます。
物理的にデータを消去するには、clear data in region文法とphysicalキーワードを使用してalter database MaxL文を使用します:
alter database appname.dbname clear data in region 'MDX set expression' physical;
-
論理
指定したリージョンの入力セルは、「図38-3」に示すように、クリアするセルの値がゼロになる負の補正値を持つ新しいデータ・スライスに書き込まれます。
図38-3 論理的にデータのリージョンをクリア
論理的なリージョン消去操作では、値がゼロのデータ・スライスのみがメイン・データ・スライスに自動的にマージされます。データベースの他のデータ・スライスはマージされません。 指定したリージョンのデータがクリアされると、Essbaseは新しいデータ・スライスのみに集計ビューをマテリアライズします。
データを論理的にクリアするプロセスは、クリアされるデータのサイズに比例する時間の長さで完了します。 補正セルが作成されるため、このオプションを選択するとデータベースのサイズが大きくなります。
論理的にデータを消去するには、alter database MaxL文をclear data in region文法で使用しますが、physicalキーワードを使用しないでください:
alter database appname.dbname clear data in region 'MDX set expression';
論理的に消去されたリージョンへの問合せでは、#MISSING値ではなくゼロ値が戻されます。 空のセルの#MISSING値に依存する式を更新する必要がある場合があります。
値がゼロのセルを削除するには、merge文法とremove_zero_cellsキーワードを指定した>alter database MaxL文を使用します。 「Oracle Essbaseのテクニカル・リファレンス」を参照してください。
注意:
2番目の操作では最初の操作で作成された補正セルがクリアされず、新しい補正セルは作成されないため、同じリージョンで2番目の論理クリア・リージョン操作を実行することはお薦めしません。
消去するリージョンを指定するには、次のガイドラインに従います:
-
リージョンは対称である必要があります。
-
{(Jan, Budget)} は、Janのすべての予算データをクリアする有効な対称的なリージョンです。
-
{(Jan, Forecast1),(Feb, Forecast2)} は、2つのasymmetrical地域(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を指定できます。これは、フラット・パネル、HDTV、デジタル記録担当者およびノートブック(共有、最上位製品のレベル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]}';
データを論理的にクリアしたときに代替階層のメンバーを指定するには、子孫MDX関数を使用します。
注意:
リージョンに代替階層から上位レベルのメンバーが含まれる場合、パフォーマンスが低下する可能性があります。 この場合、レベル0のメンバーのみを使用することを検討してください。
-
MDXセット式は、一重引用符で囲む必要があります。
たとえば、Forecast1およびForecast2シナリオの1月すべてのデータを消去するには、次の文を使用します:
alter database ASOsamp.Sample clear data in region 'CrossJoin({Jan},{Forecast1, Forecast2})';
リージョンのクリア操作中に、データベースを更新する操作(データのロード、データ・スライスのマージ、別のリージョンからのデータのクリアなど)を実行したり、データをエクスポートすることはできません。 データベースを問い合せることができますが、問合せ結果は、リージョンの消去操作の前のデータ・セットに基づきます。
「リージョンのデータをクリア」文法では、データベース全体のデータをクリアできません。 「集約ストレージ・データベースからのすべてのデータのクリア」を参照してください。