動的計算による計算順序の変更方法

動的計算では、バッチ計算のパフォーマンスが最適化され、Essbaseで値が計算される順序が変更されます。疎ディメンションが最初に計算されます。非対称データ・セットまたは2パス・メンバーで「動的計算」を使用する場合は、注意が必要です。

動的に計算されるデータ値を使用すると、Essbaseで値を計算する順序が変更され、キューブの管理方法に影響を与える場合があります。

動的計算の計算順

動的計算を使用する場合、Essbaseでは、疎ディメンションの値を最初に計算し、次に密を計算します。密値は、勘定科目、時間、時系列、その他の密ディメンション、および最後に属性の順序で計算されます。

Essbaseでは、データ値を動的に計算するときに、データベースのバッチ計算順序とは異なる順序でデータを計算します。

バッチ計算中は、Essbaseでは、次の順序でデータベースが計算されます。

  1. 勘定科目としてタグ付けされたディメンション

  2. 時間としてタグ付けされたディメンション

  3. その他の密ディメンション(データベース・アウトラインに表示されている順序)

  4. その他の疎ディメンション(データベース・アウトラインに表示されている順序)

  5. 2パス計算

ブロック・ストレージ・データベースの計算順序を参照してください。

動的に計算される値については、取得時に、Essbaseで次の順序でデータベースが計算されて、値が計算されます。

  1. 疎ディメンション

    • 時間としてタグ付けされたディメンションが疎で、データベース・アウトラインに時系列データが使用されている場合、Essbaseでは時間ディメンションに基づいて疎の計算が行われます。

    • それ以外の場合、Essbaseでは、通常バッチ計算に使用するディメンションに基づいて計算が行われます。

  2. 密次元

    1. 勘定科目としてタグ付けされたディメンション(密の場合)

    2. 時間としてタグ付けされたディメンション(密の場合)

    3. 時系列の計算

    4. 残りの密ディメンション

    5. 2パス計算

    6. 属性

データの取得で属性メンバーを使用する場合、計算順序の最後のステップは属性の総計です。属性計算では、問合せで指定された属性メンバーに一致するデータ・ブロックで、オンザフライの集約が実行されます。問合せに2パス計算メンバーが含まれる場合、属性計算では、すべての集約値が収集された後に2パス計算メンバー式が適用されます。この2パス計算では、実際のデータ・ブロックの値ではなく、属性計算からのデータ値を使用します。

問合せで属性メンバーを使用すると、Essbaseの動的計算でタイム・バランス・メンバーの値が無視されます。属性を使用しない取得では、タイム・バランス・メンバーの値が計算に適用されます。属性メンバーを使用する場合と使用しない場合の計算手順の違いによって、動的に計算される上位レベルの時間メンバーに対して異なる結果が生成されます。

属性を使用しない取得では、これらの動的に計算されるメンバーは最後のステップで計算されるため、タイム・バランスの機能が適切に適用されます。一方、属性を使用する取得では、属性の総計が、適用される最後のステップとなります。計算順序の違いによって、動的に計算される上位レベルの時間メンバーに対して2つの異なる予測可能な結果が生成されます。

2パス・メンバーの動的計算の計算順序

「動的計算」は、Essbaseが値を計算する順序を変更します。2パス・メンバーで「動的計算」を使用する場合は、注意が必要です。かわりに、解決順でハイブリッド・モードを使用することを検討してください。

Essbaseで、2パスとしてタグ付けされたメンバーのデータ値を動的に計算するときに(2パス計算を参照)、必要な計算結果が生成されるように、次の情報を考慮してください。

ノート:

ハイブリッド・モード・キューブでは2パス計算を使用しないでください。解決順のみを使用します。

複数の動的計算の密ディメンション・メンバーが2パスとしてタグ付けされている場合、Essbaseは、初回パスの動的計算を実行した後、2パス・メンバーを次の順序で計算されます。

  1. 勘定科目ディメンションの2パス・メンバー(存在する場合)

  2. 時間ディメンションの2パス・メンバー(存在する場合)

  3. 残りの密ディメンションの2パス・メンバー(アウトラインでのディメンションの表示順序)

たとえば、Sample.Basicデータベースで、次のように仮定します。

  • 密のMeasuresディメンション(勘定科目としてタグ付けされたディメンション)のMargin%は、動的計算および2パスとしてタグ付けされています。

  • 密のScenarioディメンションのVarianceは、動的計算および2パスとしてタグ付けされています。

