機械翻訳について

集約ストレージ・データベースの計算

集約ストレージ・データベースの値は、アウトライン構造およびMDX式を使用して計算されます。 データ・ロードが完了すると、集約ストレージ・データベースの計算に必要なすべての情報が使用可能になります。 取得リクエストが行われると、「Essbaseサーバー」は、レベル0のメンバーにロードされた値を集計し、式を計算して、必要な値を計算します。 取得に対して計算された値は格納されません。

取得のパフォーマンスを向上させるために、Essbaseでは、値を集計して事前に格納できます。 ただし、すべての値の集計および格納は、ストレージ用のディスク領域を必要とする長いプロセスになる可能性があります。 Essbaseは、時間とストレージ・リソースのバランスを取るインテリジェントな集約プロセスを提供します。

集約ストレージ・データベースの取得を準備するには、アウトラインを作成し、レベル0の値をロードします。 次に、取得時に計算される残りの値とともに、追加の値を集計および格納してデータベースを計算します。

ノート:

データベースで特別な計算およびデータ依存性を処理するために計算スクリプトが必要な場合は、データベース設計を変更するか、ブロック・ストレージ・データベースにすることを検討してください。

データ値に影響するアウトライン・ファクタ

集約ストレージ・アウトラインの階層構造によって、値のロールアップ方法が決まります。 レベル0のメンバー値はレベル1のメンバー値にロールアップされ、レベル1のメンバー値はレベル2のメンバー値にロールアップされます。

動的階層のメンバーに割り当てられた連結演算子は、ロールアップで使用される操作を定義: 加算(+)、減算(-)、乗算(*)、除算(/)、パーセント(%)、演算なし(~)および(^)は連結しません。

ノート:

保管階層のメンバーは、加算(+)または連結なし(~)演算子のみを持つことができます。

より複雑な操作の場合は、動的階層のメンバーにMDX式を指定できます。 MDX式はMDX数値式と同じ形式で記述されます。

集約ストレージ・データベースに適用されないブロック・ストレージの計算機能

ブロック・ストレージ・データベースの計算に関する次の特性は、集約ストレージ・データベースには適用されません:

  • 計算スクリプトの計算

  • 「動的計算」メンバーのストレージ・プロパティ

  • ブロック・ストレージ式の構文および式での事前定義済Essbase関数

  • 集約ストレージ動的階層のメンバー以外のディメンションのメンバーに対する式

  • レベル0より上のメンバー交差の事前ロード済値

  • 2パス計算タグ

  • インテリジェント計算などのブロック・ストレージ・パフォーマンス機能

計算の順序

集約ストレージの計算順序とブロック・ストレージの計算順序が異なります。 集約ストレージ・データベースの場合、Essbaseは次の順序でデータを計算します:

  1. 保管階層および属性ディメンションのメンバーを集約します。 メンバーおよびディメンションが集計される順序は内部的に最適化され、データベース・アウトラインおよび既存の集計の性質に応じて変更されます。 集計は加算的であるため、Essbaseがディメンションおよびメンバーを集計する順序は結果に影響しません。

    集約ストレージ・データベースの内部集約順序は予測できないため、固有の丸めエラーも予測できません。 これらの丸めエラーはコンピュータの計算で予想される動作であり、関連するデータ値に関連して非常に小さくなります。

  2. 動的階層のディメンション・メンバーおよび式を計算します。 メンバーおよび式が評価される順序は、解決順プロパティによって定義されます。このプロパティは、メンバーまたはディメンションごとに設定できます。 計算順序は計算結果に影響する可能性があります。

解決順プロパティ

解決順の概念は、問合せの実行に適用されます。 セルが多ディメンション問合せで評価される場合、計算の解決順序があいまいになることがあります。 あいまいさを解消するには、解決順プロパティを使用して、必要な計算優先度を指定します。

ノート:

解決順プロパティを設定して、各メンバーの解決順を指定することをお薦めします。 解決順が指定されていない式のないメンバーは、そのディメンションの解決順を継承します。 解決順が指定されていない式を持つメンバーの解決順はゼロです。

解決順を変更するには、「Essbase webインタフェース」のアウトライン・エディタを使用するか、Smart Viewを使用します(「選択したPOVの解決順の変更」を参照)。 計算済メンバーの解決順を指定するには、MDX問合せのWithセクションでsolve_orderパラメータを使用できます。

