Sviluppa formule nei schemi di memorizzazione di aggregazione
Le formule calcolano le relazioni tra i membri in un profilo Essbase. Le formule di memorizzazione di aggregazione (ASO, Aggregate Storage) sono diverse dalle formule di memorizzazione a blocchi. Le formule di memorizzazione di aggregazione (ASO) vengono scritte in MDX come espressioni di valori numerici e applicate al profilo del cubo, in cui vengono calcolate dinamicamente in base al recupero dei dati.
Differenze tra formule ASO e BSO
Se si conoscono le formule nei profili dello storage a blocchi (BSO), tenere presenti le differenze con le formule nello storage di aggregazione (ASO).
-
Essbase fornisce un linguaggio di calcolo nativo per scrivere formule nei profili di memorizzazione a blocchi. Per scrivere formule per i profili di memorizzazione di aggregazione, utilizzare la lingua MDX (Espressioni multidimensionali).
-
Applicare le formule direttamente ai membri nella struttura. Per i cubi di memorizzazione a blocchi, le formule possono essere inserite in uno script di calcolo. Per i cubi di memorizzazione di aggregazione, non è possibile inserire formule in uno script di calcolo.
Calcolo formula per cubi ASO
Essbase calcola le formule nei profili di memorizzazione di aggregazione solo quando vengono recuperati i dati. L'ordine di calcolo può influire sui risultati del calcolo. Ogni volta che si utilizzano formule MDX su più dimensioni in un profilo di memorizzazione di aggregazione, è buona norma impostare l'ordine di risoluzione per ogni membro o dimensione. Vedere Ordine di calcolo e ordine di soluzione nei cubi ASO.
Nota
Quando si progetta un calcolo di memorizzazione di aggregazione, considerare che i membri di memorizzazione di aggregazione con formule MDX vengono calcolati in modo dinamico. I membri calcolati dinamicamente hanno il valore #MISSING finché non vengono interrogati.
Usa formule MDX
Una formula MDX deve essere sempre un'espressione di valore numerico MDX. In MDX, un'espressione valore numerico è qualsiasi combinazione di funzioni, operatori e nomi membro che esegue una delle seguenti azioni:
-
Calcola un valore
-
Test per una condizione
-
Esegue un'operazione matematica
Un'espressione valore numerico è diversa da un'espressione set. Un'espressione set viene utilizzata sugli assi di query e descrive le combinazioni di membri e membri. Un'espressione di valore numerico specifica un valore.
Un'espressione di valore numerico viene utilizzata nelle query per creare membri calcolati, ovvero membri logici creati a scopo analitico nella sezione CON della query, ma che non esistono nel profilo.
La query riportata di seguito definisce un membro calcolato e utilizza un'espressione valore numerico per fornire un valore.
WITH MEMBER
[Measures].[Prod Count]
AS
'Count (
Crossjoin (
{[Units]},
{[Products].children}
)
)', SOLVE_ORDER=1
SELECT
{[Geography].children}
ON COLUMNS,
{
Crossjoin (
{[Units]},
{[Products].children}
),
([Measures].[Prod Count], [Products])
}
ON ROWS
FROM
ASOsamp.SampleNella query di esempio, la clausola WITH definisce un membro calcolato, Conteggio prodotti, nella dimensione Misure, come indicato di seguito.
WITH MEMBER
[Measures].[Prod Count]L'espressione valore numerico segue la clausola WITH ed è racchiusa tra virgolette singole. Nella query di esempio, l'espressione del valore numerico viene specificata come segue:
'Count (
Crossjoin (
{[Units]},
{[Products].children}
)
)'La proprietà SOLVE_ORDER specifica l'ordine in cui vengono valutati i membri e le formule. Vedere Ordine di calcolo e ordine di soluzione nei cubi ASO.
Nota
Per una spiegazione delle regole di sintassi utilizzate per creare l'espressione del valore numerico nell'esempio, vedere la documentazione relativa alle funzioni Conteggio, CrossJoin e Figli.
Un'espressione di valore numerico può essere utilizzata anche come formula MDX per calcolare il valore di un membro profilo esistente.
Pertanto, anziché creare l'interrogazione di esempio, è possibile creare un membro del profilo nella dimensione Misure denominata Conteggio prodotti che viene calcolato nel profilo nello stesso modo in cui è stato calcolato il conteggio ipotetico dei prodotti nella query di esempio.
Per creare un membro calcolato con una formula:
-
Creare un membro.
-
Allegare una formula MDX al membro.
Supponendo di aver creato il membro Conteggio prodotti di esempio, si utilizzerà la formula seguente, che è l'equivalente dell'espressione valore numerico utilizzata per creare il membro calcolato nella query di esempio:
Count(Crossjoin ( {[Units]}, {[Products].children})) -
Verificare la formula verificando il profilo.
Quando si recuperano i dati dal cubo di memorizzazione di aggregazione, la formula viene utilizzata per calcolare il valore del membro.
È possibile utilizzare variabili di sostituzione all'interno delle formule. Ad esempio, è possibile definire una variabile di sostituzione denominata "EstimatedPercent" e fornire percentuali diverse come valori delle variabili di sostituzione. Vedere Implementare variabili per la modifica delle informazioni.
Prima di applicare formule ai membri nella struttura, è possibile scrivere query MDX contenenti membri calcolati. Quando è possibile scrivere una query MDX che restituisce i risultati dei membri calcolati desiderati, è possibile applicare la logica dell'espressione valore numerico a un membro del profilo e convalidare ed eseguire il test dell'espressione. Vedere Scrivi query MDX.