集約ストレージ・アウトラインに関する設計の考慮事項
このトピックでは、Essbase集約ストレージ(ASO)キューブのアウトラインを設計する際の、設計上の主要な考慮事項を示します。問合せがどのように実行されるかは、アウトラインをどのように計画したかに大きく関係します。保管階層、動的階層または代替階層(属性ディメンションおよび共有メンバー)として実装する階層を検討する際には、ここで示す推奨事項を使用します。
設計に関する推奨事項の実装例は、ギャラリにあるASOsamp.Basicキューブを参照してください。
ASOアウトラインの設計
集約ストレージ・アウトラインを設計する際は、次の情報を考慮してください。
-
可能なかぎり(動的階層ではなく)保管階層を使用します。
-
必要な場合のみ共有メンバーを使用します。
-
階層の数を最小限にします。(たとえば、保管階層を追加するたびにビューの選択が遅くなり、集約データのサイズが大きくなる可能性があります)。
-
階層が最初の階層の小さいサブセットの場合は、その小さい階層を動的階層にすることを検討してください。考慮事項には、階層データが問合せされる頻度と、その階層データが取得時に動的に問合せされる際の問合せパフォーマンスの影響があります。
-
属性のパフォーマンスは保管階層のメンバーの場合と同じです。
-
基本メンバーに対する属性の関連付けレベルが高いほど、問合せの取得が高速になります。
属性ディメンションとASOキューブ
このトピックでは、属性に関して、集約ストレージ・キューブとブロック・ストレージ・キューブとの相違点を示します。このトピック内の情報を利用するには、ブロック・ストレージでの属性の概念をよく理解している必要があります。「Essbase属性の操作」を参照してください。
次の情報は、集約ストレージ・キューブでの使用時の属性ディメンションに当てはまります。
-
属性ディメンション内で使用できるのは加算(+)集計演算子のみです。
-
指定された属性ディメンションのすべての関連付けの対象は、基本ディメンションの1つのレベルである必要があります。たとえば、ASOsamp.Basicキューブでは、Store Manager属性ディメンションの関連付けの対象はStoresディメンションのレベル0です。属性の関連付けには、次の制限が適用されます。
-
レベル0: 式を持たない動的階層または保管階層のレベル0の任意のメンバーに、属性を関連付けることができます。
-
レベル0以外: プライマリ保管階層の上位レベル・メンバーのみに属性を関連付けることができます。
-
属性ディメンションには階層タイプはありません。属性ディメンションは、動的階層としても、保管階層としても指定できません。Essbaseでは、属性ディメンションは基本ディメンションの保管代替階層として処理されます。たとえば、Essbaseでは、ASOsamp.BasicデータベースのStore Manager属性ディメンションは、Store ManagerディメンションがStoresディメンションの保管代替階層である場合と同様に処理されます。
問合せトラッキングが有効になっている場合は、Essbaseで、属性ディメンション・データに対する問合せが考慮され、集約ビュー選択内容の属性ディメンション・メンバーが含まれることがあります。「使用状況に基づいたビューの選択」を参照してください。
ノート:
レベル0以外のメンバーと関連付けられている属性ディメンションに対する問合せでは、レベル0以外のメンバーの子孫の値が戻されます。集約ストレージ・キューブ内の属性メンバーに対する問合せのこの動作は、ブロック・ストレージ・キューブでの動作とは異なります。
ASOキューブでの属性問合せ
属性の問合せデータに基づいてビューを選択および構築するときに、属性データに対する一部の問合せは、取得時に常に動的に計算されるため、問合せパフォーマンスに影響を与える場合があります。
属性ディメンション・メンバーを含むすべての問合せには、基本ディメンションのメンバーを少なくとも1つ含める必要もあります。問合せに単一の属性ディメンションとディメンションの合計メンバーが含まれている場合は、Essbaseによって、その問合せデータが集約されるため、問合せパフォーマンスが向上する可能性があります。その他の場合は、Essbaseによって取得時に問合せが計算される必要があります。
次の表で、属性問合せのタイプと、Essbaseでの問合せの計算方法を説明します。
表36-2 属性問合せと計算のパフォーマンス
属性問合せのタイプ | 問合せ計算のタイプ |
---|---|
問合せに、基本ディメンションの合計メンバーと1つの属性ディメンションのメンバーが含まれます。 |
Essbaseで問合せデータを集約できるため、問合せパフォーマンスが向上する可能性があります。 |
問合せに、基本ディメンションの任意のメンバーと複数の属性ディメンションのメンバーが含まれます。 |
Essbaseで、レベル0の入力データに基づいて、問合せが取得時に計算されます。 |
問合せに、基本ディメンション・メンバー(またはラベルのみとしてタグ付けされたディメンション・メンバー)の子メンバーと1つの属性ディメンションのメンバーが含まれます。 |
Essbaseで、レベル0の入力データ、または基本ディメンションの集約からのデータに基づいて、問合せが取得時に計算されます。 |
次のアウトラインの図では、RealDimensionはその子孫すべての合計です(ラベルのみとしてタグ付けされていません)。問合せに単一の属性ディメンション(たとえば、AttributeDimension1)の1つ以上のメンバーが含まれ、それが基本ディメンション・メンバー(RealDimension)と交差している場合は、Essbaseでそのデータの集約セルを構築できるため、問合せパフォーマンスが向上する可能性があります。
ただし、次の問合せは常に取得時に計算されます。
-
属性ディメンション(AttributeDimension1など)のメンバーとRealDimensionの子のデータを要求する問合せは、レベル0の入力データまたは集約からのデータに基づいて、取得時に動的に計算されます。
-
複数の属性ディメンション(AttributeDimension1とAttributeDimension2など)と基本メンバー・ディメンション(RealDimensionなど)のデータを要求する問合せは、レベル0の入力データに基づいて、取得時に動的に計算されます。
図36-4 属性問合せの例のアウトライン
属性問合せと複数の階層
複数の階層があるディメンションのデータを問い合せる場合は、次の方法でデータを問い合せると問合せパフォーマンスが向上する場合があります。
-
問い合せる階層を選択します。
-
詳細なデータを探すために移動します(たとえば、Smart Viewで階層をズームインします)。
動的階層のメンバーと保管階層のメンバーを同じ問合せに含めると、大量の内部メモリー・キャッシュが必要になって、問合せパフォーマンスが低下する可能性があります。