解決順プロパティの値によって、Essbaseが式を計算する際の優先度が決まります。 解決順が指定されているメンバーの式は、最も低い解決順から最も高い解決順に計算されます。 解決順には0から127までの数値を指定できます。 デフォルトは0です。

解決順はメンバー・レベルで指定できます。 Essbaseでは、次の情報を使用して計算の優先順位を定義します:

  1. メンバーの解決順

  2. ディメンション解決順(メンバー解決順を指定しない式のないメンバーは、そのディメンションの解決順を継承します。 メンバー解決順を指定しない式を持つメンバーの解決順はゼロです。)

    複数のメンバーが同じ解決順を持つ場合、メンバーは、データベース・アウトラインでディメンションが出現する順序とは逆の順序で評価されます。 後でアウトラインで発生するメンバーが優先されます。

    tie状況計算順序は、ブロック・ストレージ・データベースのMDX問合せで定義された計算済メンバーでは異なります。

    ノート:

    メンバー式が別のメンバーの値に依存している場合、式を持つメンバーの解決順は、そのメンバーが依存するメンバーよりも高くする必要があります。 たとえば、ASOsamp.Sampleデータベース・アウトラインでは、平均単位/トランザクションは単位およびトランザクションの値に依存します。 平均ユニット/トランザクションの解決順は、ユニットおよびトランザクションより高くする必要があります。

解決順プロパティの使用例

次の例は、ASOsamp.Sampleデータベースに基づいています。 この例では、問合せ結果のあいまいさを解消するために、解決順プロパティを使用して必要な計算優先度を指定します。

次に示すスプレッドシート問合せでは、販売ユニット数および今年度の1月と前年度の1月のトランザクション数のデータが取得されます。 差異メンバーには、現在の年と前年の差異が表示されます。 平均ユニット/トランザクション・メンバーには、トランザクション当たりの販売ユニット数の比率が表示されます。

図36-4 2つの比率の差異を示すASOsamp.Sampleデータベースのスプレッドシート問合せの結果(C12)


この図は、前のテキストで説明されているスプレッドシート問合せの結果を示しています。

次の図は、これらのメンバーのデータベース・アウトラインと、差異および平均単位/取引メンバーに適用される式を示しています。

図36-5 メジャー、年および時間ディメンションが表示されたASOsamp.Sampleデータベース


この図は、図の前のテキストで説明されているアウトラインを示しています。

トランザクション当たりの平均単位数(スプレッドシートの例ではセルC12)の差異を計算する場合、結果は2つの比率間の差異になるか、2つの差異の比率になります。 結果は、Essbaseで差異の式が優先されるか、平均単位工数/トランザクションの式が優先されるかによって異なります。

データベース・アウトラインのメンバーに添付されている解決順プロパティの値によって、Essbaseが式を評価する際の優先度が決まります。 解決順の設定が高いほど、後でメンバーが計算されます。 たとえば、解決順が1の式は、解決順が2のメンバーの前に解決されます。

この例では、Varianceメンバーの解決順がAvg Units/Transactionメンバーよりも低い場合、Varianceメンバーの式が優先され、その結果が2つの比率の差異になります。 これは、差異メンバーの解決順が10で、平均単位/トランザクション・メンバーの解決順が20であるため、ASOsamp.Sampleデータベースで発生します。 差異メンバーの解決順が低いため、差異の式が優先されます。 スプレッドシートの例における問合せのセルC12の結果は、次の表に示すように、それぞれの比率の差異です:

表36-3 解決順プロパティを使用した2つの比率間の差異の指定

メンバー 解決順 差異と平均単位/取引の交差の結果(セルC12)

差異

10

現行年度 - 前年度

当年の平均ユニット/トランザクション - 前年平均ユニット/トランザクション

0.94894382 (セルC6) - 0.954252111(セルC9) = - 0.005308291 (セルC12)

平均ユニット/トランザクション

20

Units/Transactions

または、ASOsamp.Sampleデータベースを変更し、平均単位/トランザクション・メンバーに差異メンバーより低い解決順を指定すると、次の表およびスプレッドシートの例に示すように、平均単位/トランザクション・メンバーの式が優先され、その結果が2つの差異の比率になります:

