Selezionando le tuple, è possibile concentrare i calcoli Essbase nella griglia Smart View attiva, limitandone l'ambito a sezioni specifiche di dati nel cubo di memorizzazione a blocchi.
Nelle sezioni seguenti viene descritto il calcolo delle tuple:
Per la sintassi relativa all'utilizzo di @GRIDTUPLES in uno script di calcolo, vedere FIX…ENDFIX.
Selezionando le tuple, è possibile concentrare i calcoli Essbase nella griglia Smart View attiva, limitandone l'ambito a sezioni specifiche di dati nel cubo di memorizzazione a blocchi.
La selezione delle tuple facilita l'ottimizzazione dei calcoli delle griglie asimmetriche tra le dimensioni ed evita i calcoli in eccesso.
Le tuple di calcolo Essbase sono diverse dalle tuple utilizzate nelle query MDX. Le prestazioni di calcolo e le dimensioni del cubo si basano principalmente sul numero dei blocchi nel cubo (data una dimensione blocco specifica). Per questo motivo le tuple di calcolo vengono specificate solo per le combinazioni di membri sparsi. Inoltre, per semplificare la creazione degli script di calcolo, nella specifica di una tupla di calcolo è possibile includere più membri da una singola dimensione sparsa. Ad esempio, se si specifica ("New York", "California", "Actual", "Cola") come tupla di calcolo, verranno calcolate le intersezioni di cella seguenti:
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
Esaminare la griglia simmetrica riportata di seguito. Si tratta di una griglia simmetrica perché per ogni prodotto sono rappresentati gli stessi mercati e lo stesso scenario (Actual).
La griglia riportata di seguito è invece asimmetrica, in quanto per il prodotto Diet Cola sono rappresentati meno mercati rispetto al prodotto Cola.
L'ambito di calcolo predefinito, quando sono presenti più dimensioni in un'istruzione FIX o nel punto di vista (POV) di una griglia Smart View, prevede il calcolo del prodotto matriciale (tutte le combinazioni possibili) dei membri dell'istruzione FIX o della griglia. In altre parole, un calcolo basato su POV, in cui le combinazioni di prodotto e mercato vengono acquisite dalla griglia, calcola tutte le combinazioni riga-membro seguenti:
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"
L'attività di calcolo effettiva potrebbe essere superiore a quella realmente necessaria. Se si desidera calcolare solo le combinazioni mostrate nella griglia, è possibile specificare le tuple da calcolare e limitare il calcolo a una sezione più piccola. Il calcolo delle tuple può inoltre comportare una riduzione del tempo di calcolo e della dimensione del cubo.
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Florida"
Con il termine tupla di calcolo si indicano le modalità di rappresentazione di una sezione dati di membri, acquisita da due o più dimensioni sparse, da utilizzare in un calcolo di memorizzazione a blocchi Essbase.
Esempi di tuple di calcolo valide:
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
Durante la scrittura delle espressioni, è necessario tenere presenti le limitazioni relative alle tuple riportate di seguito applicate al linguaggio MDX.
Quando tuttavia si selezionano le tuple negli script di calcolo, questi requisiti sono meno rigorosi. È possibile scrivere liberamente espressioni di tuple e le tuple possono descrivere liste di membri, come nel caso della tupla seguente: (@Children(East), Cola)
.
Un modo semplice per selezionare le tuple consiste nell'inserirle esplicitamente in uno script di calcolo sotto forma di lista all'interno dell'istruzione FIX.
Tenere presente che il formato dell'istruzione FIX deve essere simile al seguente:
FIX (fixMbrs) COMMANDS ; ENDFIX
Nell'istruzione FIX riportata di seguito vengono specificate due tuple prima del blocco dei comandi. Le tuple sono racchiuse tra parentesi graffe { } che delimitano un set, ovvero una raccolta di tuple.
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
Un altro modo per selezionare le tuple è basato sul contesto, ovvero dipende dai membri presenti nel punto di vista di una griglia di Smart View nel runtime di calcolo. Questo tipo di selezione prevede di fornire la funzione @GRIDTUPLES come argomento dell'istruzione FIX nello script di calcolo.
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
Se si esegue questo script di calcolo da Smart View sulla griglia riportata di seguito, verranno calcolate solo le combinazioni di prodotti e mercati visualizzate. "Diet Cola"->Massachusetts, ad esempio, non verrà calcolata in quanto non mostrata in modo esplicito nella griglia. Tenere presente che verranno calcolati tutti gli scenari (la terza dimensione sparsa in questo cubo di esempio), sebbene nella griglia venga mostrato solo Actual. Questo perché la dimensione Scenario non fa parte dell'istruzione GRIDTUPLES nello script di calcolo.
La selezione delle tuple, sia essa effettuata mediante liste esplicite o mediante la funzione @GRIDTUPLES, si applica solo nel contesto del comando di calcolo FIX…ENDFIX. La sintassi dell'istruzione FIX viene espansa per abilitare la selezione delle tuple:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
Utilizzando una griglia di Smart View e un'istruzione FIX di uno script di calcolo Essbase è possibile calcolare le tuple membro selezionate in base al punto di vista (POV) della griglia. In alternativa, è possibile digitare in modo esplicito le combinazioni di tuple nell'istruzione FIX, rimuovendo la dipendenza da una griglia di Smart View particolare, per definire l'ambito di calcolo.
Il calcolo delle tuple selezionate facilita l'utilizzo efficiente delle aree asimmetriche sia negli script di calcolo che nelle griglie di Smart View.
Esaminare gli esempi riportati di seguito.
Per provare questi esempi, scaricare il modello della cartella di lavoro CalcTuple_Tuple.xlsx
dalla sezione Technical > Calc
della cartella gallery nell'area File dell'interfaccia Web di Essbase. Per le necessarie istruzioni, fare riferimento al foglio di lavoro README nella cartella di lavoro.
Come dimostrazione del funzionamento predefinito del calcolo della memorizzazione a blocchi di Essbase che si verifica quando non si selezionano tuple, lo script di calcolo riportato di seguito calcola l'intero prodotto matriciale dei membri delle dimensioni Product e Market da una griglia di Smart View.
Mediante due variabili di sostituzione in runtime (RTSV) definite nel blocco SET RUNTIMESUBVARS, il calcolo viene limitato a qualunque punto di vista Product e Market presente nella griglia al momento dell'esecuzione del calcolo da 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
Utilizzando la funzione @GRIDTUPLES per selezionare la tupla delle dimensioni Product e Market, questo script di calcolo della memorizzazione a blocchi di Essbase calcola le tuple solo per le due dimensioni, limitando l'ambito ai membri presenti in una griglia di Smart View al momento dell'esecuzione del calcolo da Smart View.
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
Intervenendo solo sulle dimensioni sparse indicate nella tupla, il calcolo interessa un numero di blocchi molto più piccolo rispetto al calcolo predefinito. Tutti i membri delle dimensioni non indicate nell'istruzione FIX (Year, Scenario) vengono tuttavia calcolati da questo script di calcolo.
Utilizzando la funzione @GRIDTUPLES e una variabile di sostituzione in runtime, questo script di calcolo della memorizzazione a blocchi Essbase calcola solo le tuple selezionate nella griglia, in base alle selezioni delle dimensioni sparse nel prompt RTSV.
La variabile di sostituzione in runtime &DimSelections, definita nel blocco SET RUNTIMESUBVARS, limita l'ambito del calcolo alle sole dimensioni sparse del cubo, escludendo Scenario. La funzione @GRIDTUPLES utilizzata nell'istruzione FIX chiama questa variabile, limitando la quantità di intersezioni calcolate.
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
Il calcolo include un numero di blocchi ancora più piccolo rispetto all'esempio precedente, poiché in questo caso la definizione della tupla si estende a più dimensioni sparse oltre Prodotto -> Market.
Per provare questi esempi, scaricare il modello di cartella di lavoro CalcTuple_Tuple.xlsx
dalla sezione Tecnico > Calcolo della cartella Galleria nell'area File dell'interfaccia Web di Essbase. Per le necessarie istruzioni, fare riferimento al foglio di lavoro README nella cartella di lavoro.