メンバーによるデータ値の格納方法のオプション

メンバーのデータ値がEssbaseによっていつどのように保管されるかを決定できます。たとえば、ユーザーから要求された場合にのみメンバーの値を計算し、その後はデータ値を破棄するようにEssbaseに指定できます。

使用可能な各メンバー・ストレージ・プロパティについて、次のように説明します。

表5-4ストレージ・プロパティの選択

ストレージ・プロパティ 動作

店舗

データ値をメンバーとともに保管します。

動的計算

ユーザーが要求するまでデータ値を計算せず、その後はデータ値を破棄します。

ラベルのみ

ラベルのみのメンバーの用途は、他のメンバーのグループ化またはラベル付けです。ラベルのみのメンバーのデータはデータベースに保管されません。

共有メンバー

値をメンバー間で共有します。たとえば、Sample Basicデータベースでは、100-20メンバーは100の 親の下に保管され、Dietの親の下で共有されます。

共有しない

メンバーを暗黙的に共有できないようにします。

共有しないとしてタグ付けされたメンバーは、明示的にのみ共有できます。メンバーを明示的に共有するには、同じ名前を持つ共有メンバーを作成し、共有としてタグ付けします。

Essbase Webインタフェースを使用してメンバー・ストレージ・プロパティを設定するには、編集するアウトラインを開き、メンバーを選択して、その一般プロパティを編集します。必要に応じて「データ・ストレージ・タイプ」を変更します。詳細は、「一般プロパティの設定」を参照してください。

アプリケーション・ワークブックまたはキューブ・デザイナを使用してメンバー・ストレージ・プロパティを設定している場合は、適切なディメンション・ワークシートの各メンバーの横にある関連するコードでSTORAGEプロパティを更新します。Sは格納用、Xは動的計算用、Oはラベルのみ用、Nは共有なし用です。詳細は、「ディメンション・ワークシートの理解」を参照してください。

保管済メンバー

保管されたメンバーには、計算後にEssbaseデータベースにメンバーとともに保管される計算された値が含まれます。デフォルトでは、メンバーは保管済として設定されます。

動的計算メンバー

メンバーが動的計算の場合、ユーザーが要求するまで、そのメンバーの値はEssbaseによって計算されません。ユーザーが表示した後、そのメンバーの値はEssbaseによって保管されません。

属性ディメンションのメンバーはEssbaseによって自動的に動的計算としてタグ付けされます。この設定は変更できません。

「データ値の動的計算」も参照してください。

ラベルのみのメンバー

Essbaseのラベルのみのメンバーには、関連付けられたデータがありません。これらは、メンバーをグループ化したり、Smart Viewからのナビゲーションおよびレポートを容易にするために使用します。通常、ラベルのみのメンバーには、非集計プロパティを指定する必要があります。

ラベルのみのメンバーに属性を関連付けることはできません。属性アソシエーションを持つ基本ディメンション・メンバーをラベルのみとしてタグ付けすると、Essbaseによって属性アソシエーションは削除され、警告メッセージが表示されます。

ラベルのみのメンバーの子孫は、動的計算としてタグ付けできません。次の例では、アウトラインの確認時に、ChildBはラベルのみとしてタグ付けできないことを示すエラー・メッセージがEssbaseによって発行されます:


ParentA = Label Only
   ChildB = Label Only
      DescendantC = Dynamic Calc

DescendantCをデータの保管としてタグ付けすると、問題は解決します。

共有のメンバー

Essbase共有メンバーは、アウトライン内の複数の親にまたがって同じメンバーを計算するのに役立ちます。これは、アイテムが複数のカテゴリに属する場合に便利です。共有メンバーに関連付けられたデータ値は、プロトタイプ・メンバーと呼ばれる同じ名前を持つ別のアウトライン・メンバーから導出されたものです。

共有メンバーはプロトタイプ・メンバーに含まれるデータへのポインタを保管し、データは一度だけ保管されます。メンバーを共有として定義するには、同じ名前のプロトタイプ・メンバーが存在する必要があります。たとえば、Sample.Basicデータベースでは、100の下の100-20メンバーは、そのメンバーのデータを保管します。Dietの下の100-20メンバーは、その値を指しています。