表36-4 解決順プロパティを使用した2つの差異の比率の指定

メンバー 解決順 差異と平均単位/取引の交差の結果(セルC12)

差異

20

現行年度 - 前年度

トランザクションのユニット / 差異の差異(当年から前年)

10585 (cell C10) / 11340 (cell C11) = 0.933421517 (cell C12)

平均ユニット/トランザクション

10

Units/Transactions

図36-6 差異の比率を示すASOsamp.Sampleデータベースのスプレッドシート問合せの結果(C12)


この図は、前のテキストで説明されているスプレッドシート問合せの結果を示しています。

集約ストレージ・データベースの集約

集約ストレージ・データベースでは、データ値がアウトラインのレベル0のセルにロードされた後に個別の計算ステップは必要ありません。 ユーザーは、データベース内の任意の時点から、現在の取得に対してのみ、動的に集計された値を取得および表示できます。 集約ストレージ・データベースはブロック・ストレージ・データベースより小さいため、データ値を迅速に取得できます。

データベースが大きくなるにつれて、取得では問合せの計算ニーズを満たすために、より多くのデータ値を処理する必要があります。 取得を高速化するために、Essbaseではデータ値を事前計算して集計に格納できます。 データベース・サイズが100万の集計セルに近い場合は、集計の実行を強く検討する必要があります。 データベースの使用状況および使用環境に応じて、小規模なデータベースも事前計算することでパフォーマンス上の利点を得ることができます。 MaxLまたは「Essbase webインタフェース」のジョブを使用して、集約ストレージ・データベースを計算します。

集計関連の用語の理解

次の用語は、集約ストレージ・データベースの計算の説明に不可欠です。

集計セル

式を含まないディメンション間のレベル0交差のセルは、入力セルと呼ばれます。 データ値をロードできます。 勘定科目ディメンションまたは動的階層のメンバーを含む上位レベルのセルは、常に取得時に計算されます。 ディメンション間の他の高レベルの交差はすべて「集約セル」です。 たとえば、「集約ストレージ・アウトラインの例」のアウトラインの場合、Price Paid→Curr Year→1st Half→Portable Audio→COは集計セルです。Original Price→Curr Year→Jan→Camcorders→COは別の集計セルです。 集計セルの値は、下位レベルの値からロールアップする必要があります。

集約セルの値は、要求ごとに計算することも、事前計算してディスクに格納することもできます。

集約ビュー

Essbaseで事前計算および格納する集計セルが定義されている場合は、集計ビューで機能します。 「集約ビュー」は、集計セルの集合です。 コレクションは、各ディメンション内のメンバーのレベルに基づきます。

たとえば、アウトラインの集約ビューが1つあるとします。 この集約ビューには、次のディメンション・レベルの集約セルが含まれます:

  • Measuresディメンション、レベル0

  • 年ディメンション、レベル0

  • 時間ディメンション、階層0のレベル1

  • Productディメンション、階層0のレベル2

  • 地理ディメンション、レベル0

集約ビューの例は、0、0、1/0、2/0、0と表示されています。

各ディメンションは、左から右の順にアウトラインに表示されます。 ディメンションに階層が含まれている場合、その階層内のメンバー・レベルが表記で指定されます。 ディメンション内の階層には、階層0から始まるトップダウンの番号が付けられます。

0、0、1/0、2/0、0集約ビューには、次のメンバー交差を含む集約セルが含まれます:

Original Price, Curr Year, Qtr1, Personal Electronics, CO 
Original Price, Curr Year, Qtr1, Personal Electronics, KS 
Original Price, Curr Year, Qtr1, Home Entertainment,   CO 
Original Price, Curr Year, Qtr1, Home Entertainment,   KS 
Original Price, Curr Year, Qtr2, Personal Electronics, CO 
Original Price, Curr Year, Qtr2, Personal Electronics, KS 
Original Price, Curr Year, Qtr2, Home Entertainment,   CO 
Original Price, Curr Year, Qtr2, Home Entertainment,   KS 
Original Price, Curr Year, Qtr3, Personal Electronics, CO 
Original Price, Curr Year, Qtr3, Personal Electronics, KS 
Original Price, Curr Year, Qtr3, Home Entertainment,   CO 
Original Price, Curr Year, Qtr3, Home Entertainment,   KS 
Original Price, Curr Year, Qtr4, Personal Electronics, CO 
Original Price, Curr Year, Qtr4, Personal Electronics, KS 
Original Price, Curr Year, Qtr4, Home Entertainment,   CO 
Original Price, Curr Year, Qtr4, Home Entertainment,   KS 
Original Price, Prev Year, Qtr1, Personal Electronics, CO 
Original Price, Prev Year, Qtr1, Personal Electronics, KS 
Original Price, Prev Year, Qtr1, Home Entertainment,   CO 
Original Price, Prev Year, Qtr1, Home Entertainment,   KS 
and so on...

