Om du väljer tuplar kan du fokusera Essbase-beräkningarna i det aktiva Smart View-rutnätet och begränsa deras omfattning till särskilda datautsnitt i blocklagringskuben.
I följande avsnitt beskrivs tupelberäkningar:
Mer information om syntaxen för att använda @GRIDTUPLES i ett beräkningsskript finns i FIX…ENDFIX.
Om du väljer tuplar kan du fokusera Essbase-beräkningarna i det aktiva Smart View-rutnätet och begränsa deras omfattning till särskilda datautsnitt i blocklagringskuben.
Tupelurval hjälper dig att optimera asymmetriska rutnätsberäkningar tvärs över olika dimensioner och undvika överberäkning.
Essbase-beräkningstupler skiljer sig från tupler som används i MDX-frågor. Beräkningsprestanda och kubstorlek drivs främst av antalet block i kuben (för en given blockstorlek). Därför anges beräkningstupler endast för glesa medlemskombinationer. För att underlätta användningen av beräkningsskript är det dessutom möjligt att inkludera flera medlemmar från en enda gles dimension i specifikationen för en beräkningstupel. Om du till exempel anger ("New York", "California", "Actual", "Cola") som beräkningstupel så beräknas följande cellsnitt:
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
Titta på följande symmetriska rutnät. Det är symmetriskt eftersom alla produkter har samma marknader och scenario (Actual) representerade i rutnätet.
Följande rutnät är asymmetriskt eftersom produkten Diet Cola har färre marknader i rutnätet än produkten Cola.
Standardomfattningen för beräkningen, när det finns fler än en dimension i en FIX-sats eller ett Smart View-rutnäts synvinkel, är att beräkna matrisgruppen (alla möjliga kombinationer) av medlemmarna i FIX-satsen eller rutnätet. Med andra ord är det här en synvinkelsdriven beräkning där produkt- och marknadskombinationer tas från rutnätet för beräkning av samtliga av dessa radmedlemskombinationer:
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"
Det här kan vara mer beräkningsaktivitet än du behöver. Om du vill beräkna endast de kombinationer som visas i rutnätet kan du ange vilka tupler som ska beräknas och begränsa beräkningen till ett mindre utsnitt. Tupelberäkning kan även förkorta beräkningstiden och minska kubstorleken.
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Florida"
En beräkningstupel är ett sätt att representera ett datautsnitt av medlemmar, från två eller flera glesa dimensioner, som ska användas i en beräkning för Essbase-blocklagring.
Exempel på giltiga beräkningstupler:
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
Om du skriver MDX-uttryck kanske du är medveten om följande tupelbegränsningar som gäller för MDX:
När du väljer tupler i beräkningsskript kringgås emellertid de här kraven för bekvämlighetens skull. Du kan skriva tupeluttryck helt fritt, och tuplerna får beskriva medlemslistor, som följande tupel gör: (@Children(East), Cola)
.
Ett enkelt sätt att välja tupler är att infoga dem explicit i ett beräkningsskript, som en lista i FIX-satsen.
Kom ihåg att formatet för en FIX-sats är följande:
FIX (fixMbrs) COMMANDS ; ENDFIX
I FIX-satsen nedan anges två tupler innan kommandoblocket börjar. Tuplerna omges av spetsparenteser { } som avgränsar en uppsättning, dvs. en samling tupler.
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
Ett annat sätt att välja tupler är kontextuellt, baserat på de medlemmar som finns i ett Smart View-rutnäts synvinkel vid exekveringen av beräkningen. Det gör du genom att ange funktionen @GRIDTUPLES som ett argument till FIX, i beräkningsskriptet.
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
Om du kör det här beräkningsskriptet från Smart View mot rutnätet nedanför så beräknas endast de kombinationer av produkter och marknader som visas. Till exempel beräknas inte "Diet Cola"->Massachusetts eftersom det inte visas explicit på rutnätet. Observera att alla scenarier (den tredje glesa dimensionen i den här exempelkuben) beräknas, trots att endast Actual visas på rutnätet. Det här beror på att dimensionen Scenario inte ingår i GRIDTUPLES-satsen i beräkningsskriptet.
Tupelurvalet, oavsett om det görs med explicita listor över tupler eller med funktionen @GRIDTUPLES, är tillämpligt endast i sammanhanget för beräkningskommandot FIX…ENDFIX. Syntaxen för FIX-satsen utökas för att möjliggöra tupelurval:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
Med ett Smart View-rutnät och en FIX-sats för Essbase-beräkningsskriptet kan du beräkna valda medlemstupler baserat på rutnätets synvinkel. Alternativt kan du uttryckligen skriva in tupelkombinationerna i FIX-satsen och ta bort beroendet av ett visst Smart View-rutnät för definition av beräkningsomfattningen.
Beräkning med valda tupler hjälper dig att arbeta effektivt med asymmetriska regioner i både beräkningsskript och Smart View-rutnät.
Titta på följande exempel:
Om du vill testa exemplen laddar du ned arbetsboksmallen CalcTuple_Tuple.xlsx
från sektionen Technical > Calc
i mappen Galleri i området Filer i webbgränssnittet för Essbase. Instruktioner finns i arbetsbladet README i arbetsboken.
Följande beräkningsskript demonstrerar standardberäkningsbeteendet för Essbase-blocklagring som äger rum om du inte väljer tupler och beräknar hela matrisprodukten för medlemmar i dimensionerna Product och Market från ett Smart View-rutnät.
Med hjälp av två ersättningsvariabler för exekvering som definierats i blocket SET RUNTIMESUBVARS begränsas beräkningen till de skärningspunkter för Product och Market som finns i rutnätet när beräkningen körs från Smart View.
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
Genom att använda funktionen @GRIDTUPLES för att välja tupeln för dimensionerna Product och Market beräknar det här beräkningsskriptet för Essbase-blocklagring tupler för endast dessa två dimensioner och begränsar sin omfattning till de medlemmar som finns i ett Smart View-rutnät vid tidpunkten när beräkningen körs från Smart View.
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
Genom fixering på endast glesa dimensioner som namnges i tupeln omfattar beräkningen ett mycket mindre antal block jämfört med en standardberäkning. Alla medlemmar från dimensioner som inte nämns i fixen (Year, Scenario) beräknas emellertid av det här beräkningsskriptet.
I det här beräkningsskriptet för Essbase-blocklagring används funktionen @GRIDTUPLES och en ersättningsvariabel vid exekvering för att beräkna endast valda tupler från rutnätet, baserat på de urval av glesa dimensioner som gjorts i RTSV-frågan.
Exekveringsersättningsvariabeln &DimSelections, som definieras i blocket SET RUNTIMESUBVARS, begränsar beräkningsomfattningen till endast kubens glesa dimensioner, och exkluderar scenariot. Funktionen @GRIDTUPLES som används i FIX-satsen anropar den här variabeln, vilket begränsar hur många skärningspunkter som beräknas.
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
Beräkningen omfattar ett ännu mindre antal block än föregående exempel eftersom tupeldefinitionen i det här fallet utökas till fler glesa dimensioner bortom Product -> Market.
Om du vill testa exemplen laddar du ned arbetsboksmallen CalcTuple_Tuple.xlsx
från sektionen Teknisk > Beräkna i mappen Galleri i området Filer i webbgränssnittet för Essbase. Instruktioner finns i arbetsbladet README i arbetsboken.