ASOキューブでの計算順序および解決順序
Essbase集約ストレージ(ASO)キューブの計算順序は、ブロック・ストレージ・キューブの計算順序とは異なります。ストアド階層および属性ディメンションは連結され、動的階層は定義された解決順序に基づいて評価されます。
集約ストレージ・キューブでは、Essbaseは次の順序でデータを計算します。
-
保管階層のメンバーと属性ディメンションの集約。 メンバーとディメンションが集約される順序は内部的に最適化されます。また、キューブ・アウトラインの性質と既存の集約に応じて変更されます。集約は付加的であるため、Essbaseがディメンションとメンバーを集約する順序は結果に影響しません。
集約ストレージ・キューブの内部の集約順序は予測できないため、内在している丸め誤差も予測できません。これらの丸め誤差は、コンピュータ計算では予想される動作であり、データ値に関してはごくわずかである。
-
動的階層ディメンションのメンバーと式を計算します。 メンバーと式が評価される順序は、各メンバーまたはディメンションに設定できる解決順序のプロパティによって定義されます。計算順序が計算結果に影響する場合があります。
解決順序のプロパティ
解決順序の概念は、問合せ実行に適用されます。マルチディメンショナル問合せでセルが評価される場合、計算が解決される順序はあいまいな場合があります。あいまいさをなくすには、解決順序のプロパティを使用して、必要な計算の優先度を指定します。
ノート:
解決順序プロパティは、メンバー・レベルまたはディメンション・レベルで設定することによって指定することをお薦めします。指定された解決順序を持たない、式のないメンバーは、そのディメンションの解決順序を継承します。指定された解決順序がない、式があるメンバーは、解決順序が0になります。
解決順を変更するには、Essbase Webインタフェースのアウトライン・エディタを使用するか、Smart Viewを使用します。計算済メンバーの解決順序を指定するには、MDX問合せのWith Sectionで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メジャー、年および時間のディメンションを示す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) |
|---|---|---|---|
|
差分 |
10 |
現行年- 前年 |
今年の平均ユニット/トランザクション-前年の平均ユニット/トランザクション 0.94894382 (セルC6) - 0.954252111 (セルC9) = -0.005308291 (セルC12) |
|
平均ユニット/トランザクション |
20 |
ユニット/トランザクション |
かわりに、ASOSamp.Basicキューブを変更し、Avg Units/TransactionメンバーにVariantメンバーよりも低い解決順序を指定すると、Avg Units/Transactionメンバーに対する式が優先され、次の表とスプレッドシートに示されているように、結果は2つの差異の比率となります。
表37-5解決順序のプロパティを使用して2つの差異の比率を指定
| メンバー | 解決順 | 式 | VarianceとAvg Units/Transactionの交差の結果(セルC12) |
|---|---|---|---|
|
差分 |
20 |
現行年- 前年 |
ユニットの差異(今年-前年)/トランザクションの差異 10585 (セルC10) / 11340 (セルC11) = 0.933421517 (セルC12) |
|
平均ユニット/トランザクション |
10 |
ユニット/トランザクション |
図37-7 2つの差異の比率を示すASOsamp.Basicキューブのスプレッドシート問合せの結果(C12)