集約

「集計」は、アウトライン階層に基づく、レベル0のデータ値の連結です。 集計には、1つ以上の集計ビューが含まれます。 Essbaseには、ロールアップする集約ビューを選択して集約し、選択したビューにセルの値を格納するインテリジェントな集約プロセスが用意されています。 データ・ロードによって変更されるレベル0の値に依存する集計セルが集計に含まれる場合、上位レベルの値はデータ・ロード・プロセスの最後に自動的に更新されます。

aggregationという用語は、集計プロセスおよびプロセスの結果として格納される値のセットに使用されます。

集計スクリプト

「集計スクリプト」は、マテリアライズする集計ビューの特定の選択を定義するファイルです。 「集計スクリプトの使用」を参照してください。

データベース集計の実行

集計を実行するには、MaxL文または「Essbase webインタフェース」のジョブを使用します。 集計プロセスには、次の2つのフェーズがあります:

  • 集約ビューの選択。

  • 選択した集約ビューの値の計算およびストレージ。 このフェーズは、集計のマテリアライズとも呼ばれます。

集約ビューの選択フェーズで、Essbaseは、集約ビューの様々な組合せの計算および格納が平均問合せレスポンス時間に与える影響を分析します。 分析への入力として、物理ストレージおよびパフォーマンス要件を定義できます。 また、データの使用状況を追跡し、分析プロセスに情報を提供することもできます。 「使用状況に基づいたビューの選択」を参照してください。

Essbaseでは、その有用性およびリソース要件に基づいて、集計ビューのリストが作成されます。 リスト内の各ビューには、その集計ビューと、その上にリストされている他のすべての集計ビューが格納されている場合に適用されるストレージおよびパフォーマンスの情報が含まれます。 リストされたビューの集計、リストされたビューのサブセットの選択および集計、または異なる入力基準を使用した選択プロセスの再実行を選択できます。 新しい選択基準に基づいた新しいビューのマテリアライズを集計に追加することもできます。 「集計ビュー選択の微調整」を参照してください。

選択内容をマテリアライズするかどうかに関係なく、集約ビューの選択内容を集約スクリプトとして保存できます。 集計スクリプトを使用すると、同じ選択が再度必要になった場合に選択プロセスをバイパスできるため、柔軟性があり、時間を節約できます。 「集計スクリプトの使用」を参照してください。

選択プロセスが終了した後、選択した集約ビューを集約にマテリアライズすると、選択した集約ビューが計算されます。

集計を定義およびマテリアライズするには、次のプロセスをお薦めします:

  1. アウトラインを作成または変更した後、データ値をロードします。

  2. デフォルトの集計を実行します。

    オプション: ストレージ停止ポイントを指定します。

  3. 推奨される集約ビューをマテリアライズし、デフォルトの選択内容を集約スクリプトに保存します。

  4. 集計を設計する問合せのタイプを実行します。

  5. 問合せ時間または集計時間が長すぎる場合は、集計の微調整を検討してください。

  6. (オプション)集計選択を集計スクリプトとして保存します。

データベース集計の選択またはマテリアライズを実行するには、「Essbase webインタフェース」または次のMaxL文を使用できます:

必要に応じて、Essbase「集約ビューの自動生成」に構成することもできます。

集計ビュー選択の微調整