Essbaseでは、勘定科目ディメンション・メンバーが最初に計算されます。そのため、Essbaseは、(Measuresディメンションの) Margin%を計算してから、(Scenarioディメンションの) Varianceを計算します。

Scenarioが疎ディメンションの場合、Essbaseでは、動的計算の通常の計算順序に従って、最初にVarianceが計算されます。次にEssbaseによってMargin%が計算されます。動的計算の計算順序を参照してください。

この計算順序では、Varianceに対する式ではなくMargin %に対する式を使用して、EssbaseでMargin % -> Varianceを計算する必要があるため、必要な結果が生成されません。Scenarioを密ディメンションにすることで、この問題を回避できます。Measuresディメンション(勘定科目ディメンション)が疎の場合、Essbaseでは引き続き最初にMargin%が計算されるため、この問題は発生しません。

非対称型データの計算順序

Essbase動的計算は、非対称データ・セットでの使用に適していない場合があります。ユース・ケースに対して、このトピックの例を確認します。

動的計算の計算順序はバッチ計算と異なるため、一部のキューブ・アウトラインでは、特定のメンバーを動的計算としてタグ付けすると、異なる計算結果が得られる場合があります。この違いは、Essbaseで非対称型データを動的に計算したときに発生します。

対称型データの計算では、計算されるディメンションに関係なく、同じ結果が生成されます。

次の対称型の例のデータ・セットを使用して、Qtr1 -> Profitを計算すると、Timeとしてタグ付けされたディメンションに沿って計算しても、Accountsとしてタグ付けされたディメンションに沿って計算しても、同じ結果が生成されます。Timeディメンションに沿って計算すると、Jan、FebおよびMarの値が加算されます。

50+100+150=300 

Accountsディメンションに沿って計算すると、Qtr1 -> SalesからQtr1 -> COGSが減算されます。

600–300=300 

表21-1対称型計算の例

時間->勘定科目 1月 2月 3月 Qtr1

セールス

100

200

300

600

COGS

50

100

150

300

利益(売上 –COGS)

50

100

150

300

非対称型データの計算では、ディメンションごとに異なる計算が行われます。

次の非対称型の例のデータ・セットを使用して、East -> Salesを計算すると、Marketディメンションに沿って計算した場合は正しい結果が生成されますが、Accountsディメンションに沿って計算した場合は間違った結果が生成されます。Marketディメンションに沿って計算すると、New York、FloridaおよびConnecticutの値が加算され、正しい結果が生成されます。

50 + 100 + 100 = 250

Accountsディメンションに沿って計算すると、East -> Priceの値とEast -> UnitsSoldの値が乗算され、間違った結果が生成されます。

15 * 50 = 750

表21-2非対称型計算の例

マーケット->アカウント New York フロリダ コネチカット East

販売ユニット

10

20

20

50

Price

5

5

5

15

売上(価格*販売数)

50

100

100

250

次のアウトラインでは、Eastが疎ディメンションで、Accountsが密ディメンションです。


このイメージでは、Eastが疎ディメンションで、Accountsは密ディメンションであるアウトラインを示しています。

EastとSalesが動的計算としてタグ付けされている場合、Essbaseでは、EastとSalesが動的計算としてタグ付けされていない場合とは異なる結果が計算されます。

EastとSalesが動的計算メンバーでない場合、Essbaseでは次のディメンションが計算されて、正しい結果が生成されます。

  1. 密のAccountsディメンション(New York、FloridaおよびConnecticutのUnitsSold、PriceおよびSalesの値を計算します)

  2. 疎のEastディメンション(EastのSales値を得るために、New York、FloridaおよびConnecticutのUnitsSold、PriceおよびSalesの計算値を集約します)

EastとSalesが動的計算メンバーの場合、Essbaseでは次のディメンションが計算されて、間違った結果が生成されます。

  1. 疎のEastディメンション(Eastの値を得るために、New York、FloridaおよびConnecticutのUnitsSold、PriceおよびSalesの値を集約します)

  2. East -> Salesの値(Salesの値を得るために、Eastデータ・ブロック内の集約値を取得し、この集約値を使用して式の計算を実行します)

この問題を回避して必要な結果を確実に得るために、Salesメンバーを動的計算としてタグ付けしないでください。

ハイブリッド・モードの解決順

Essbaseでの解決順は、動的計算がハイブリッド・モードで実行される順序を決定します。解決順は、カスタマイズすることも、デフォルトを受け入れることもできます。デフォルトは高可用性と依存性分析用に最適化されています。

