タプルを選択すると、アクティブなSmart ViewグリッドでのEssbase計算に重点を置くことができ、ブロック・ストレージ・キューブ内の特定のデータ・スライスにそのスコープが制限されます。
次の各項でタプルの計算について説明します:
計算スクリプトで@GRIDTUPLESを使用する構文については、FIX…ENDFIXを参照してください。
タプルを選択すると、アクティブなSmart ViewグリッドでのEssbase計算に重点を置くことができ、ブロック・ストレージ・キューブ内の特定のデータ・スライスにそのスコープが制限されます。
タプル選択は、ディメンション全体で非対称グリッドの計算を最適化するのに役立ち、超過計算が回避されます。
Essbaseの計算タプルは、MDX問合せで使用されるタプルとは異なります。計算パフォーマンスおよびキューブ・サイズは主に、キューブ内のブロック数によって決まります(特定のブロック・サイズの場合)。このため、計算タプルは疎メンバーの組合せに対してのみ指定されます。さらに、計算スクリプト実行を容易にするために、単一の疎ディメンションの複数メンバーを計算タプル指定に含めることができます。たとえば、("New York", "California", "Actual", "Cola")を計算タプルとして指定すると、次のセルの交差が計算されます。
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
次の対称グリッドについて検討します。このグリッドは、各製品に同じ市場とシナリオ(Actual)が示されているため、対称です。
次のグリッドは、Diet Cola製品の市場がCola製品の市場より少ないため、非対称です。
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に適用される次のタプル制限に気づく場合があります。
ただし、計算スクリプトでタプルを選択するとき、この要件は便宜上軽減されます。タプル式は自由に記述でき、(@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文の一部ではないためです。
タプルの選択は、タプルの明示的なリストを使用して選択するか、@GRIDTUPLES関数を使用して選択するかに関係なく、FIX…ENDFIX計算コマンドのコンテキストでのみ適用されます。FIX文の構文は、タプル選択を可能にするように拡張されました。
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
Smart ViewグリッドおよびEssbase計算スクリプトのFIX文を使用して、グリッドの視点(POV)に基づいて選択したメンバーのタプルを計算できます。あるいは、FIX文にタプルの組合せを明示的に入力すると、特定の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ワークシートを参照してください。