Cancellare i dati dai cubi di memorizzazione di aggregazione
È possibile cancellare tutti i dati da un cubo di memorizzazione di aggregazione (ASO) di Essbase oppure cancellare i dati da un'area specificata, conservando i dati presenti in altre aree. È possibile eseguire cancellazioni fisiche o logiche.
Per cancellare i dati, è necessario disporre della stessa autorizzazione dell'applicazione per il caricamento dei dati (Autorizzazione di aggiornamento del database o superiore).
È possibile utilizzare un job Cancella dati nell'interfaccia Web di Essbase oppure il comando CLI clear oppure l'istruzione MaxL alter database con la grammatica clear data in region. Esempi in questo argomento sono l'uso di MaxL.
Cancellazione dei dati da aree specifiche
Questo metodo è utile quando si desidera eliminare i dati volatili (ad esempio i dati corrispondenti all'ultimo mese), conservando i dati cronologici.
I metodi per cancellare i dati da un'area ASO includono cancellazioni fisiche e logiche.
-
Cancellazione fisica
Le celle di ingresso nell'area specifica vengono rimosse fisicamente dal cubo di memorizzazione di aggregazione, come illustrato di seguito.
Figura 37-2 Cancellazione fisica di una regione di dati

Se nel cubo sono presenti più slice di dati, l'operazione di cancellazione dell'area fisica unisce automaticamente tutte le slice di dati nella slice di dati principale. Dopo la cancellazione dei dati per l'area specificata, Essbase materializza tutte le viste di aggregazione presenti nella porzione di dati principale prima dell'esecuzione dell'operazione di cancellazione dell'area.
Il processo di cancellazione logica dei dati si conclude in un periodo di tempo proporzionale alle dimensioni dei dati d'input, non a quelle della cancellazione dei dati. Pertanto, è possibile utilizzare questo metodo solo quando si rimuovono grandi slice di dati.
Per cancellare fisicamente i dati, utilizzare l'istruzione MaxL alter database con la grammatica clear data in region e la parola chiave physical:
alter database appname.dbname clear data in region 'MDX set expression' physical;Per risparmiare tempo, è possibile utilizzare una lista separata da virgole di MDX set expressions per eseguire la cancellazione da più aree fisiche.
-
Cancellazione logica
Le celle di ingresso nell'area specificata vengono scritte in una nuova sezione dati con valori negativi di compensazione che determinino un valore uguale a zero per le celle da cancellare, come illustrato di seguito.
Figura 37-3 Cancellazione logica di un'area di dati

L'operazione di cancellazione logica dell'area unisce automaticamente solo la porzione di dati con zero valori nella porzione di dati principale; le altre sezioni di dati nel cubo non vengono unite. Dopo la cancellazione dei dati per l'area specificata, Essbase materializza le viste di aggregazione solo nella nuova sezione dati.
Il processo di cancellazione logica dei dati si conclude in un periodo di tempo proporzionale alle dimensioni dei dati da cancellare. Poiché vengono create celle di compensazione, questa opzione aumenta le dimensioni del cubo.
Per cancellare i dati in modo logico, utilizzare l'istruzione MaxL alter database con la grammatica clear data in region, ma senza la parola chiave physical:
alter database appname.dbname clear data in region 'MDX set expression';Le query nell'area cancellata in modo logico restituiscono valori pari a zero anziché valori #MISSING. Potrebbe essere necessario aggiornare le formule basate sui valori #MISSING per le celle vuote.
Per rimuovere le celle con valore zero, utilizzare l'istruzione MaxL alter database con la clausola merge che include la parola chiave remove_zero_cells:
alter database appname.dbname merge all data remove_zero_cells;Nota
Oracle sconsiglia di eseguire una seconda operazione logica di area chiara sulla stessa area, poiché la seconda operazione non cancella le celle di compensazione create nella prima operazione e non crea nuove celle di compensazione.
Per specificare l'area ASO da cancellare, attenersi alle linee guida riportate di seguito.
-
L'area deve essere simmetrica. Di seguito sono riportati alcuni esempi.
-
{(Jan, Budget)}è un'area simmetrica valida che cancella tutti i dati budget per gennaio. -
{(Jan, Forecast1),(Feb, Forecast2)}è un'area non valida perché è composta da due aree asimmetriche (Gen, Previsione1 e Feb, Previsione2).
-
-
I singoli membri di qualsiasi dimensione nella specifica dell'area devono essere membri memorizzati.
-
I membri della regione non possono essere:
-
Membri dinamici (membri con formule MDX implicite o esplicite)
-
Da dimensioni attributo
Se è necessario cancellare le celle in base a un attributo, utilizzare la funzione MDX Attributo.
-
-
I membri nell'area possono essere membri di livello superiore nelle gerarchie memorizzate, il che è un modo conveniente per specificare più membri di livello 0.
Ad esempio, è possibile specificare Qrt1, che equivale a specificare Jan, Feb e Mar (i figli di livello 0 di Qrt1):

Le due istruzioni MaxL seguenti producono gli stessi risultati:
alter database appname.dbname clear data in region '{Qtr1}';alter database appname.dbname clear data in region '{Jan, Feb, Mar}'; -
Solo per le cancellazioni fisiche, i membri dell'area possono essere membri di livello superiore in gerarchie alternative.
Ad esempio, è possibile specificare High End Merchandise, che equivale a specificare Flat Panel, HDTV, Digital Recorders e Notebooks (i figli condivisi di livello 0 di High End Merchandise):

Le due istruzioni MaxL seguenti producono gli stessi risultati:
alter database appname.dbname clear data in region '{High End Merchandise}';alter database appname.dbname clear data in region '{[Flat Panel],[HDTV],[Digital Recorders],[Notebooks]}';Per specificare i membri in gerarchie alternative durante la cancellazione logica dei dati, utilizzare la funzione MDX Discendenti.
Nota
Quando l'area contiene membri di livello superiore provenienti da gerarchie alternative, è possibile che si verifichi una diminuzione delle prestazioni. In questo caso, si consiglia di utilizzare solo i membri di livello 0.
-
L'espressione del set MDX deve essere racchiusa tra apici.
Ad esempio, per cancellare tutti i dati di gennaio per gli scenari Previsione1 e Previsione2, utilizzare questa istruzione:
alter database ASOSamp.Basic clear data in region 'CrossJoin({Jan},{Forecast1, Forecast2})';Durante l'operazione di cancellazione dell'area, non è possibile eseguire operazioni che aggiornano il cubo (ad esempio il caricamento di dati, l'unione di sezioni di dati o la cancellazione di dati da un'altra area) né esportare dati. È possibile eseguire query sul cubo, ma i risultati della query si basano sul set di dati prima dell'operazione di cancellazione dell'area.
La clausola Cancella dati nell'area non può cancellare i dati dall'intero cubo.
Cancellazione di tutti i dati
La cancellazione di tutti i dati da un cubo di memorizzazione di aggregazione è uguale a quella di un cubo di memorizzazione a blocchi. Per cancellare l'intero cubo, utilizzare l'istruzione MaxL alter database con la parola chiave reset:
alter database appname.dbname reset;