解決順の概念は、動的メンバー式と計算スクリプトの動的依存性のいずれによって開始されたかにかかわらず、動的計算の実行に適用されます。セルがマルチディメンショナル問合せで評価される際、必要な計算の優先度を示す解決順が指定されている場合を除き、計算が解決される順序は不明瞭です。

ディメンションやメンバーの解決順を設定することも、Essbaseのデフォルトの解決順を使用することもできます。設定できる最小の解決順は0で、最大は127です。解決順の値が大きいと、メンバーが計算されるのは後になります。たとえば、解決順が1のメンバーは、解決順が2のメンバーより前に解決されます。

ハイブリッド・モードが有効化されている場合、デフォルトの解決順(計算順とも呼ばれる)は、ブロック・ストレージ・データベースの解決順とほぼ同じです。

ディメンション/メンバー・タイプ デフォルトの解決順の値
保管済メンバー 0
疎ディメンション・メンバー 10
密の勘定科目ディメンション・メンバー 30
密の時間ディメンション・メンバー 40
密の通常のディメンション・メンバー 50
属性ディメンション・メンバー 90
2パス動的メンバー 100
MDX計算済メンバーまたは名前付きセット(MDX Withで定義済み) 120

要約すると、ハイブリッド・モードのデフォルトの解決順では、アウトラインに表示される順序(上から下)で、保管済メンバーは動的計算メンバーより先に、疎ディメンションは密ディメンションより先に計算することが指定されています。

解決順が指定されていない動的メンバー(式がある場合もない場合も)は、2パスとタグ付けされている場合を除き、それぞれのディメンションの解決順を継承します。

2パス計算は、ブロック・ストレージ・モードで、正しい値を算出するために2回計算する必要がある式を持つメンバーに適用可能な設定です。

ノート:

ハイブリッド・モード・キューブでは2パス計算を使用しないでください。解決順のみを使用します。

ハイブリッド・モードでは2パスを適用できず、2パスとタグ付けされているメンバーは、属性の後で最後に計算されます。ハイブリッド・モードでは、デフォルトの解決順が要件に合ない場合は、2パスではなく、カスタムの解決順を実装する必要があります。

ハイブリッド・モードのデフォルトの解決順は、次のシナリオ向けに最適化されています:

  • 動的メンバー式で、アウトラインの順序が後のメンバーが参照される前方参照。ハイブリッド・モードには、アウトラインの順序に依存性はありません。

  • 等価式を使用した集約により多く一致するアウトラインの順序に基づいた子の値の集約。

  • 疎式内部の依存性としての動的密メンバー。ハイブリッド・モードでは、疎ディメンションが先に計算されるため、疎式が密動的メンバーを参照する場合、その参照は無視されます。これを変更するには、密ディメンションの解決順より値が大きい(後から計算される)疎ディメンションに解決順を割り当てます。

解決順のカスタマイズ

ハイブリッド・モードでの動的計算の動作を調整する必要がある場合は、ディメンションおよびメンバーの解決順をカスタマイズすると、アウトラインに大幅な変更を加えることなく目的を達成できます。

カスタムの解決順を実装すると、デフォルトの解決順がオーバーライドされます。メンバーまたはディメンションの解決順が等しい場合は、アウトラインに表示される順序(上から下)で競合が解決されます。

特定のメンバーの解決順をカスタマイズする場合を除き、一番上のディメンション・メンバーの解決順がディメンション内のすべての動的メンバーに適用されます。

解決順序を変更するには、Essbase Webインタフェースのアウトライン・エディタを使用するか、Smart Viewを使用してください(選択したPOVでの解決順序の変更を参照)。

設定できる最小の解決順は0で、最大は127です。解決順の値が大きいほど、メンバーが計算されるのは後になります。

解決順のユースケースを詳しく知るには、Essbaseのファイル・カタログにあるアプリケーション・ワークブックのギャラリで、テクニカル・セクションの解決順のテンプレートを参照してください。

非ハイブリッド・モードの解決順に関するノート

集約ストレージ・キューブでは、

  • 解決順はすべてのディメンションで0に設定されます。

  • 集約は、次の例外を除き、アウトラインの順序で実行されます:

    • 保管済階層のメンバーが最初に処理されます。
    • 動的階層のメンバーが次に処理されます。

ハイブリッドでないブロック・ストレージ・キューブでは、デフォルトの解決順は次のようになります

  • 密より疎が先

  • 時間より勘定科目が先

  • 属性が最後

ノート:

勘定科目メンバーの解決順が時間メンバーの解決順より大きくなるように手動で設定されている場合、勘定科目は動的時系列メンバーより後に評価されます。