Memorizzazione dati

L'intersezione di un membro da una dimensione Essbase con un membro da ciascuna delle altre dimensioni è un valore dati. Se si suddivide il database in modi diversi, è possibile ottenere prospettive dei dati in base alle relazioni con i membri. Per memorizzare e accedere ai dati, Essbase utilizza blocchi e un indice.

Nota

Queste informazioni si applicano solo ai cubi di memorizzazione a blocchi (BSO) e non ai cubi di memorizzazione di aggregazione (ASO).

Ogni valore di dati in un database Essbase viene memorizzato in una cella. A un particolare valore di dati viene fatto riferimento specificandone le coordinate lungo ogni dimensione standard.

Nota

Essbase non memorizza i dati per le dimensioni attributo. Essbase calcola in modo dinamico i dati delle dimensioni attributo quando un utente recupera i dati.

Considerare il database semplificato illustrato nella Figura 2-13. Questo database ha tre dimensioni: Account, Tempo e Scenario:

  • La dimensione Conti include quattro membri: Vendite, COGS, Margine e%.

  • La dimensione Tempo ha quattro membri trimestrali e Qtr1 ha tre membri mese

  • La dimensione Scenario dispone di due membri figlio: Budget per i valori budget ed Effettivo per i valori effettivi.

Figura 2-13 Un profilo del database multidimensionale


L'immagine mostra un profilo con tre dimensioni, come descritto nel testo che precede l'immagine.

Valori dei dati

L'intersezione di un membro da una dimensione Essbase con un membro da ciascuna delle altre dimensioni rappresenta un valore dati. Il valore dei dati è la slice più piccola.

L'esempio riportato di seguito presenta tre dimensioni (Conti, Tempo e Scenario); pertanto, le dimensioni e i valori dei dati nel database possono essere rappresentati come cubo.

Figura 2-14 Database tridimensionale


Questa immagine illustra un database tridimensionale come un cubo, come descritto nel testo che precede l'immagine.

Quando si specifica Sales, si specifica la porzione del database che contiene otto valori Sales, in cui Sales si intersecano con Actual e Budget.

Figura 2-15 Fetta di vendita del database


Questa immagine illustra una porzione di dati nel cubo, come descritto nel testo che precede l'immagine.

La suddivisione in sezioni di un database comporta la correzione di una o più dimensioni a un valore costante, consentendo al contempo la variazione delle altre dimensioni.

Quando si specifica Vendite effettive, si specifica la porzione del database che contiene quattro valori di Vendite, in cui si intersecano Effettive e Vendite.

Figura 2-16 Effettivo, Fetta di vendita del database


Questa immagine illustra una porzione di dati nel cubo, come descritto nel testo che precede l'immagine.

Un valore di dati viene memorizzato in una cella del database. Per fare riferimento a un valore di dati specifico in un database multidimensionale, è necessario specificarne il membro in ogni dimensione. Ad esempio, la sezione Vendite, Gen, Effettivo è costituita da un valore dati. Il valore dei dati può essere espresso anche utilizzando l'operatore cross-dimensionale (->), come Sales -> Actual -> Jan.

Figura 2-17 Vendite->Gen->Valore dati effettivi


Questa immagine illustra un valore di dati nel cubo, come descritto nel testo precedente l'immagine.

Blocchi di dati e sistema di indicizzazione

Essbase utilizza due tipi di strutture interne per memorizzare e accedere ai dati: i blocchi di dati e il sistema di indicizzazione.

Essbase crea un blocco dati per ogni combinazione univoca di membri di dimensioni standard sparse (a condizione che esista almeno un valore dati per la combinazione di membri di dimensioni sparse). Il blocco di dati rappresenta tutti i membri dimensione densi per la relativa combinazione di membri dimensione sparsa.

Essbase crea una voce di indice per ogni blocco di dati. L'indice rappresenta le combinazioni di membri di dimensioni standard sparse. Contiene una voce per ogni combinazione univoca di membri dimensione standard sparse per i quali esiste almeno un valore dati.

Ad esempio, nel profilo del database Sample.Basic illustrato nella Figura 2-18, Prodotto e mercato sono dimensioni sparse.

Figura 2-18 Dimensioni del prodotto e del mercato dal database Sample.Basic


Questa immagine mostra un profilo delle dimensioni Prodotto e Mercato.

Se esistono dati per Caffeine Free Cola a New York, Essbase crea un blocco dati e una voce di indice per la combinazione di membri sparsi di Caffeine Free Cola (100-30) -> New York. Se Caffeine Free Cola non viene venduta in Florida, Essbase non crea un blocco di dati o una voce di indice per la combinazione di membri sparsi: Caffeine Free Cola (100-30) -> Florida.