Essbaseによって提案される集計ビューのデフォルトの選択により、優れたパフォーマンスが提供されます。 ただし、選択リストのすべての集約ビューを受け入れることで、最適なパフォーマンスが保証されるわけではありません。 デフォルトの選択では、Essbaseは格納されている階層を分析し、集計セルが取得される可能性が同じであると想定します。 Essbaseでは、問合せ時に使用可能なメモリー量などの外部ファクタを考慮できません。 使用可能なメモリーは、取得時のキャッシュ・メモリー定義や、他の同時プロセスが必要とするメモリーなどのファクタの影響を受ける可能性があります。

最も多くの問合せが行われたデータを追跡し、結果および代替ビューを集約ビュー選択プロセスに含めることができます。 「使用状況に基づいたビューの選択」を参照してください。

集計をチューニングおよびテストする際には、次の点を考慮してください:

  • 取得パフォーマンスを向上させると、ディスク・ストレージ・コストおよび集計のマテリアライズにかかる時間が増加する可能性があります。

  • 問合せをトラッキングすると、提案された集計ビューのセットが生成され、一部の問合せでは他の問合せよりもパフォーマンスが向上する場合があります。 提案された集約ビューを選択すると、問合せのタイプおよび頻度がトラッキング期間中に実行される問合せのタイプおよび頻度に近いかぎり、他の問合せのパフォーマンスが大幅に向上し、改善がほとんど発生しません。

  • 集計の最適化には、反復的な微調整プロセスが必要になる場合があります。

Essbaseでは、データベースの集計ビューの適切なバランスを選択して格納するのに役立つ情報が提供されます。 データベースの取得要件および環境について把握している内容に対して、この情報を評価します。 次の情報を使用して、集計の集計ビューを選択できます:

  • 最大ストレージ要件

    集約ビューを選択するためのストレージ制限は、次の2つの方法で指定できます:

    • 集約選択が開始されたら、最大ストレージ停止値を指定します。 集約ビューは、指定されたストレージ制限に達するか、選択するビューがなくなるまで選択されます。

      「total_sizeの超過時の停止」文法でexecute aggregate process MaxL文を使用する場合、結果のデータファイルの最大ディスク領域を現在のデータベース・サイズの比率として指定できます。 たとえば、データベースのサイズが1 GBの場合、合計サイズを1.2として指定すると、結果のデータのサイズは合計で1 GBの20%を超えることはできません。

    • データベースの各分析の後、Essbaseでは、レベル0の入力セル・ビューに関する情報の後に、推奨される集約ビューのリストが表示されます。 各集約ビューによって表示されるストレージ番号には、その集約ビューと、それが依存する他のすべての集約ビューが含まれます。 このストレージ番号は、集計に含める集計ビューを選択する際に考慮できます。

  • 「問合せコスト」の相対的なパフォーマンス向上

    リスト内の各集約ビューで表示される問合せコストの数値は、関連付けられた集約ビューから値を取得するための平均取得時間です。 デフォルトのビュー選択では、可能なすべての問合せの平均としてコストが見積もられます。 問合せトラッキングを使用する場合、見積りコストはトラッキングされるすべての問合せの平均です。 特定の集約ビューのコスト番号は、選択リストごとに異なる場合があります。たとえば、集約ビュー0、0、1/0、2/0、0は、分析で追跡された問合せを含む選択に表示されるものとは異なる問合せコストをデフォルトの選択リストに表示できます。

    改善率をコンピュートするには、集計ビューの問合せコスト値を、レベル0の入力セルのみを格納するために表示される問合せコスト値に分割します。

  • 使用状況の追跡

    集約ビューの選択を実行する前に、問合せトラッキングをオンにして、最も頻繁に取得されるデータを決定できます。 一定期間のデータベース・アクティビティの後、Essbaseで集計分析プロセスに使用状況統計を含めることができます。

  • 集約時間

    選択プロセスの完了後に集計の実行にかかる時間が、マテリアライズド・ビューごとに増加します。 実際の集計時間を決定するには、集計を実行する必要があります。

集計を微調整するには、次のプロセスをお薦めします:

  1. 「データベース集計の実行」で説明されているデフォルトの集計を実行します。

  2. 集計スクリプトにデフォルトの選択を保存します。 「集計スクリプトの使用」を参照してください。

  3. 問合せトラッキングをオンにします。

  4. ユーザーにデータベースに対する通常の問合せを実行させるか、集計が設計されているバッチ問合せ操作を実行させます。 すべての問合せツールからの問合せが追跡されます。

  5. データ取得要件を取得するのに十分な時間が経過したら、追跡データを含む別の集計を実行します。

  6. 格納する集約ビューの提案されたリストを分析し、システム・リソースの最適なバランスを提供してパフォーマンスを取得すると判断する集約ビューを選択します。

  7. 選択した集約ビューをマテリアライズし、必要に応じて選択内容を集約スクリプトに保存します。

  8. 集計スクリプトおよび様々な選択基準を使用して、状況に最適な集計ビューが選択されるまでプロセスを繰り返します。

