Modalità ibrida per l'elaborazione analitica veloce
Il processore di calcolo e query in modalità ibrida di Oracle Essbase consente di eseguire l'analitica in tempo reale mediante calcoli procedurali e la modellazione di lettura e scrittura. La modalità ibrida è il motore predefinito per l'analisi delle dipendenze dinamiche per le query di memorizzazione a blocchi. Non è l'impostazione predefinita per gli script di calcolo (è possibile abilitarla).
Gli utenti che hanno utilizzato Essbase 11g in locale probabilmente ricordano una o più modalità di progettazione dei cubi, personalizzate per scopi specifici, riportate di seguito.
- Memorizzazione a blocchi: opzione preferibile in caso di grandi dimensioni sparse. I cubi in questa modalità vengono memorizzati e pre-aggregati per ottenere buone prestazioni delle query. Include un ampio set di funzioni di calcolo per l'analisi.
- Memorizzazione di aggregazione: opzione preferibile per i cubi con un numero di dimensioni elevato e molte aggregazioni di livello superiore. Le formule membro possono essere specificate mediante MDX.
- Modalità ibrida: modalità di memorizzazione a blocchi ottimizzata con i vantaggi della memorizzazione di aggregazione.
La modalità ibrido è il motore d'interrogazione predefinito per l'analisi dinamica delle dipendenze nei cubi di memorizzazione ai blocchi in Essbase 21c ed Essbase 19c. La modalità ibrida offre un'analisi efficace delle dipendenze e aggregazione rapida. È una soluzione eccellente per gestire le complessità dell'esecuzione delle query su membri che dispongono di dipendenze in membri dinamici.
Nelle applicazioni analitiche Oracle consiglia di utilizzare le dipendenze dinamiche, incluse le aggregazioni sparse. Non si è più limitati all'implementazione selettiva di Calcolo dinamico nelle dimensioni sparse come avveniva in Essbase 11g On-Premise. In particolare, le aggregazioni dinamiche sparse sono consentite e consigliate in base alle linee guida per il tuning delle prestazioni e ai test.
Sebbene costituisca il processore di query predefinito per i cubi di memorizzazione a blocchi, la modalità ibrida non è il motore predefinito per l'esecuzione degli script di calcolo. Se gli script di calcolo contengono molte dipendenze dinamiche, Oracle consiglia di abilitare la modalità ibrida anche per gli script di calcolo. Per eseguire questa azione, attivare l'impostazione di configurazione HYBRIDBSOINCALCSCRIPT nelle proprietà di configurazione dell'applicazione o usare il comando di calcolo SET HYBRIDBSOINCALCSCRIPT per controllarla a seconda del calcolo.
La maggior parte delle funzioni di calcolo di Essbase verrà gestita in modalità ibrida. Per conoscere la lista e le sintassi di tutte le funzioni modalità ibrida supportate, nonché le poche eccezioni, vedere Funzioni supportate in modalità ibrida. Il calcolo parallelo mediante FIXPARALLEL è supportato in modalità ibrido, ma non in parallelo utilizzando CALCPARALLEL.
Vedere ASODYNAMICAGGINBSO per la sintassi di configurazione della modalità ibrido oltre le impostazioni predefinite o di disattivarla.
Argomenti di questa sezione:
Vantaggi della modalità ibrida
I cubi in modalità ibrida Essbase consentono di beneficiare di un'aggregazione rapida anche con dimensioni sparse, dimensioni del cubo più piccole, impronta di memoria ottimizzata, calcoli batch flessibili e un'analisi robusta delle dipendenze delle formule.
La modalità ibrida combina il calcolo procedurale di memorizzazione a blocchi (BSO) e la funzionalità di write back con le prestazioni di aggregazione della memorizzazione di aggregazione (ASO). La modalità ibrida offre il vantaggio di prestazioni veloci evitando di dover memorizzare le aggregazioni con sparsità. Questo scenario, a sua volta, riduce le dimensioni del database e il footprint di memoria e accelera i tempi di calcolo in batch. Le considerazioni relative alla distribuzione vengono semplificate, in quanto non è più necessario valutare l'utilizzo della memorizzazione a blocchi in caso di uso eccessivo dei calcoli di livello 0 rispetto alla memorizzazione di aggregazione per molte aggregazioni di livello superiore e rispetto alla progettazione di modelli partizionati in cui il cubo viene suddiviso lungo le linee dimensionali per agevolare le prestazioni di calcolo.
Ecco alcuni scenari in cui la modalità ibrida ha più probabilità di migliorare le prestazioni di calcolo:
-
Un database di memorizzazione a blocchi dispone di membri con sparsità che non sono di livello 0 e vengono calcolati in base alla gerarchia (anziché dagli script di calcolo).
-
Un membro padre di calcolo dinamico con sparsità ha più di 100 figli.
-
Si sta utilizzando una partizione trasparente tra una destinazione di memorizzazione di aggregazione vuota e un'origine di memorizzazione a blocchi. Se le formule nella destinazione di memorizzazione di aggregazione sono semplici e traducibili nel linguaggio della formula di memorizzazione a blocchi, è possibile ottenere risultati rapidi per la memorizzazione a blocchi mediante la modalità ibrida.
-
Si sta utilizzando una partizione trasparente tra due database di memorizzazione a blocchi e le prestazioni di calcolo rappresentano un problema.
Un altro vantaggio della modalità ibrida è che non esiste alcuna dipendenza dell'ordine del profilo. È possibile personalizzare facilmente l'ordine di soluzione anziché riorganizzare l'ordine dimensionale.
La modalità ibrida consente inoltre di utilizzare la gestione degli scenari per testare e modellare dati ipotetici utilizzando un formato di flusso di lavoro senza aggiungere requisiti di storage.
Confronto tra modalità ibrida, memorizzazione a blocchi e memorizzazione di aggregazione
Senza la modalità ibrida, per l'algoritmo di memorizzazione a blocchi per i membri di calcolo dinamico esistono limitazioni quando viene utilizzato con grandi dimensioni sparse. Le modalità ibrida e la memorizzazione di aggregazione sono più ottimizzate per l'analisi delle dipendenze dinamiche. Conoscere le differenze chiave facilita la scelta del tipo di processore di query più adatto per un'applicazione Essbase .
In assenza della modalità ibrida, è necessario memorizzare le grandi dimensioni sparse nei database di memorizzazione a blocchi. Renderli dinamici comporterebbe una quantità eccessiva di I/O dei blocchi al momento di query o calcoli, con conseguenze negative sulle prestazioni. Dimensioni sparse estremamente grandi possono determinare tempi di aggregazione batch molto lunghi, nonché dimensioni di database elevate che crescono rispetto al numero e alla grandezza delle dimensioni sparse. Anche in presenza di tali svantaggi, la memorizzazione a blocchi viene ampiamente utilizzata per le potenti funzionalità.
La memorizzazione di aggregazione è stata progettata in modo specifico per abilitare database estesi con dimensioni che aumentano per quantità e numero. A differenza della memorizzazione a blocchi, non richiede una pre-aggregazione delle grandi dimensioni sparse per ottenere buone prestazioni delle query. Il segreto è il kernel del database di memorizzazione di aggregazione, che facilita la rapida aggregazione dinamica in ogni dimensionalità estesa.
Nonostante tutti i vantaggi offerti dalla memorizzazione di aggregazione, tuttavia esistono molti usi più adatti alla memorizzazione a blocchi, ad esempio la possibilità di caricare dati a qualsiasi granularità o di eseguire spesso allocazioni batch complesse oppure di implementare la conversione della valuta per i dati finanziari globali. In questi casi, e in numerosi altri, la soluzione potrebbe essere la modalità ibrida. La modalità ibrida è una combinazione delle funzioni più efficaci della memorizzazione a blocchi e di quella di aggregazione. Nella modalità ibrida, Essbase
-
Favorisce una flessibilità completa a livello di calcolo procedurale, anche quando i calcoli dipendono da aggregazioni dinamiche sparse.
-
Utilizza il motore ibrido per le query che accedono ai membri dinamici con sparsità. Per la piccola percentuale di query che non è possibile elaborare in questo modo, Essbase utilizza il flusso di calcoli della memorizzazione a blocchi per soddisfare la richiesta.
-
Offre questi vantaggi, se si contrassegnano i membri con sparsità come dinamici:
- Elimina la necessità di pre-aggregazione
-
Migliora le prestazioni a livello di ristrutturazione
-
Migliora le prestazioni di backup
-
Riduce i requisiti di spazio su disco
-
Poiché la modalità ibrido prevede calcoli dinamici, è possibile ordinare i calcoli in sequenza utilizzando un ordine di risoluzione.
Nota
I calcoli ibridi, indipendentemente dal fatto che siano basati su query o script di calcolo, vengono eseguiti nello spazio di memoria temporaneo, utilizzando una cache delle formule e la cache di memorizzazione di aggregazione.
Differenze chiave
Le differenze chiave riportate di seguito consentono di scegliere il tipo di processore di query più adatto per l'applicazione.
| Requisito | Memorizzazione di aggregazione (ASO) | Memorizzazione a blocchi (BSO) | Modalità ibrida |
|---|---|---|---|
|
Ottimizzazione per l'aggregazione rapida tra numerose dimensioni sparse |
Sì |
N. |
Sì |
|
Ottimizzazione per un uso limitato dello spazio su disco e un tempo di backup ridotto |
Sì |
N. |
Sì |
|
Ottimizzazione per le applicazioni finanziarie |
N. |
Sì |
Sì |
|
Possibilità di eseguire allocazioni |
Sì |
Sì |
Sì |
|
Possibilità di eseguire calcoli batch |
N. |
Sì |
Sì |
|
Supporto delle formule membro |
Sì, espressa come MDX |
Sì, espressa sotto forma di Funzioni di calcolo Essbase |
Sì, espressa sotto forma di Funzioni di calcolo Essbase |
|
Ottimizzazione per i riferimenti in avanti nelle formule membro |
N. |
N. |
Sì |
|
Possibilità di personalizzare l'ordine di risoluzione di calcoli/aggregazioni |
Sì |
N. |
Sì |
|
Possibilità di specificare l'esecuzione delle query bottom-up per l'analisi delle dipendenze più rapide dei data set di input più piccoli |
N. |
N. |
Sì |
|
Possibilità di tracciare ed eseguire il debug dell'esecuzione delle query |
Sì |
N. |
Sì |
|
Possibilità di limitare l'uso della memoria consentito per una query |
Sì |
N. |
Sì |
|
Supporto per il calcolo a due passaggi |
N. |
Sì |
N. |
|
Possibilità di caricare i dati a qualsiasi livello |
No, è possibile caricare solo le celle di livello 0 senza dipendenze formula |
Sì |
Sì per i livelli memorizzati No per i livelli dinamici |
|
Possibilità di caricare i dati in modo incrementale utilizzando i buffer |
Sì |
N. |
N. |
|
La valutazione delle formule su dimensioni sparse può avere risultati diversi da quella delle stesse formule su dimensioni dense |
ND |
Sì. Nella memorizzazione a blocchi senza modalità ibrida, gli script di calcolo Essbase possono essere scritti in modo iterativo allo scopo di risolvere le dipendenze sui blocchi sparsi. Se si modifica il tipo di dimensione da sparsa a densa o viceversa, si potrebbero ottenere risultati diversi per le stesse formule. |
No. Le dipendenze formula vengono calcolate allo stesso modo a prescindere dalla sparsità o dalla densità. In modalità ibrida, Essbase utilizza un algoritmo per risolvere le dipendenze dinamiche. In alcuni casi, i dati derivati da uno script di calcolo possono essere diversi in modalità ibrida rispetto a quelli in modalità di memorizzazione a blocchi senza ibrido. |
Introduzione alla modalità ibrida
Per avviare l'esecuzione delle applicazioni Essbase in modalità ibrida, iniziare in un ambiente di test, rendere dinamiche le dimensioni grandi e sparse e studiare il log dell'applicazione.
Per iniziare a usare la modalità ibrida, attenersi alle indicazioni riportate di seguito.
-
Impostare un ambiente di sviluppo ed eseguire la migrazione delle applicazioni di memorizzazione a blocchi esistenti in tale ambiente. Modalità ibrida è abilitata per i cubi di memorizzazione a blocchi per impostazione predefinita.
-
Laddove possibile, rendere dinamiche le dimensioni sparse più grandi.
-
Eseguire query di test ed esaminare il log dell'applicazione, sia prima che dopo aver abilitato la modalità ibrida. Questa attività può rivelare in che misura è stato usato il processore di query di memorizzazione di aggregazione e i vantaggi della modalità ibrida che è stato possibile acquisire. Per ogni query, nel log dell'applicazione vengono riportati il messaggio
Hybrid aggregation mode enabledoHybrid aggregation mode disabled. -
Se vengono registrate troppe query con la modalità ibrida disabilitata, contattare il Supporto Oracle.
Ottimizzare il cubo per la modalità ibrida
Per utilizzare la modalità ibrida nel modo più efficace, effettuare le operazioni riportate di seguito.
-
Evitare di utilizzare il calcolo a due passaggi in modalità ibrida. Utilizzare invece l'ordine di risoluzione.
-
Convertire i membri memorizzati non di livello 0 in membri di calcolo dinamico, laddove fattibile.
-
Se la conversione in membri di calcolo dinamico influisce sull'ordine di soluzione per le formule dipendenti, potrebbe essere necessario modificare l'ordine delle dimensioni del profilo in modo da allineare l'ordine di soluzione con l'ordine di calcolo batch precedente e le impostazioni di calcolo a due passaggi.
L'ordine di soluzione per i cubi in modalità ibrida è simile all'ordine di calcolo dei cubi di memorizzazione a blocchi, con alcuni miglioramenti. Se si desidera utilizzare un ordine di soluzione non predefinito, è possibile impostarne uno personalizzato per le dimensioni e i membri.
-
Una formula calcolata in modo dinamico ed elaborata nell'ordine di soluzione errato può causare l'esecuzione di un numero eccessivo di formule da parte di una query, con il conseguente deterioramento delle prestazioni. Quando possibile, una formula sparsa calcolata in modo dinamico deve avere un ordine di soluzione superiore rispetto a quello delle dimensioni sparse aggregate in modo gerarchico.
In alcune applicazioni ciò non è possibile poiché è necessario un ordine di soluzione diverso per ottenere risultati della formula corretti. Ad esempio, per ottenere il valore di vendita corretto ai livelli superiori, è necessario che un'applicazione con unità e prezzi includa un valore di vendita eseguito prima delle aggregazioni sparse.
-
Potrebbe essere necessario modificare le configurazioni dense o sparse delle dimensioni (si applica solo all'utilizzo del motore di memorizzazione a blocchi nei casi in cui non è possibile utilizzare il motore ibrido).
-
Se possibile, ridurre la dimensione dei blocchi.
Per monitorare e ottimizzare le prestazioni delle query in modalità ibrida, gli amministratori di Essbase possono utilizzare gli strumenti riportati di seguito.
-
Per limitare la quantità della memoria che può essere usata da una singola query, utilizzare l'impostazione di configurazione MAXFORMULACACHESIZE.
-
Se il cubo contiene formule membro complesse con operatori a dimensioni incrociate e più istruzioni IF/ELSE, è possibile che i problemi di prestazioni sia correlati all'esecuzione delle formule. In tal caso, è possibile attivare l'elaborazione della query bottom-up per il calcolo della formula. Ciò consente di ottimizzare i tempi della query identificando le intersezioni necessarie per il calcolo in modo che il tempo di esecuzione della query sia proporzionale alla dimensione dei dati di input.
Per effettuare queste ottimizzazioni delle query per le release 21C, usare l'impostazione di configurazione QUERYBOTTOMUP e la funzione di calcolo @QUERYBOTTOMUP. Per la release 19c, usare l'impostazione di configurazione IGNORECONSTANTS con la sintassi BOTTOMUP e la funzione di calcolo @NONEMPTYTUPLE.
-
Utilizzare il trace delle query per monitorare ed eseguire il debug delle prestazioni delle query. Sono disponibili più impostazioni di configurazione a livello di applicazione, a seconda del caso d'uso. Utilizzare QUERYTRACE per il debug a breve termine di una singola query che si ritiene possa presentare dei problemi. Utilizzare TRACE_REPORT per la raccolta di statistiche sulle query eseguite contemporaneamente (ideale per l'esecuzione del debug in un ambiente da sviluppo). Utilizzare LONGQUERYTIMETHRESHOLD negli ambienti di produzione per stampare le statistiche relative a tutte le query e a quelle impostate nel file log dell'applicazione rispetto a quelle eseguite.
Limitazioni ed eccezioni alla modalità ibrida
In alcuni casi, una query non viene eseguita in modo ottimale in modalità ibrida. Essbase rileva quando sono presenti queste condizioni e le aggrega in modalità di memorizzazione a blocchi. Se una query combina tipi di calcoli in modalità ibrida supportati e non supportati, Essbase utilizza per impostazione predefinita l'esecuzione dei calcoli di memorizzazione a blocchi.
Se abilitata, la modalità ibrida diventa effettiva per le formule dei membri che utilizzano le funzioni supportate. Per un elenco delle funzioni supportate e non incluse, vedere Funzioni supportate in modalità ibrida.
I tipi di query seguenti non vengono eseguiti in modalità ibrida:
-
Membri di calcolo dinamico con formule che rappresentano una destinazione di partizioni trasparenti
-
Query in cui il membro condiviso è esterno alla definizione di partizione di destinazione e il rispettivo membro prototipo è interno o viceversa
-
XOLAP
-
Misure di testo/liste di testo
I calcoli degli attributi verranno eseguiti in modalità ibrida, solo per la somma.
Se i membri dipendenti hanno un ordine di soluzione più elevato rispetto al membro della formula, viene visualizzata la seguente avvertenza:
Solve order conflict - dependent member member_name with higher solve order will not contribute value for formula of member_nameOrdine di soluzione in modalità ibrida
L'ordine di soluzione in Essbase determina l'ordine di esecuzione del calcolo dinamico in modalità ibrida. È possibile personalizzare l'ordine di soluzione o accettare il valore predefinito, ottimizzato per garantire un'analisi avanzata delle prestazioni e delle dipendenze.
Il concetto di ordine di soluzione si applica all'esecuzione dei calcoli dinamici, indipendentemente dal fatto che l'avvio avvenga tramite una formula del membro dinamico o una dipendenza dinamica in uno script di calcolo. Quando una cella viene valutata in una query multidimensionale, l'ordine di risoluzione dei calcoli potrebbe essere ambiguo, a meno che non si specifichi un ordine di soluzione per indicare la priorità di calcolo richiesta.
È possibile impostare l'ordine di soluzione per le dimensioni o i membri oppure utilizzare l'ordine di soluzione Essbase predefinito. L'ordine di soluzione minimo e massimo che è possibile impostare è, rispettivamente, 0 e 127. Un ordine di soluzione superiore indica che il membro viene calcolato in un secondo momento: ad esempio, un membro con un ordine di soluzione pari a 1 viene risolto prima di un membro con un ordine di soluzione uguale a 2.
Quando la modalità ibrida è abilitata, l'ordine di soluzione predefinito (anche noto come ordine di calcolo) corrisponde a quello dei database di memorizzazione a blocchi:
| Tipo di dimensione/membro | Valore ordine di soluzione predefinito |
|---|---|
| Membri memorizzati | 0 |
| Membri della dimensione sparsa | 10 |
| Membri della dimensione Conto densa | 30 |
| Membri della dimensione Tempo densa | 40 |
| Membri della dimensione normale densa | 50 |
| Membri della dimensione Attributo | 90 |
| Membri dinamici a due passaggi | 100 |
| Membri o set denominati calcolati via MDX (definiti in MDX With) | 120 |
In sintesi, l'ordine di soluzione predefinito in modalità ibrida stabilisce che i membri memorizzati vengano calcolati prima dei membri di calcolo dinamici e che le dimensioni sparse vengano calcolate prima delle dimensioni dense, nell'ordine in cui appaiono nel profilo (dall'alto verso il basso).
I membri dinamici (con o senza formule) che non dispongono di un ordine di soluzione specificato ereditano l'ordine di soluzione della rispettiva dimensione, a meno che non siano stati contrassegnati come a due passaggi.
Il calcolo a due passaggi è un'impostazione che è possibile applicare, in modalità di memorizzazione a blocchi, ai membri con formule che devono essere calcolate due volte per produrre il valore corretto.
Nota
Non utilizzare il calcolo a due passaggi con i cubi in modalità ibrida. Utilizzare solo risolvi ordine.
La modalità a due passaggi non è applicabile in modalità ibrida e tutti i membri contrassegnati come due passaggi vengono calcolati per ultimi, dopo gli attributi. In modalità ibrida è necessario implementare un ordine di soluzione personalizzato, invece che a due passaggi, se l'ordine di soluzione predefinito non soddisfa i propri requisiti.
L'ordine di soluzione predefinito in modalità ibrida è ottimizzato per gli scenari riportati di seguito.
-
Riferimenti in avanti, in cui una formula del membro dinamico fa riferimento a un membro riportato più avanti nell'ordine del profilo. Non esiste alcuna dipendenza dell'ordine del profilo in modalità ibrida.
-
L'aggregazione dei valori figlio basata sull'ordine del profilo corrisponde in modo più preciso all'aggregazione utilizzando formule equivalenti.
-
Membri densi dinamici sotto forma di dipendenze all'interno di formule sparse. In modalità ibrida, se una formula con sparsità fa riferimento a un membro dinamico denso, il riferimento viene ignorato perché le dimensioni sparse vengono calcolate per prime. Per modificare questo valore, assegnare un ordine di soluzione alla dimensione sparsa maggiore dell'ordine di soluzione della dimensione densa (calcolata successivamente).
Personalizzazione dell'ordine di soluzione
Se è necessario perfezionare il funzionamento dei calcoli dinamici nella modalità ibrida, la personalizzazione dell'ordine di soluzione delle dimensioni e dei membri facilita l'operazione senza apportare modifiche importanti al profilo.
Se si implementa un ordine di soluzione personalizzato, quest'ultimo avrà la precedenza sull'ordine di soluzione predefinito. Se i membri o le dimensioni hanno lo stesso ordine di soluzione, l'ordine in cui vengono visualizzati nel profilo (dall'alto verso il basso) risolve il conflitto.
A meno che non si personalizzi l'ordine di soluzione per determinati membri, l'ordine di soluzione del membro dimensione superiore viene applicato per tutti i membri dinamici della dimensione.
Per modificare l'ordine di soluzione, utilizzare Outline Editor nell'interfaccia Web diEssbase oppure Smart View (vedere Modifica dell'ordine di soluzione di un punto di vista selezionato).
L'ordine di soluzione minimo e massimo che è possibile impostare è, rispettivamente, 0 e 127. Un ordine di soluzione superiore indica che il membro viene calcolato in un secondo momento.
Per analizzare i casi d'uso dell'ordine di soluzione, vedere i modelli relativi all'ordine di soluzione nella sezione tecnica della galleria di cartelle di lavoro dell'applicazione, reperibili nel catalogo dei file in Essbase.
Note per l'ordine di soluzione in modalità non ibrida
Nei cubi di memorizzazione di aggregazione:
-
L'ordine di soluzione è impostato su 0 per tutte le dimensioni.
-
L'aggregazione viene eseguita secondo l'ordine di profilo, con queste eccezioni:
- I membri delle gerarchie memorizzate vengono elaborati per primi.
- I membri delle gerarchie dinamiche vengono elaborati successivamente.
Nei cubi di memorizzazione a blocchi non ibridi, l'ordine di soluzione predefinito è
-
membri sparsi prima dei membri densi
-
membri Conti prima dei membri Tempo
-
attributi per ultimi
Nota
Se l'ordine di soluzione dei membri Conti viene impostato manualmente in modo da essere maggiore dell'ordine di soluzione dei membri Tempo, i membri Conti verranno valutati dopo i membri Dynamic Time Series.