共有メンバーは、通常、複数の親にまたがる同じメンバーを計算するために使用されます。たとえば、100とDietの両方の親にあるDiet Colaメンバーを計算するためです。

共有メンバーを使用すると、ディメンション全体でメンバーを繰り返し使用できます。Essbaseによってデータ値が保管されるのは1回のみですが、複数の場所に表示されます。データ値を1回のみ保管することで、領域が節約され、処理効率が向上します。

共有メンバーの詳細は、次の項を参照してください。

ノート:

同じ名前を持つメンバーが、共有メンバーではなく重複メンバーであることがあります。アウトラインでの重複するメンバー名を参照してください。

共有メンバーのガイドライン

Essbase共有メンバーには、子、UDA、属性または式を含めないでください。プロトタイプと同じディメンションにあり、アウトライン順序でその後に続く必要があります。共有メンバーは、一意の別名を持つことができ、他のメンバーと同じ名前を持つことができます。

共有メンバーの作成時にエラーが発生しないようにするには、次のガイドラインに従ってください。

  • 共有メンバーは、プロトタイプ・メンバーと同じディメンションにある必要があります。たとえば、Sample.Basicデータベースの100-20メンバーは、どちらもProductディメンションにあります。

  • プロトタイプ・メンバーは、アウトラインの順序で共有メンバーよりも前である必要があります。

  • 共有メンバーは子を持つことはできません。

  • 同じ名前を持つことができる共有メンバーの数に制限はありません。

  • 共有メンバーにUDAまたは式を割り当てることはできません。

  • 重複メンバー名を持つメンバーに対して共有メンバーを作成できます。

  • 共有メンバーに属性を関連付けることはできません。

  • 共有メンバーに勘定科目プロパティを割り当てる場合、共有メンバー上の勘定科目プロパティが変更されても、それらの勘定科目プロパティの値はプロトタイプ・メンバーから取得されます。

  • 共有メンバーに別名を割り当てることができます。

  • 共有メンバーの別名が空の場合、Essbaseでは保管済メンバーの別名が使用されます。

  • 共有メンバーの別名を割り当て、プロトタイプ・メンバーの別名を変更した場合、共有メンバーの別称は変更されません。

  • プロトタイプ・メンバーは、その共有メンバーの前に配置する必要があります。

  • 属性計算の一部となるプロトタイプ・メンバーと共有メンバーの関係が複雑にならないようにしてください。そうしないと、計算で予期しない結果が戻されることがあります。属性計算と共有メンバーを参照してください。

  • 共有メンバーとそのプロトタイプ・メンバーを同じ親の下に配置できません。重複メンバーのアウトラインでは、兄弟は一意である必要があります。

  • グリッド・クライアント(Smart Viewなど)では、修飾名([Parent].[Child]など)で表示することを指定できるため、共有メンバーをそのプロトタイプ・メンバーと簡単に区別することができます。共有メンバーは、重複メンバー名が有効になるようにアウトラインを設定していなくても、修飾名で表示できます。また、修飾メンバー名を使用して、グリッド内またはメンバー選択で共有メンバーを検索できます。

ドリルダウン時の共有メンバー取得

ズーム・イン(ドリルダウン)操作中に、Essbaseは共有メンバーではなくプロトタイプ・メンバーを取得します(使用可能な場合)。共有メンバーのズーム・アウト(ドリル・アップ)は、プロトタイプではなく共有メンバーの親を取得します。

Essbaseでは、スプレッドシートまたはグリッド・クライアント内の共有メンバーの場所に応じて、ドリルダウン時に共有メンバーが取得されます。Essbaseは、グリッド取得時に次のルールに従います。

  • デフォルトでは、プロトタイプ・メンバー(共有メンバーではない)を取得します。

  • スプレッドシートの最下部から最初に取得します。

  • 共有メンバーの親が、共有メンバーのいずれかのプロトタイプ・メンバーの兄弟である場合、プロトタイプ・メンバーが取得されます。

単一ディメンションからの共有メンバーの例

Sample.Basicアウトラインの東ディメンションのプロトタイプ・メンバーに基づくすべての共有メンバーのテスト・ディメンションを作成した場合、アウトラインは図5-1に示すようになります。

図5-1単一ディメンションからの共有メンバー