ノート:

レポートやユーザー問合せの生成など、様々なデータベース取得状況に応じて集計を最適化するには、状況ごとに集計スクリプトを作成して、チューニング・プロセスを繰り返す必要があります。

使用状況に基づいたビューの選択

Essbaseでは、データベースに対する取得統計を取得できます。 その後、これらの統計を使用して、会社内の取得パターンにあわせて調整された集計を作成できます。 また、Essbaseでは、集計ビュー選択プロセスで使用状況情報が使用されるときに、データベースの分析に代替階層が含まれます。

定期的なレポート作成のためのデータベースの使用方法は、進行中のユーザー取得の場合とは異なる場合があります。 様々な取得状況を最適化するには、状況別使用パターンをトラッキングし、状況ごとに集計スクリプトを作成することを検討してください。

集計選択プロセスを開始する前に、問合せトラッキングがオンで、代表的な使用状況を取得するのに十分な長さであることを確認してください。 これを有効にするには、MaxL文alter databaseenable query_tracking文法とともに使用します。

問合せトラッキングは、問合せの使用状況情報をメモリーに保持します。 次のいずれかの操作を実行すると、問合せの使用方法の情報がクリアされます。

  • データのロードまたはクリア

  • 集計のマテリアライズまたはクリア

  • 問合せトラッキングの無効化

問合せトラッキングは、オフにするか、アプリケーションを停止するか、アウトラインを変更するまでオンのままです。

ユーザー定義ビューの選択の理解

デフォルトでは、Essbaseは内部メカニズムを使用して集計の作成方法を決定します。 ユーザー定義ビューの選択を使用すると、問合せデータに基づいてデフォルトのビュー選択およびビュー選択に影響を与えることができます。

管理者は、ビュー選択プロパティを保管階層に適用して、Essbaseによる集計の特定レベルの選択を制限できます。

ノート:

セカンダリ階層は、共有階層または属性階層のいずれかです。

表36-5 選択プロパティの表示

プロパティ 効果

デフォルト

プライマリ階層では、Essbaseはすべてのレベルを考慮します。 代替ロールアップが有効になっていないかぎり、セカンダリ階層では集計されません。

すべてのレベルを考慮

階層のすべてのレベルを集計の候補とみなします。 これはプライマリ階層のデフォルトですが、セカンダリ階層のデフォルトではありません。

集計しない

この階層に沿って集計しません。 Essbaseによって選択されたすべてのビューは、入力レベルにあります。

最下位レベルのみを考慮

セカンダリ階層にのみ適用されます。 Essbaseでは、この階層の最下位レベルのみが集計対象とみなされます。

最上位レベルのみを考慮

プライマリ階層にのみ適用されます。 この階層の最上位レベルのみが集計対象とみなされます。

中間レベルに集計しない

プライマリ階層に適用されます。 最上位レベルと最下位レベルのみを選択します。

ノート:

属性ディメンションの最下位レベルは、ゼロ・レベルの属性メンバーで構成されます。 セカンダリ階層が共有メンバーを使用して形成される場合、最下位レベルは共有メンバーの直接の親で構成されます。

Essbaseでは、選択したビュー選択プロパティを満たすビューのみが考慮されます。

デフォルト・プロパティを変更する前に、データベースの主要な問合せパターンをよく理解しておく必要があります。特定のビューを選択しないと、それらのビューへの問合せが遅くなり、他の問合せの速度が向上します。 同様に、セカンダリ階層ですべてのレベルを考慮を有効にすると、他の問合せを遅くしながら、その階層への問合せを高速化できます。

ビュー選択プロパティを定義するには、次のMaxL文を使用できます:

集計スクリプトの使用

集計スクリプトについて

各集計スクリプトは、データベースに対する特定の集計ビューの選択を表します。