Il blocco di dati Caffeine Free Cola (100-30) -> New York rappresenta tutte le dimensioni Anno, Misure e Scenario per Caffeine Free Cola (100-30) -> New York.

Ogni valore di dati univoco può essere considerato esistente in una cella di un blocco dati. Quando Essbase cerca un valore di dati, utilizza l'indice per individuare il blocco di dati appropriato. Quindi, all'interno del blocco di dati, individua la cella contenente il valore dei dati. La voce indice fornisce un puntatore al blocco di dati. L'indice gestisce i dati con sparsità in modo efficiente perché include solo puntatori ai blocchi di dati esistenti.

La Figura 2-19 mostra una parte di un blocco di dati per il database Sample.Basic. Ogni dimensione del blocco rappresenta una dimensione densa nel database Sample.Basic: Tempo, Misure e Scenario. Esiste un blocco di dati per ogni combinazione univoca di membri delle dimensioni sparse Prodotto e Mercato (a condizione che esista almeno un valore di dati per la combinazione).

Figura 2-19 Parte di un blocco di dati per il database Sample.Basic


Questa immagine illustra un blocco dati parziale con tre dimensioni dense, come descritto nel testo che precede l'immagine.

Ogni blocco di dati è un array multidimensionale che contiene una posizione fissa e ordinata per ogni possibile combinazione di membri di dimensioni dense. L'accesso a una cella del blocco non comporta ricerche sequenziali o indicizzate. La ricerca è quasi istantanea, con conseguente recupero ottimale e velocità di calcolo.

Essbase ordina le celle in un blocco di dati in base all'ordine dei membri nelle dimensioni dense del profilo del database.

A (Dense)
   a1
   a2
B (Dense)
   b1
       b11
       b12
   b2
       b21
       b22
C (Dense)
   c1
   c2
   c3
D (Sparse)
   d1
   d2
       d21
       d22
E (Sparse)
   e1
   e2
   e3

Il blocco nella Figura 2-20 rappresenta le tre dimensioni dense dall'interno della combinazione dei membri sparsi d22 ed e3, dal profilo del database precedente. In Essbase, le combinazioni di membri sono indicate dall'operatore cross-dimensionale. Il simbolo per l'operatore cross-dimensionale è ->, quindi d22 -> e3 denota il blocco per d22 ed e3. L'intersezione di A, b21 e c3 è scritta come A -> b21 -> c3.

Figura 2-20 Blocco dati che rappresenta le dimensioni dense per d22 -> e3


Questa immagine illustra un blocco di dati che rappresenta dimensioni dense, come descritto nel testo che precede l'immagine.

Essbase crea un blocco di dati per ogni combinazione univoca dei membri delle dimensioni sparse D ed E (a condizione che esista almeno un valore di dati per la combinazione).

I blocchi di dati, ad esempio quello riportato nella Figura 2-20, possono includere celle che non contengono valori di dati. Viene creato un blocco di dati se nel blocco esiste almeno un valore di dati. Essbase comprime i blocchi di dati con valori mancanti sul disco, espandendo completamente ogni blocco man mano che porta il blocco in memoria. La compressione dei dati è facoltativa ma è abilitata per impostazione predefinita.

Selezionando attentamente le dimensioni standard dense e sparse, è possibile assicurarsi che i blocchi di dati non contengano molte celle vuote, riducendo al minimo i requisiti di storage su disco e migliorando le prestazioni. In Essbase, le celle vuote sono denominate dati #MISSING.

Slice: viste dati multiple

Un database Essbase supporta più viste di data set per gli utenti che devono analizzare le relazioni tra categorie di dati. La suddivisione del database in modi diversi offre prospettive diverse dei dati.

Ad esempio, nella Figura 2-21, la sezione relativa a Jan esamina tutti i valori di dati per i quali la dimensione Anno è fissata a gennaio.

Figura 2-21 Dati per gennaio


Questa immagine illustra una fetta di dati per il mese di gennaio.

La slice nella Figura 2-22 mostra i dati del mese di Feb:

Figura 2-22 Dati per febbraio


Questa immagine illustra una fetta di dati per il mese di febbraio.

La sezione nella Figura 2-23 mostra i dati relativi al margine di profitto:

Figura 2-23 Dati per margine di profitto


Questa immagine illustra una fetta di dati per il margine di profitto.