このイメージは、testメンバーがEastメンバーからの共有メンバーで構成されているアウトラインを示しています。testおよびEastのメンバーには、同じ兄弟(New York、Massachusetts、Florida、ConnecticutおよびNew Hampshire)が含まれています。

共有メンバーからズーム・アウトすると、プロトタイプ・メンバーではなく、共有している親が返されます。たとえば、Floridaからズーム・アウトすると、Essbaseは共有されている親のtestを返します。

Eastの子のみを取得した場合、Essbaseではデフォルトでプロトタイプ・メンバーが取得されるため、結果はすべてプロトタイプ・メンバーからのものになります。

ただし、スプレッドシート内でその上のtestの子を持つデータを取得すると、Essbaseでは共有メンバーが取得されます。

New York
Massachusetts
Florida
Connecticut
New Hampshire
test

testをその最後の2つの子の上に移動すると、Essbaseでは最初の3つの子は共有メンバーとして取得されますが、最後の2つはプロトタイプ・メンバーとして取得されます。同様に、前述のリストの途中に共有メンバーの兄弟ではないメンバーを挿入すると(たとえば、FloridaとConnecticutの間にCaliforniaを挿入)、Essbaseでは兄弟ではないメンバーと親の間(この場合は、Californiaとtestの間)でのみ共有メンバーが取得されます。

世代間共有メンバーでの取得の例

図5-2に示すように、Sample.Basicアウトラインを変更して、対応するプロトタイプ・メンバー・メンバーが親と兄弟である共有メンバーを作成できます。

図5-2世代間共有メンバーでの取得


このイメージはアウトラインを示しており、このアウトラインでは、testメンバーは、Eastメンバーからの共有メンバー(New York、Massachusetts、Florida、ConnecticutおよびNew Hampshire)と、対応するプロトタイプ・メンバー(West)が親(test)の兄弟である共有メンバー(west)という兄弟で構成されています。

この順序で共有メンバーを含むスプレッドシートを作成すると、Essbaseによってすべての共有メンバーが取得されますが、例外として、共有メンバーwestではなくプロトタイプ・メンバーWestが取得されます。

West
New York
Massachusetts
Connecticut
New Hampshire
test

Essbaseによってこの順序でメンバーが取得されるのは、testwestの親であり、対応するプロトタイプ・メンバーWestの兄弟であるためです。

暗黙共有メンバー

Essbaseアウトライン・メンバーは、共有として指定されていない場合でも暗黙的に共有できます。

暗黙的な共有が有効な場合、親メンバーは、単一の子メンバー(1つのみ存在する場合)、またはそれらの唯一の連結子の値(連結する子が1つのみ存在する場合、つまり~または^以外の演算子を持つ場合)を暗黙的に共有します。

このような親は、次の場合を除き、暗黙の共有メンバーです。

  • Formulaがあります。
  • 「共有しない」に設定されています
  • 暗黙的な共有が有効になっていません

デフォルトでは、暗黙の共有は有効になっていません。Essbase 21c以降では、IMPLIED_SHARE_ON_CREATE構成設定を使用して必要に応じて有効にできます。

暗黙的な共有が有効な場合、Essbaseでは、次の状況で、共有メンバー関係が(暗黙的に)想定されます。

  • 親は1つの子のみを持っています。 この状況では、親と子に同じデータが含まれます。Essbaseによって子上の集計プロパティは無視され、データは1回のみ保管されます。そのため、親は子と暗黙的な共有関係を持ちます。次の例では、親500は1つの子500-10のみを持つため、親はその子の値を共有します。

    500 (+)
      500-10 (+)
  • 親の親に連結される1つの子のみを持っています。 親に4つの子があるが、3つの子が連結なしとしてマークされている場合、連結する親と子には同じデータが含まれます。Essbaseによって子上の集計プロパティは無視され、データは1回のみ保管されます。そのため、親は子と暗黙的な共有関係を持ちます。次の例では、親500にロールアップされる子は500‑10のみです。他の子は集計なし(~)としてマークされているため、親は暗黙的に500‑10の値を共有します。

    500 (+)
      500-10 (+)
      500-20 (~)
      500-30 (~)

上記のケースは、親メンバーに式がある場合には適用されません。

メンバーが暗黙的に共有されないようにするには、親を共有しないとしてマークすることで、かわりにデータが複製されるようにします。