L'ottimizzazione dei cubi BSO consente di ridurre le dimensioni del database e prevede i seguenti processi:
Never per i membri con tipo dati smartlist, data, testo e percentuale.Esecuzione di una ristrutturazione esplicita dei cubi
In Planning è possibile eseguire una ristrutturazione esplicita dei cubi manualmente o tramite un job. È inoltre possibile ristrutturare i cubi utilizzando il comando restructureCube di EPM Automate o l'API REST di Ristrutturazione del cubo.
Note:
Per ristrutturare il cubo utilizzando Calculation Manager, procedere come segue.
Analisi dei dati in un cubo
Per iniziare, generare il report di analisi blocco Essbase. Fare riferimento alle fonti di informazione seguenti.
Note:
Il cubo viene impostato sulla modalità di sola lettura quando i dati del cubo vengono esportati nel file di esportazione utilizzato come origine per la generazione del report di analisi blocco Essbase. A seconda delle dimensioni del cubo, l'esportazione può richiedere tempo. Per eseguire questa analisi, è pertanto consigliabile clonare l'istanza in un'istanza di test.Il report di analisi blocco Essbase fornisce informazioni sulle tre aree indicate di seguito.
Percentuale di celle solo con valori vicini a zero, che visualizza la percentuale di celle con valori vicini a zero (ad esempio, 0,000000001604) in blocchi.
Conversione in zeri dei valori vicini a zero in un cubo BSO
Per rimuovere i valori vicini a zero o molto piccoli nelle dimensioni sparse nel cubo BSO, utilizzare la funzione @round o @truncate, che li trasforma in zeri. Questi valori zero possono quindi essere rimossi, sostituendoli con blocchi #missing. Fare riferimento alla sezione Rimozione dei blocchi contenenti zero in un cubo BSO.
Per convertire in zeri i valori vicini a zero, procedere come segue.
Configurare l'ambiente della regola business per l'ottimizzazione della regola. Questa regola è attualmente impostata per essere eseguita al livello 0. Dopo che i valori vicini a zero vengono convertiti in zeri e cancellati dal cubo (fare riferimento alla sezione successiva), tali valori verranno cancellati anche dai membri di livello superiore durante l'aggregazione successiva se SET AGGMISSG è abilitato.
SET UPDATECALC OFF;
SET CREATENONMISSINGBLK OFF;
SET CREATEBLOCKONEQ OFF;
FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
Note:
UPDATECALC, CREATENONMISSINGBLK e CREATEBLOCKONEQ siano disabilitati per impostazione predefinita, Oracle consiglia di disattivarli esplicitamente nella regola business.SparseDim" con i nomi delle dimensioni sparse in cui è necessario sostituire i blocchi zero.FIXPARALLEL per migliorare le performance, ad esempio FIXPARALLEL(4, @RELATIVE("Scenario",0)).ENDFIXPARALLEL.Pattern di calcolo 1 (per il calcolo di dimensioni dense o sparse)
Questo calcolo modifica i valori vicini a zero in zeri.
"DenseMbr" = @round("DenseMbr",<Insert Decimal Place>);
"SparseMbr" = @round("SparseMbr ",<Insert Decimal Place>);
Pattern di calcolo 2 (per membri densi solo in modalità blocco)
"DenseBlockHeader" (
@CALCMODE(BLOCK);
"DenseMbr" =@round("DenseMbr",<Insert Decimal Place>);
)
Note:
SostituireDenseMbr, SparseMbr e DenseBlockHeader con nomi effettivi.
Dopo aver eseguito questa regola, rimuovere gli zeri risultanti. Per le istruzioni, fare riferimento alla sezione Rimozione dei blocchi contenenti zero in un cubo BSO.
Rimozione dei blocchi contenenti zero in un cubo BSO
Iniziare con la rimozione dei blocchi zero nelle dimensioni sparse del cubo sostituendoli con blocchi #missing.
Per sostituire i blocchi zero con blocchi #missing, procedere come segue.
Impostare l'ambiente della regola business per l'ottimizzazione della seguente regola business:
SET UPDATECALC OFF;
SET CREATENONMISSINGBLK OFF;
SET CREATEBLOCKONEQ OFF;
FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
Note:
UPDATECALC, CREATENONMISSINGBLK e CREATEBLOCKONEQ sono disabilitati per impostazione predefinita, è consigliabile disattivarli in modo esplicito nella regola business.SparseDim" con i nomi delle dimensioni sparse in cui è necessario sostituire i blocchi zero.FIXPARALLEL per migliorare le performance, ad esempio FIXPARALLEL(4, @RELATIVE("Scenario",0)).ENDFIXPARALLEL.Pattern di calcolo 1 (per il calcolo di dimensioni dense o sparse)
Questo calcolo restituisce il valore originale e modifica i valori zero in #missing.
"DenseMbr" = "DenseMbr" * "DenseMbr" / "DenseMbr"; "SparseMbr" = "SparseMbr" * "SparseMbr" / "SparseMbr";
Pattern di calcolo 2 (per membri densi solo in modalità blocco)
"DenseBlockHeader" (
@CALCMODE(BLOCK);
IF ("DenseMbr" == 0)
"DenseMbr" = #Missing;
ENDIF
Note:
sostituireDenseMbr, SparseMbr e DenseBlockHeader con nomi effettivi.Utilizzo dell'operatore di consolidamento Never per i membri con tipo di dati SmartList, Date, Text e Percentage
I membri delle dimensioni il cui tipo di dati è smartlist, data, testo e percentuale devono utilizzare l'operatore di consolidamento Never. L'utilizzo dell'operatore di consolidamento Addition comporta l'incremento delle dimensioni dei cubi senza l'aggiunta di alcun valore. L'utilizzo dell'operatore di consolidamento Ignore eviterà solo l'aggiunta all'interno della dimensione del membro, ma non eviterà il rollup dei valori di altre dimensioni. Questo scenario può potenzialmente creare blocchi non necessari.