ASOキューブでの計算順序と解決順序
Essbase集約ストレージ(ASO)キューブの計算順序は、ブロック・ストレージ・キューブとは異なります。保管階層と属性ディメンションは連結され、その後、定義されている解決順序に基づいて動的階層が評価されます。
集約ストレージ・キューブの場合は、Essbaseで次の順序でデータが計算されます。
-
保管階層のメンバーと属性ディメンションの集約。メンバーとディメンションが集約される順序は、内部で最適化され、キューブ・アウトラインの性質と既存の集約に応じて変わります。集約は付加的であるため、Essbaseがディメンションとメンバーを集約する順序は結果に影響しません。
集約ストレージ・キューブに関する内部での集約順序は予測できないため、内在している丸め誤差も予測できません。これらの丸め誤差は、コンピュータ計算では予想される動作であり、データ値に関してはごくわずかです。
-
動的階層ディメンションのメンバーと式の計算。メンバーと式が評価される順序は、各メンバーまたはディメンションに設定できる解決順序のプロパティによって定義されます。計算順序が計算結果に影響する場合があります。
解決順序のプロパティ
解決順序の概念は、問合せ実行に適用されます。マルチディメンショナル問合せでセルが評価される場合、計算が解決される順序はあいまいな場合があります。あいまいさをなくすには、解決順序のプロパティを使用して、必要な計算の優先度を指定します。
ノート:
解決順序はメンバー・レベルまたはディメンション・レベルで解決順序のプロパティを設定することによって指定することをお薦めします。指定された解決順序を持たない、式のないメンバーは、そのディメンションの解決順序を継承します。指定された解決順序がない、式があるメンバーは、解決順序が0になります。
解決順序を変更するには、Essbase Webインタフェースでアウトライン・エディタを使用するか、Smart Viewを使用します。計算済メンバーの解決順序を指定するには、MDX問合せのWithセクションでsolve_orderパラメータを使用します。
解決順序のプロパティの値により、Essbaseで式が計算される優先度が決まります。指定された解決順序を持つメンバーに対する式は、低い解決順序から高い解決順序に計算されます。解決順には0から127までの数値を指定できます。デフォルトは0です。
メンバー・レベルまたはディメンション・レベルで解決順序を指定できます。Essbaseでは、次の情報を使用して計算の優先順位が決定されます。
-
メンバーの解決順序
-
ディメンションの解決順序(メンバーの解決順序が指定されていない、式のないメンバーは、そのディメンションの解決順序を継承します。メンバーの解決順序が指定されていない、式があるメンバーは、解決順序が0になります。)
複数のメンバーの解決順序が同じである場合、メンバーは、そのディメンションがアウトラインに出現するのと逆の順序で評価されます。アウトラインで後の方に出現するメンバーが優先されます。
同順位の場合の計算順序は、ブロック・ストレージ・キューブのMDX問合せで定義されている計算済メンバーとは異なります。
ノート:
メンバー式が別のメンバーの値に依存している場合、その式があるメンバーの解決順序は、それが依存しているメンバーより遅くなります。たとえば、ASOSamp.Basicアウトラインでは、Avg Units/TransactionはUnitsおよびTransactionsの値に依存しています。Avg Units/Transactionは、UnitsおよびTransactionsよりも高い解決順序を持つ必要があります。
解決順序のプロパティの使用例
次の例は、ASOSamp.Basicキューブに基づいています。問合せ結果のあいまいさをなくすために、この例では、解決順序のプロパティを使用して必要な計算の優先度を指定しています。
次に示すスプレッドシート問合せでは、今年の1月と前年の1月の売上ユニット数とトランザクション数のデータが取得されます。Varianceメンバーは、今年と前年の差異を示します。Avg Units/Transactionメンバーは、トランザクション当たりの売上ユニット数の比率を示します。
図37-5 2つの比率の差異を示すASOSamp.Basicキューブのスプレッドシート問合せの結果(C12)

次の図は、これらのメンバーのキューブ・アウトラインと、VarianceメンバーおよびAvg Units/Transactionメンバーに適用される式を示しています。
図37-6 Measures、Years、およびTimeディメンションが示されているASOSamp.Basicキューブ

トランザクション当たりの平均ユニット数の差異(サンプル・スプレッドシートのセルC12)を計算したとき、結果は2つの比率の差異または2つの差異の比率で表されます。結果は、EssbaseでVarianceに対する式とAvg Units/Transactionに対する式のどちらが優先されるかによって変わります。
解決順序プロパティの値は、アウトライン内のメンバーに関連付けられ、これによってEssbaseで式が評価される優先度が決まります。解決順序の設定が高いほど、メンバーが計算される順序が後になります。たとえば、解決順序が1の式は、解決順序が2のメンバーの前に解決されます。
この例では、Varianceメンバーの解決順序がAvg Units/Transactionメンバーより低い場合、Varianceメンバーに対する式が優先され、その結果は2つの比率の差異になります。これはASOSamp.Basicキューブの場合であり、Varianceメンバーの解決順序が10で、Avg Units/Transactionメンバーの解決順序が20であるため、このようになります。Varianceメンバーの方が解決順序が低いため、Varianceに対する式が優先されます。サンプル・スプレッドシートの問合せのセルC12の結果は、次の表に示されているように、2つの比率の差異になります。
表37-4 解決順序のプロパティを使用して2つの比率の差異を指定
メンバー | 解決順序 | 式 | VarianceとAvg Units/Transactionの交差の結果(セルC12) |
---|---|---|---|
Variance |
10 |
Curr Year - Prev Year |
今年の平均ユニット/トランザクション-前年の平均ユニット/トランザクション 0.94894382 (セルC6) - 0.954252111 (セルC9) = -0.005308291 (セルC12) |
Avg Units/Transaction |
20 |
ユニット/トランザクション |
かわりに、ASOSamp.Basicキューブを変更し、Avg Units/TransactionメンバーにVarianceメンバーよりも早い解決順序を指定すると、Avg Units/Transactionメンバーに対する式が優先され、次の表とサンプル・スプレッドシートに示されているように、結果は2つの差異の比率になります。
表37-5 解決順序のプロパティを使用して2つの差異の比率を指定
メンバー | 解決順序 | 式 | VarianceとAvg Units/Transactionの交差の結果(セルC12) |
---|---|---|---|
Variance |
20 |
Curr Year - Prev Year |
ユニットの差異(今年-前年)/トランザクションの差異 10585 (セルC10) / 11340 (セルC11) = 0.933421517 (セルC12) |
Avg Units/Transaction |
10 |
ユニット/トランザクション |
図37-7 2つの差異の比率を示すASOSamp.Basicキューブのスプレッドシート問合せの結果(C12)