集計スクリプトを使用すると、時間を節約できます。 たとえば、新しいデータ値をロードした後、別の集約ビューの選択を実行する必要はありません。 集計スクリプトに格納されている選択を使用して集計プロセスを高速化し、集計をマテリアライズできます。

集計スクリプトには柔軟性もあります。 これらを使用して、様々な取得状況に応じて最適化された集約ビュー選択を保存できます。たとえば、あるスクリプトを使用して月末のレポートで取得を最適化し、別のスクリプトを使用して日次取得の要件を満たすことができます。

データベースの集計スクリプトは、含まれている選択がデータベースに対して無効になると無効になります。 集計の作成時に集計スクリプトを作成します。 集計スクリプト・ファイルは手動で変更しないでください。変更すると、予期しない結果が生じる可能性があります。

集計スクリプトの作成

保存された集計スクリプトを使用すると、合計集計プロセスを分割できます。 集計の集計ビューが選択されている場合とは異なるタイミングで集計をマテリアライズできます。 集計スクリプトには、集計ビューの選択フェーズで導出された情報が含まれます。

集計スクリプトを作成するには、次のMaxL文を使用できます:

集計スクリプトは、.csc拡張子を持つテキスト・ファイルとしてデータベース・ディレクトリに格納され、アウトラインのディメンション・レベル構造が変更されていないかぎり有効です。

無効な集計スクリプト・ファイルの潜在的な混乱を避けるには、不要になった集計スクリプトを手動で削除します。

集計スクリプトの実行

集計スクリプトを実行すると、その中で指定された集計ビューがマテリアライズされます。 複数の集計スクリプトを作成できますが、一度にマテリアライズできる集計は1つのみです。

集計スクリプトを実行するには、execute aggregate build MaxL文を使用できます。

集積体のクリア

ディスクから集計を手動でクリアする必要がある場合があります。たとえば、ディスク領域をディスク集中型の操作に使用できるようにします。 集計をクリアすると、レベル0の値を除くすべてのデータがデータベースからクリアされ、他の用途のためにディスク領域が解放されます。 集計がクリアされた後、問合せはレベル0の値から取得した値を動的に計算します。

集計をクリアするには、alter database MaxL文を使用します。

集計の置換

既存の集計をクリアし、異なる集計ビューを選択してマテリアライズすることで、集計を置換できます。 新しい集約ビューの選択およびマテリアライズ・プロセスを実行することも、集約スクリプトを実行することもできます。 次の状況では、集計の置換を検討してください:

  • 集計ビューの選択を微調整してパフォーマンスを向上させます。 「集計ビュー選択の微調整」を参照してください。

  • レポートやユーザー問合せの生成など、様々なデータベース取得状況に応じて最適化された集計を作成します。

  • データベース・サイズの大幅な増加後に集計を最適化するため。 データベースのサイズが大きくなるにつれて、集計の効率が低下することがあります。 パフォーマンスの低下が顕著な場合、またはデータベース・サイズが元のサイズの約150%に増加した場合は、集計の置換を検討してください。

  • メモリーやディスク・リソースの可用性の変更など、新しいまたは異なる操作環境の集計を最適化するため。

ディメンションのレベル数が変更された後、またはアウトラインで1つ以上のディメンションが追加または削除された後に、集計および関連する集計スクリプトを置換する必要があります。

集約ストレージ勘定科目ディメンションでのタイム・バランス・メトリックおよびフロー・メトリック計算の実行

この項のトピックでは、集約ストレージ・データベースでタイム・バランスおよびフロー・メトリック計算を実行する方法を説明します。

集約ストレージ勘定科目ディメンションでのタイム・バランス・タグの使用

集約ストレージの勘定科目ディメンションにタイム・バランス・プロパティを設定して、時間ディメンションに沿った組込みの計算を提供できます。 これにより、メンバー式を使用してタイム・バランス機能を実現する時間とパフォーマンスのオーバーヘッドが削減されます。

保管済勘定科目または算式を使用する勘定科目ディメンション・メンバーでは、次のタイム・バランス・プロパティがサポートされています:

  • TB First、TB Last、TB Average

  • SKIP NONE, SKIP MISSING

人事管理アプリケーションのヘッド・カウントなどのストアド・メジャーについて考えてみます。 年次四半期-月階層内では、人数データは月レベルでロードされます。


