選択したタプルの計算

タプルを選択すると、アクティブなSmart ViewグリッドでのEssbase計算に重点を置くことができ、ブロック・ストレージ・キューブ内の特定のデータ・スライスにそのスコープが制限されます。

次の各項でタプルの計算について説明します:

計算スクリプトで@GRIDTUPLESを使用する構文については、FIX…ENDFIXを参照してください。

タプル計算のユースケース

タプルを選択すると、アクティブなSmart ViewグリッドでのEssbase計算に重点を置くことができ、ブロック・ストレージ・キューブ内の特定のデータ・スライスにそのスコープが制限されます。

タプル選択は、ディメンション全体で非対称グリッドの計算を最適化するのに役立ち、超過計算が回避されます。

Essbaseの計算タプルは、MDX問合せで使用されるタプルとは異なります。計算パフォーマンスおよびキューブ・サイズは主に、キューブ内のブロック数によって決まります(特定のブロック・サイズの場合)。このため、計算タプルは疎メンバーの組合せに対してのみ指定されます。さらに、計算スクリプト実行を容易にするために、単一の疎ディメンションの複数メンバーを計算タプル指定に含めることができます。たとえば、("New York", "California", "Actual", "Cola")を計算タプルとして指定すると、次のセルの交差が計算されます。

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

次の対称グリッドについて検討します。このグリッドは、各製品に同じ市場とシナリオ(Actual)が示されているため、対称です。

5つのCola市場および同じ5つのDiet Cola市場に対してActual、Janの値がある対称グリッド

次のグリッドは、Diet Cola製品の市場がCola製品の市場より少ないため、非対称です。

5つのCola市場および2つのみのDiet Cola市場に対してActual、Janの値がある非対称グリッド

FIX文またはSmart Viewグリッドの視点(POV)に複数のディメンションがある場合、デフォルトの計算スコープでは、FIXまたはグリッドのメンバーのクロス積(可能なすべての組合せ)が計算されます。つまり、製品と市場の組合せがグリッドから取得されるPOV駆動の計算では、行とメンバーのすべての組合せが計算されます。

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"

これは、必要より多くの計算アクティビティとなる場合があります。グリッドに表示された組合せのみを計算する場合は、計算するタプルを指定して、より小さいスライスに計算を制限できます。タプルを計算することで、計算時間やキューブ・サイズも低減できます。

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"

タプルベースの計算の理解

計算タプルは、Essbaseブロック・ストレージの計算で使用される、2つ以上の疎ディメンションのメンバーのデータ・スライスを表す手段の1つです。

有効な計算タプルの例:

  • ("Diet Cola", "New York")
  • ("Diet Cola", "Cola", Florida)
  • (Cola, "New Hampshire")

MDX式を記述している場合は、MDXに適用される次のタプル制限に気づく場合があります。

  • MDXタプルには、各ディメンションから単一のメンバーのみを含めることができます
  • MDXセットのすべてのタプルは、同じディメンションを同じ順序で表す必要があります

ただし、計算スクリプトでタプルを選択するとき、この要件は便宜上軽減されます。タプル式は自由に記述でき、(@Children(East), Cola)のように、タプルにメンバー・リストを記述できます。

視点計算のためのタプルの選択

タプルを選択する簡単な方法は、FIX文内のリストとして、計算スクリプトに明示的に挿入することです。

FIX文の書式は、次のとおりです。

FIX (fixMbrs)
COMMANDS ;
ENDFIX

次のFIX文では、コマンド・ブロックが始まる前に2つのタプルが指定されています。タプルは、タプルの集合であるセットを区切る中カッコ{ }で囲まれています。

FIX({
  (@Children(East), Cola),
  ("New York", Florida, "Diet Cola")
  })
Sales (Sales = Sales + 10;);
ENDFIX

タプルを選択するもう1つの方法は、計算実行時にSmart ViewグリッドPOVに存在するメンバーに基づいて状況に依存して決定する方法です。そのためには、計算スクリプトで@GRIDTUPLES関数をFIXの引数として指定します。

FIX ({@GRIDTUPLES(Product, Market)})
   Sales (Sales = Sales + 10;);
ENDFIX

次に記載されているグリッドに対してSmart Viewからこの計算スクリプトを実行すると、表示されている商品と市場の組合せのみが計算されます。たとえば、Diet ColaとMassachusettsの組合せはグリッドに明示的に表示されていないため計算されません。グリッドにActualのみが表示されていても、すべてのシナリオ(このサンプル・キューブでは3番目の疎ディメンション)が計算されることに注意してください。これは、Scenarioディメンションが計算スクリプトのGRIDTUPLES文の一部ではないためです。

5つのCola市場および2つのみのDiet Cola市場に対してActual、Janの値がある非対称グリッド