この図は、ヘッド・カウントがTB LastおよびSkip Missing time-balanceプロパティでタグ付けされているアウトラインを示しています。

必要な年次または四半期の人数の値は、その月の合計ではなく、期間内の最後に記録された値である必要があります。

SKIPMISSINGを使用してヘッド・カウントにTB Lastのタグを付けることは、2005年の場合、その値がその月のヘッド・カウントの最後の空でない値であることを意味します。 Decに存在しないHeadcount値がある場合は、その値が返されます。それ以外の場合は、Nov値が検査され、存在しない場合は返されます。

式の請求メンバーにタイム・バランス・タグがある場合、式はレベル0の時間メンバーに対してのみ実行され、時間ディメンションはタイム・バランス・タグに従って集計されます。

タイム・バランス・タグは、時間ディメンションに沿った組込みの計算を提供します。 期間累計やローリング平均などの式を使用して他の時間ベースの計算を実行するには、TimeViewというディメンションを作成し、そのディメンションに基づいてすべての時間ベースの式を記述します。 これにより、他の時間ベースの計算を実行する機能を失うことなく、タイム・バランス計算機能を使用できます。

集約ストレージ勘定科目ディメンションでのフロー・タグの使用

Flowタグは、式を持つ勘定科目ディメンション・メンバーに割り当てることができます。

次の例では、フロー・メトリックで解決する問題について説明します。 12か月すべての販売および追加の数値があるとします。 集計を実行して、各月の期首インベントリを移入します。

表36-6 インベントリ計算

スペースのイメージは空のスレッド・セルに使用されます 売上高 追加 インベントリ
1月 5 1 50
2月 6 3 46
3月 4 2 43
4月 7 0 41
... ... ... ...

MDX式を期首インベントリ・メンバーで使用して、その値を計算します。 フロー・メトリックがない場合、各月の期首インベントリを取得するには、計算エンジンでMDX式を指数関数的に繰り返す必要があります。

Inventory = SUM(MemberRange(Jan:Time.CurrentMember), (Additions - Sales)) + Beg_Inventory

図の例を最適化するには、Inventoryメンバーに式(Addition - Sales)を割り当て、メンバーにFlowというタグを付けます。

代替階層の制限事項

集約ストレージ時間ディメンションで代替階層が使用されている場合は、勘定科目ディメンションでフロー・タグとTBタグを使用する際に次の制限が適用されます:

  1. 代替時間階層間の共有レベルはレベル0である必要があります。

  2. 代替時間階層間の共有レベルでのメンバーの順序は、すべての代替階層で同じである必要があります。

  3. 保管済メンバーの共有数は、前の兄弟の共有数を超えないようにする必要があります。 前の兄弟は、アウトラインの前の保管済メンバーが同じ世代であることを意味します。

    たとえば、次のYearディメンションを考えてみます。 April (3)の株式数がMarch (1)の株式数より多いため、代替階層は無効です。


    共有メンバーを含む代替階層を持つYearディメンションを示すアウトライン。

タイム・バランシングのタグ付きメジャーの集計

MDX 「集計」関数を使用して、タイム・バランス・タグでタグ付けされたメジャーを集計できます。

集約ストレージ・データベースでのタイム・バランス・メジャーに対する属性計算の影響

次の計算ロジックが適用されます

  1. 集約ストレージ・アウトラインには、1つ以上の属性ディメンションまたはリンク属性ディメンションを持つ時間ディメンションまたは日時ディメンションが含まれます。

  2. タイム・バランス・タグ付きメジャーに対して問合せを実行します。

前述のケースの両方がtrueの場合、MDX Aggregate()セマンティクスを使用してセルが評価されます。

たとえば、次のようなシナリオを考えてみます:

  • Yearは、日レベル階層を持つ日時ディメンションです。

  • Holidayは、Holiday_TRUEまたはHoliday_FALSEでタグ付けされた各日付を持つYearの属性ディメンションです。

  • 期首インベントリはTBFirstとしてタグ付けされています。

(Year, Holiday_TRUE, [Opening Inventory])の値は、次のMDXロジックに従って評価されます:

Aggregate( {Set of dates that are holidays in Year}, [Opening Inventory])