タプルの選択は、タプルの明示的なリストを使用して選択するか、@GRIDTUPLES関数を使用して選択するかに関係なく、FIX…ENDFIX計算コマンドのコンテキストでのみ適用されます。FIX文の構文は、タプル選択を可能にするように拡張されました。

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - タプルのカンマ区切りのセット。
  • dimensionList - アクティブなSmart Viewグリッドのメンバーを使用して計算領域を定義する、少なくとも2つの疎ディメンション。(計算スクリプトでは、タプルを定義する際に疎ディメンションのみを使用できます。)
  • fixMbrs - メンバーまたはメンバーのリスト。

計算スコープを削減するためのタプル選択の例

Smart ViewグリッドおよびEssbase計算スクリプトのFIX文を使用して、グリッドの視点(POV)に基づいて選択したメンバーのタプルを計算できます。あるいは、FIX文にタプルの組合せを明示的に入力すると、特定のSmart Viewグリッドに依存せずに計算スコープを定義できます。

選択したタプルを計算することによって、計算スクリプトとSmart Viewグリッドの両方で非対称のリージョンを効率的に操作できます。

次の例を検討してください:

  • タプル選択なし - 現在のSmart Viewグリッドの視点(POV)に基づいてデフォルトの方法で計算します。計算は特定のタプルに制限されません。
  • 指定された疎ディメンションの選択 - 計算スクリプトに指定された2つ以上の疎ディメンションから計算します。計算は、Smart Viewグリッドに存在するタプル・ディメンションのメンバーに制限されます。
  • コンテキスト疎ディメンションの選択 -実行時に選択した疎ディメンションのタプルを計算します。計算は、Smart Viewグリッドに存在するタプル・ディメンションのメンバーに制限されます。

例を試すには、Essbase Webインタフェース「ファイル」領域にある「ギャラリ」フォルダの「テクニカル」→「計算」セクションからCalcTuple_Tuple.xlsxワークブック・テンプレートをダウンロードします。手順については、ワークブックのREADMEワークシートを参照してください。

タプル選択なし

タプルを選択しない場合に行われるデフォルトのEssbaseブロック・ストレージの計算動作を説明するために、次の計算スクリプトでは、Smart ViewグリッドからProductおよびMarketディメンション・メンバーのクロス積全体を計算します。

SET RUNTIMESUBVARSブロックで定義された2つのランタイム置換変数(RTSV)を使用すると、Smart Viewから計算が実行される際、計算は、グリッドに表示されているProductおよびMarketの視点に制限されます。

SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
   Marketing = Marketing +1;
);
ENDFIX

指定された疎ディメンションの選択

@GRIDTUPLES関数を使用してProductおよびMarketディメンションのタプルを選択すると、このEssbaseブロック・ストレージの計算スクリプトでは、これら2つのディメンションのみのタプルを計算し、Smart Viewから計算が実行された時点でSmart Viewグリッドに存在するメンバーにスコープを制限します。

FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
   Marketing = Marketing + 1;
);
ENDFIX

タプルで指定された疎ディメンションのみを固定することで、計算には、デフォルト計算よりはるかに少ないブロック数が含まれることになります。ただし、固定対象でないディメンションのメンバー(Year、Scenario)はすべて、この計算スクリプトによって計算されます。

コンテキスト疎ディメンションの選択

@GRIDTUPLES関数およびランタイム代替変数を使用して、このEssbaseブロック・ストレージの計算スクリプトは、RTSVプロンプトの疎ディメンション選択項目に基づいて、グリッドから選択されたタプルのみを計算します。

SET RUNTIMESUBVARSブロックに定義されているランタイム代替変数&DimSelectionsによって、計算スコープがキューブの疎ディメンションのみ(シナリオを除く)に制限されます。FIX文で使用される@GRIDTUPLES関数がこの変数をコールして、計算する交差の数を制限します。

SET RUNTIMESUBVARS
            {
            DimSelections = "Version", "Site", "Entity", "Product", "Market"
            <RTSV_HINT><svLaunch>
            <description>List two or more sparse dimensions used for forming calculation tuples:</description>
            <type>string</type>
            </svLaunch></RTSV_HINT>;
            };
            FIX (
            {@GRIDTUPLES(&DimSelections)}
            )
            Marketing(
            Marketing = Marketing + 1;
            );
            ENDFIX
        

計算には前述の例よりさらに少ないブロック数が含まれます。この場合はタプル定義がProductとMarketの組合せを超えた疎ディメンションに拡張されているためです。

例を試すには、Essbase Webインタフェース「ファイル」領域にある「ギャラリ」フォルダの「テクニカル」→「計算」セクションからCalcTuple_Tuple.xlsxワークブック・テンプレートをダウンロードします。手順については、ワークブックのREADMEワークシートを参照してください。