Carica dati in cubi di memorizzazione di aggregazione

I cubi di memorizzazione di aggregazione (ASO) di Essbase facilitano l'analisi di dimensioni molto grandi contenenti fino a un milione o più membri. Per facilitare il caricamento dei dati in profili di grandi dimensioni, è possibile caricare in modo incrementale, gestire i buffer di caricamento dati e unire/sostituire le slice di dati.

Per supportare in modo efficiente il caricamento dei valori dei dati in cubi di grandi dimensioni, Essbase:

  • Consente l'elaborazione di più origini dati tramite buffer di caricamento dati temporanei

  • Consente di controllare la percentuale di risorse utilizzate da un buffer di caricamento dati

  • Consente a un cubo di memorizzazione di aggregazione di contenere più slice di dati (una query al database accede a ogni slice, raccogliendo tutte le celle di dati)

  • Fornisce un processo di caricamento dati incrementale che viene completato in un periodo di tempo proporzionale alla dimensione dei dati incrementali

Per caricare i valori nei cubi di memorizzazione di aggregazione, è possibile utilizzare la pagina Job nell'interfaccia Web di Essbase oppure le istruzioni alter database e import data in MaxL. Gli esempi di questo documento si basano sull'utilizzo di MaxL.

Nota

Se i valori sono stati calcolati e memorizzati tramite un'aggregazione, Essbase aggiorna automaticamente i valori memorizzati di livello superiore quando i valori dei dati vengono modificati. Non è necessario alcun passo di calcolo aggiuntivo. L'esistenza e la dimensione di un'aggregazione possono influire sul tempo necessario per eseguire un caricamento dei dati.

Impossibile esportare i dati durante il caricamento dei dati in un cubo.

Quando si copia un'applicazione ASO, per conservare tutti i dati nel cubo, è necessario unire tutte le slice di dati incrementali nella slice di database principale prima di copiare l'applicazione. I dati nelle slice di dati incrementali non unite non vengono copiati.

Caricare i dati in modo incrementale mediante un buffer di caricamento dati

Se si utilizza il caricamento incrementale dei dati per caricare i valori dei dati in un cubo di memorizzazione di aggregazione (ASO) di Essbase, è possibile migliorare le prestazioni. Essbase carica i valori in un buffer di caricamento dati temporaneo, con una scrittura finale nella memoria dopo la lettura di tutte le origini dati.

L'uso dell'istruzione MaxL dati di importazione per caricare i valori dei dati da una singola origine dati non comporta il buffer di caricamento dati di memorizzazione di aggregazione.

Se si utilizzano più istruzioni MaxL dati di database di importazione per caricare i valori dei dati nei cubi di memorizzazione di aggregazione, Essbase può utilizzare un buffer di caricamento dati temporaneo, completando la scrittura finale nella memoria dopo la lettura di tutte le origini dati. L'uso del buffer di caricamento dati di storage di aggregazione può migliorare notevolmente le prestazioni di caricamento dati complessive.

Nel buffer di caricamento dati di memorizzazione di aggregazione, Essbase ordina ed esegue il commit dei valori dopo la lettura di tutte le origini dati. Se vengono rilevati più record (o duplicati) per una cella di dati specifica, i valori vengono accumulati. In Essbase vengono memorizzati i valori accumulati, ovvero la sostituzione, l'aggiunta o la sottrazione di valori di dati esistenti nel cubo.

Nota

Quando si utilizza il buffer di caricamento dati di memorizzazione di aggregazione, la scelta di sostituire, aggiungere o sottrarre valori viene specificata per l'intero set di origini dati durante il caricamento del contenuto del buffer dati nel cubo.

Sebbene il buffer di caricamento dati esista in memoria, non è possibile creare aggregazioni o unire le slice, poiché queste operazioni richiedono molte risorse. È tuttavia possibile caricare i dati in altri buffer di caricamento dati ed eseguire query e altre operazioni sul cubo. È possibile che si verifichi una breve attesa per le query finché non viene eseguito il commit dell'intero data set e non vengono create aggregazioni.

Il buffer di caricamento dati esiste in memoria fino a quando non viene eseguito il commit del contenuto del buffer nel cubo o l'applicazione viene riavviata, nel momento in cui il buffer viene eliminato. Anche se l'operazione di commit non riesce, il buffer viene eliminato e i dati non vengono caricati nel cubo. È possibile eliminare manualmente un buffer di caricamento dati utilizzando l'istruzione MaxL alter database.

Nota

L'arresto dell'applicazione prima di eseguire il commit del contenuto del buffer distrugge il buffer. In questo caso, dopo aver riavviato l'applicazione, è necessario inizializzare un nuovo buffer e caricare i dati su di esso.

Per utilizzare il buffer di caricamento dati per i cubi di memorizzazione di aggregazione:

  1. Preparare il buffer di caricamento dati, in cui i valori dei dati vengono ordinati e accumulati utilizzando l'istruzione alter database MaxL per inizializzare un buffer di caricamento dati di storage di aggregazione. Ad esempio:
    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1;
  2. Caricare i dati dalle origini dati nel buffer di caricamento dati utilizzando l'istruzione database di importazione MaxL. Utilizzare più istruzioni per caricare i dati da più origini dati. È possibile includere qualsiasi combinazione di origini dati. Specificare un file di regole se l'origine dati ne richiede uno.

    Nell'esempio seguente vengono caricate due origini dati, una delle quali utilizza un file di regole, nello stesso buffer di caricamento dati.

    import database ASOsamp.Basic data 
       from server data_file 'file_1.txt' 
       to load_buffer with buffer_id 1
       on error abort; 
    import database ASOsamp.Basic data
       from server data_file 'file_2' 
       using server rules_file ‘rule’ 
       to load_buffer with buffer_id 1
       on error abort;
    

    Per caricare i dati in più buffer di caricamento contemporaneamente, vedere Carichi di dati multipli in parallelo.

  3. Utilizzare l'istruzione Importa dati MaxL per eseguire il commit del contenuto del buffer di caricamento dati nel cubo. Ad esempio:
    import database ASOsamp.Basic data 
       from load_buffer with buffer_id 1;

    Per eseguire il commit del contenuto di più buffer di caricamento dati nel cubo con una sola istruzione MaxL, vedere Multiple Data Loads in Parallel.

Il seguente esempio di caricamento dati incrementale fornisce prestazioni ottimali quando i nuovi valori dati non si intersecano con i valori esistenti:

  1. Creare un buffer di caricamento dati singolo utilizzando le proprietà ignore_missing_values e ignore_zero_values. Ad esempio:

    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1
       property ignore_missing_values, ignore_zero_values;

    Se il cubo deve essere disponibile per l'invio di richieste di dati durante l'aggiornamento, inizializzare il buffer di caricamento dati con la grammatica resource_usage impostata per l'80%. Ad esempio:

    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1
       resource_usage 0.8 property
       ignore_missing_values, ignore_zero_values;
  2. Caricare i dati nel buffer. Ad esempio:

    import database ASOsamp.Basic data 
       from server data_file 'file_1.txt' 
       to load_buffer with buffer_id 1
       on error abort; 
    import database ASOsamp.Basic data
       from server data_file 'file_2'
       to load_buffer with buffer_id 1
       on error abort;
    
  3. Eseguire il commit del contenuto del buffer di caricamento dati nel cubo creando una porzione e aggiungendo valori. Ad esempio:

    import database ASOsamp.Basic data 
       from load_buffer with buffer_id 1
       add values create slice;

Uso della risorsa e dello spazio su disco del buffer di caricamento dati

Quando si utilizza il caricamento incrementale dei dati per caricare i valori dei dati in un cubo di memorizzazione di aggregazione (ASO) di Essbase, è possibile impostare vincoli sull'uso consentito delle risorse e sul tempo di attesa per il buffer di caricamento dati temporaneo. È possibile ridurre l'utilizzo dello spazio su disco gestendo la tablespace.

Controllo dell'uso delle risorse del buffer di caricamento dati

Quando si esegue un caricamento incrementale dei dati, Essbase utilizza la cache di memorizzazione di aggregazione per l'ordinamento dei dati. È possibile controllare la quantità di cache che un buffer di caricamento dati può utilizzare specificando la percentuale. La percentuale è un numero compreso tra .01 e 1.0 inclusi; solo due cifre dopo il separatore decimale sono significative, ad esempio 0,029 viene interpretato come 0,02. Per impostazione predefinita, l'uso delle risorse di un buffer di caricamento dati è impostato su 1.0 e l'uso totale delle risorse di tutti i buffer di caricamento dati creati in un database non può superare 1.0. Ad esempio, se esiste un buffer di dimensione 0,9, non è possibile creare un altro buffer di dimensione maggiore di 0,1.

Nota

Le operazioni di invio creano internamente buffer di carico di dimensione 0,2; pertanto, un buffer di carico della dimensione predefinita 1,0 causerà l'errore delle operazioni di invio a causa di risorse del buffer di caricamento dati insufficienti.

Per impostare la quantità di risorse che il buffer può utilizzare, specificare la percentuale quando si avvia il caricamento dei dati nell'interfaccia Web di Essbase. Se si utilizza MaxL, utilizzare l'istruzione MaxL alter database con la grammatica resource_usage.

Ad esempio, per impostare resource_usage su 50% della cache totale, utilizzare questa istruzione:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   resource_usage .5;

Se si prevede di eseguire operazioni di invio concorrenti, utilizzare l'impostazione di configurazione ASOLOADBUFFERWAIT e l'istruzione MaxL alter database con la grammatica wait_for_resources. ASOLOADBUFFERWAIT si applica alla creazione di buffer di caricamento dati di memorizzazione di aggregazione con l'opzione wait_for_resources e si applica alle allocazioni, ai calcoli personalizzati e alle operazioni di aggiornamento dei dati.

Gestione dello spazio su disco per i caricamenti incrementali di dati

I caricamenti incrementali dei dati nei cubi di memorizzazione di aggregazione possono utilizzare lo spazio su disco fino a due volte la dimensione dei file di dati correnti. Ad esempio, si supponga che la dimensione dei dati di un cubo sia di 1 GB e che la dimensione del caricamento incrementale dei dati sia di 200 MB, per una dimensione totale di 1,2 GB. Durante il processo di caricamento incrementale dei dati, Essbase potrebbe utilizzare fino a 2,4 GB di spazio su disco.

Nei casi in cui i database sono più grandi di 2 GB, è possibile ridurre l'utilizzo dello spazio su disco impostando la dimensione massima del file della tablespace predefinita su non più di 2 GB.

Per impostare la dimensione massima del file della tablespace predefinita, è possibile utilizzare l'istruzione MaxL alter tablespace.

Proprietà buffer caricamento dati

Quando si caricano in modo incrementale i valori dei dati in un buffer di caricamento di memorizzazione di aggregazione (ASO), è possibile indicare a Essbase di ignorare i valori mancanti e zero nei dati di origine e di risolvere i conflitti di cella (eliminare le aggregazioni non valide combinando celle duplicate).

Di seguito sono riportate le proprietà del buffer di caricamento dati che è possibile impostare.

  • ignore_missing_values: ignora i valori #MI nel flusso dei dati in entrata

  • ignore_zero_values: ignora gli zeri nel flusso dei dati in entrata

  • aggregate_use_last: combina le celle duplicate utilizzando il valore della cella caricata l'ultima volta nel buffer del caricamento.

    Nota

    Quando si caricano valori di testo e data in un database di memorizzazione di aggregazione, utilizzare la proprietà aggregate_use_last per eliminare le aggregazioni non valide. Per altre linee guida, vedere Caricare, cancellare ed esportare le misure di testo e data.

Se si utilizzano più proprietà nel comando e si verificano conflitti, l'ultima proprietà elencata ha la precedenza.

Gestione di zeri e mancanti nel flusso di dati

Quando si caricano i dati in modo incrementale, è possibile specificare la modalità di trattamento dei valori mancanti e zero nei dati di origine durante il caricamento dei dati nel buffer di caricamento dati.

Per impostare le proprietà del buffer di caricamento dati, utilizzare l'istruzione MaxL alter database con la grammatica property.

Ad esempio:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   property ignore_missing_values, ignore_zero_values;

Risoluzione dei conflitti di celle

Per risolvere i conflitti di cella per le celle duplicate, è possibile specificare se utilizzare l'ultima cella caricata nel buffer di caricamento.

Per impostazione predefinita, quando le celle con chiavi identiche vengono caricate nello stesso buffer di caricamento dati, Essbase risolve il conflitto di celle aggiungendo i valori insieme.

Per creare un buffer di caricamento dati che combina celle duplicate accettando il valore della cella caricata per ultima nel buffer di caricamento, utilizzare l'istruzione MaxL alter database con la grammatica aggregate_use_last.

Ad esempio:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   property aggregate_use_last;

Nota

Quando si utilizzano i buffer di caricamento dati con la grammatica aggregate_use_last, i caricamenti dei dati sono significativamente più lenti, anche se non sono presenti chiavi duplicate.

Più caricamenti dati in parallelo

In un cubo di memorizzazione di aggregazione (ASO) Essbase possono esistere più buffer di caricamento dati. Sebbene possa essere attiva solo un'operazione di commit alla volta, è possibile eseguire l'impegno di più buffer di caricamento dati nella stessa operazione, che risulta più veloce rispetto all'esecuzione di commit dei singoli buffer.

Per caricare i dati in più buffer di caricamento dati contemporaneamente, utilizzare sessioni MaxL Shell separate. Ad esempio, in una sessione MaxL Shell, caricare i dati in un buffer con ID 1:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1 resource_usage 0.5;
import database ASOsamp.Basic data
   from data_file "dataload1.txt"
   to load_buffer with buffer_id 1
   on error abort;

Contemporaneamente, in un'altra sessione MaxL Shell, caricare i dati in un buffer con ID 2:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 2 resource_usage 0.5;
import database ASOsamp.Basic data
   from data_file "dataload2.txt"
   to load_buffer with buffer_id 2
   on error abort;

Quando i dati vengono caricati completamente nei buffer di caricamento dati, utilizzare un'istruzione MaxL per eseguire il commit del contenuto di entrambi i buffer nel database utilizzando una lista separata da virgole di ID buffer:

Ad esempio, questa istruzione carica il contenuto dei buffer 1 e 2:

import database ASOsamp.Basic data 
   from load_buffer with buffer_id 1, 2;

Nota

Quando si caricano i dati SQL nei cubi di memorizzazione di aggregazione, è possibile utilizzare fino a otto file di regole per caricare i dati in parallelo. Questa funzionalità è diversa dal processo descritto sopra. Quando si eseguono più caricamenti di dati SQL in parallelo, è possibile utilizzare una sola istruzione MaxL database di importazione con la grammatica utilizzo di più file_regole. Essbase inizializza più buffer di caricamento dati di memorizzazione di aggregazione temporanei (uno per ogni file di regole) ed esegue il commit del contenuto di tutti i buffer nel cubo in un'unica operazione.

Elenca buffer di caricamento dati per un cubo di memorizzazione di aggregazione

In un cubo di memorizzazione di aggregazione (ASO) Essbase possono esistere più buffer di caricamento dati. Per una lista e una descrizione dei buffer di caricamento dati presenti nel cubo, utilizzare l'istruzione MaxL database query con la grammatica list load_buffers.

La sintassi dell'istruzione MaxL per elencare i buffer di caricamento dati ASO è la seguente:

query database appname.dbname list load_buffers;

Questa istruzione restituisce le seguenti informazioni su ogni buffer di caricamento dati esistente:

Tabella 37-2 Informazioni sul buffer di caricamento dati

Campo Descrizione

id_buffer

ID di un buffer di caricamento dati (numero compreso tra 1 e 4.294.967.296).

interno

Un valore booleano che specifica se il buffer di caricamento dati è stato creato internamente da Essbase (TRUE) o da un utente (FALSE).

attiva

Un valore booleano che specifica se il buffer di caricamento dati è attualmente utilizzato da un'operazione di caricamento dati.

uso_risorsa

Percentuale (un numero compreso tra .01 e 1.0 inclusi) della cache di memorizzazione di aggregazione che il buffer di caricamento dati può utilizzare.

metodo di aggregazione

Uno dei metodi utilizzati per combinare più valori per la stessa cella all'interno del buffer:

  • AGGREGATE_SUM: aggiunge i valori quando il buffer contiene più valori per la stessa cella.

  • AGGREGATE_USE_LAST: combina le celle duplicate utilizzando il valore della cella caricata da ultima nel buffer di caricamento.

Ignora_mancanze

Un valore booleano che specifica se ignorare i valori #MI nel flusso di dati in entrata.

ignora_zeros

Un valore booleano che specifica se ignorare gli zeri nel flusso di dati in entrata.

Vedere: Database query (archiviazione aggregata)

Creare una porzione di dati

Per creare una porzione, è possibile eseguire il commit incrementale del buffer di caricamento dati in un cubo di memorizzazione di aggregazione (ASO) Essbase. Dopo il caricamento della nuova sezione nel cubo, Essbase crea tutte le viste necessarie per la sezione (ad esempio, le viste di aggregazione) prima che i nuovi dati siano visibili per le query.

La creazione di una slice di dati è utile in quanto consente di migliorare le prestazioni del caricamento incrementale dei dati. Il tempo impiegato da un caricamento dati incrementale è proporzionale alla quantità di nuovi dati; la dimensione del cubo non è un fattore.

Per creare una slice di dati, utilizzare l'istruzione MaxL database di importazione con la grammatica create slice.

Ad esempio, per creare una slice sostituendo i valori predefiniti, utilizzare questa istruzione:

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override values create slice;

Nota

Se si utilizzano valori di sostituzione durante la creazione di una slice, i valori #MISSING vengono sostituiti da zeri. L'utilizzo di questa opzione è molto più lento rispetto all'utilizzo delle opzioni di aggiunta o sottrazione dei valori.

Vedere: Importa dati (storage aggregato)

Unisci sezioni dati incrementali

Quando si caricano i dati in modo incrementale in un cubo di memorizzazione di aggregazione (ASO), è possibile unire manualmente le sezioni di dati incrementali nella sezione del cubo principale oppure utilizzare AUTOMERGE per configurare Essbase per unire automaticamente le sezioni durante il caricamento dei dati.

Unione automatica di porzioni di dati incrementali durante un caricamento dati in un cubo di memorizzazione di aggregazione

Utilizzando le impostazioni di configurazione AUTOMERGE e AUTOMERGEMAXSLICENUMBER, è possibile specificare se Essbase unisce automaticamente le sezioni di dati incrementali durante un caricamento dati in un cubo di memorizzazione di aggregazione.

Opzioni di impostazione della configurazione AUTOMERGE:

  • SEMPRE: specifica di unire automaticamente le sezioni di dati incrementali durante il caricamento dei dati in un cubo di memorizzazione di aggregazione. Per impostazione predefinita, le unioni vengono eseguite una volta ogni quattro slice di dati incrementali consecutive. Se, tuttavia, viene utilizzata l'impostazione di configurazione AUTOMERGEMAXSLICENUMBER, il processo di unione automatica viene attivato quando viene superato il valore AUTOMERGEMAXSLICENUMBER. La dimensione delle slice di dati incrementali non è un fattore nella selezione delle slice da unire.

    Il valore predefinito è SEMPRE.

  • MAI (NEVER) - Consente di non unire mai automaticamente le sezioni di dati incrementali durante il caricamento dei dati in un cubo di memorizzazione di aggregazione. Per unire manualmente le slice di dati incrementali, utilizzare l'istruzione MaxL alter database con la grammatica merge.

  • SELECTIVE (SELEZIONE) - Consente di attivare il processo di unione automatica incrementale della porzione di dati quando viene superato il numero di sezioni di dati incrementali specificate nell'impostazione di configurazione AUTOMERGEMAXSLICENUMBER. Se il numero di sezioni di dati incrementali nel caricamento dati non supera il valore di AUTOMERGEMAXSLICENUMBER, il processo di unione automatica non viene attivato.

Unione manuale di porzioni di dati incrementale

È possibile unire tutte le slice di dati incrementali nella slice principale oppure unire tutte le slice di dati incrementali in un'unica slice di dati senza cambiare la sezione principale. Per unire le slice, è necessario disporre degli stessi privilegi per il caricamento dei dati (Autorizzazione di aggiornamento del database o versioni successive).

Dopo aver scritto la nuova vista di input nel cubo, Essbase crea le viste di aggregazione per la porzione. Le viste create per la nuova slice sono un sottoinsieme delle viste presenti nella slice principale.

Nota

Impossibile esportare i dati durante l'esecuzione dell'unione.

Se i dati sono stati cancellati da un'area utilizzando l'operazione di cancellazione logica dell'area, che comporta un valore pari a zero per le celle cancellate, è possibile scegliere di rimuovere le celle a valore zero durante l'operazione di unione.

Per eseguire operazioni di unione, utilizzare l'istruzione MaxL alter database con la grammatica merge.

Ad esempio, per unire tutte le slice di dati incrementali alla slice principale, utilizzare questa istruzione:

alter database ASOsamp.Basic
   merge all data;

Per unire tutte le slice di dati incrementali nella slice principale e rimuovere le celle di valore zero, utilizzare questa istruzione:

alter database ASOsamp.Basic
   merge all data remove_zero_cells;

Per unire tutte le slice di dati incrementali in una singola slice di dati, utilizzare questa istruzione:

alter database ASOsamp.Basic
   merge incremental data;

Nota

Prima di copiare un'applicazione di memorizzazione di aggregazione, è necessario unire tutte le slice di dati incrementali nella slice principale. I dati nelle slice di dati incrementali non unite non vengono copiati.

Collegamenti correlati

AUTOMERGE

AUTOMERGEMAXSLICENUMBER

Modifica database (storage aggregato)

Sostituire i dati mediante il contenuto incrementale della sezione di dati

Per i data set di memorizzazione di aggregazione (ASO) sufficientemente piccoli da essere ricaricati completamente mantenendo una bassa latenza dei dati, Essbase può rimuovere il contenuto corrente di un cubo di memorizzazione di aggregazione e sostituire il cubo con il contenuto di un buffer di caricamento dati specificato.

La funzionalità di sostituzione atomica esegue la query dei vecchi contenuti del cubo sul nuovo contenuto senza interrompere il servizio. Il set di dati appena caricato viene aggregato per creare lo stesso set di viste esistente per il set di dati sostituito.

Essbase consente inoltre di sostituire atomicamente il contenuto di tutte le sezioni di dati incrementali in un cubo. Si consideri una situazione in cui i dati possono essere separati in un set di dati statici relativamente grande che non viene mai aggiornato e un set di dati relativamente piccolo e volatile per il quale i singoli aggiornamenti sono difficili da identificare ma sono limitati al set di dati volatili. Ad esempio, il set di dati statici di grandi dimensioni è costituito da dati delle transazioni cronologici degli ultimi tre anni; tuttavia, per i dati delle transazioni degli ultimi due mesi, gli utenti possono modificare una caratteristica di una transazione nel database di origine. Tracciare questi cambiamenti può essere proibitivo. È possibile caricare il data set statico come slice principale in un cubo e il data set volatile come una o più slice incrementali.

Quando si esegue il commit delle slice durante il caricamento incrementale dei dati ASO, Essbase rimuove il contenuto corrente di tutte le slice di dati incrementali e crea una nuova slice (utilizzando la grammatica aggiungi valori nella specifica di commit del buffer dell'istruzione MaxL database di importazione) con il contenuto di un buffer di caricamento dati specificato. Il set di dati appena caricato viene aumentato con viste aggregate basate sul set di viste esistenti nella slice principale.

Nota

Per utilizzare la grammatica override, creare un buffer di caricamento dati con la proprietà ignore_missing_values per ottenere prestazioni ottimali. Inoltre, è necessario assicurarsi che non vi siano conflitti tra i data set statici e volatili (ad esempio, non dovrebbe essere presente un valore in ciascun data set per la stessa cella).

Per sostituire il contenuto di un database o le slice di dati incrementali in un cubo, utilizzare l'istruzione MaxL database di importazione con la grammatica override.

Ad esempio, per sostituire il contenuto di un cubo, utilizzare questa istruzione:

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override all data;

Per sostituire il contenuto di tutte le slice di dati incrementali con una nuova slice, usare questa istruzione:

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override incremental data;

Nota

Se la sostituzione della sostituzione non riesce, Essbase continua a servire il vecchio set di dati.

In Smart View, il comando di sottomissione equivale all'utilizzo della funzionalità di caricamento dati incrementale con la grammatica override.

Durante l'esecuzione di un'operazione di invio, le nuove richieste di blocco, sblocco e recupero e blocco attenderanno il completamento dell'operazione di invio.

Vedere: Importa dati (storage aggregato)

Visualizza statistiche porzioni dati incrementali

Essbase fornisce statistiche sulla dimensione e sul numero di sezioni di dati di memorizzazione di aggregazione incrementale (ASO) e sul costo dell'esecuzione di query sulle sezioni di dati incrementali.

Il tempo necessario affinché una query acceda a tutte le sezioni di dati incrementali è espresso in percentuale (tra .01 e 1.0 inclusi). Se un cubo dispone di una slice principale e più slice di dati incrementali, una statistica di query pari a 0,66 indica che due terzi del tempo di query è stato impiegato per eseguire query sulle slice di dati incrementali e un terzo è stato impiegato per eseguire query sulla slice di dati principale. Se il costo dell'esecuzione di query sulle porzioni di dati incrementali è troppo elevato, è possibile unire le porzioni.

Per visualizzare informazioni sulle slice, utilizzare la grammatica list aggregate_storage slice_info nell'istruzione MaxL database delle query. Di seguito sono riportati alcuni esempi.

query database ASOsamp.Basic list aggregate_storage slice_info;

Database query (storage aggregato)

Rinnova membri in caricamenti dati memorizzazione di aggregazione

I membri rinnegati consentono la continuazione di un caricamento dati di memorizzazione di aggregazione (ASO) Essbase anche se una combinazione di membri specificata contiene membri mancanti o non validi.

Quando un caricamento dati rileva un membro mancante o non valido, il caricamento dati continua, con il valore dei dati del membro mancante o non valido memorizzato sotto il membro contrassegnato come membro rinviato nella dimensione. Se un membro rinviato non è impostato nella dimensione, il record viene rifiutato. Se esistono già dati per il membro rinviato, il funzionamento dipende dal fatto che si sia scelto di aggiungere valori o di sovrascrivere i valori durante la creazione del file delle regole di caricamento dati.

Ogni dimensione può avere un solo membro assegnato come membro rinnegato e il membro rinnegato deve essere un membro di livello 0.

Il seguente file di caricamento dati include un membro denominato SC:

Product  Measures   *Data*
NY,      Sales       100
SA,      Sales       200
SC,      Sales       300    

Nel seguente profilo, nessun membro è denominato SC; tuttavia, il membro denominato SA è impostato come membro rinnegato nella dimensione Prodotti:

Products (+)
   NY (+)
   SA (+)
Measures (+)
   Sales (+)
   COGS (+)

Durante il caricamento dei dati, il valore dei dati per la combinazione di membri SC e Vendite, pari a 300, viene caricato in SA e Vendite membro rinviato.

Nel file di caricamento dati seguente esistono due record per SC e Sales, ciascuno con valori diversi:

Product    Measures    *Data*
NY,        Sales        100
SA,        Sales        200
SC,        Sales        250
SC,        Sales        300 

Entrambi i valori per SC e Vendite (250 e 300) vengono caricati in SA e Vendite. Se si è scelto di aggiungere valori, il valore nella cella è 550 (250 + 300). Se si è scelto di sovrascrivere i valori, il valore nella cella è l'ultimo caricato; in questo caso, 300.

Gli esempi riportati di seguito illustrano il funzionamento dei membri rinnegati utilizzando il seguente file di caricamento dati:

Months    Transaction Type    Customer    Product    Price
Jan,      Sale,               Discard1,   Product1   300
Jan,      Sale,               Discard1,   Discard2   300
Jan,      Sale,               Customer1,  Discard2   300

Discard1 e Discard2 non esistono nel profilo.

  • Esempio 1:

    Se nella dimensione Cliente è presente il membro Customer1 contrassegnato come rinviato e nelle altre dimensioni non sono presenti membri rinnegati, solo il primo record viene caricato nell'intersezione seguente:

    Jan    Sale    Customer1(Ren)    Product1    300

    Gli altri due record sono stati rifiutati perché la dimensione Prodotto non dispone di un membro rinviato. I record rifiutati vengono registrati nel file di log dei membri rinnegati.

  • Esempio 2:

    Se nella dimensione Prodotto è presente il membro Product1 contrassegnato come rinviato e nelle altre dimensioni non sono presenti membri rinnegati, solo l'ultimo record viene caricato nell'intersezione seguente:

    Jan    Sale    Customer1    Product1(Ren)    300

    Gli altri due record sono stati rifiutati perché la dimensione Cliente non dispone di un membro rinviato. I record rifiutati vengono registrati nel file di log dei membri rinnegati.

  • Esempio 3:

    Se le dimensioni Cliente e Prodotto contengono membri rinnegati (Customer1 e Product1), tutti i record vengono caricati nell'intersezione seguente:

    Jan    Sale    Customer1(Ren)    Product1(Ren)    900 (or 300 if overwrite is enabled)

Esempio 4:

Nell'esempio 4, la dimensione Cliente ha RenMember1 contrassegnato come renegade e la dimensione Prodotto ha RenMember2 contrassegnato come renegade. Utilizzando il seguente file di caricamento dati, tutti i record vengono caricati perché sia le dimensioni Cliente che Prodotto hanno membri rinnegati.

Cliente1 e Prodotto1 non sono membri rinnegati. "Ignora1" e "Ignora2"non esistono nel profilo.

File caricamento dati:

Months  Transaction Type  Customer    Product   *Data*
Jan,     Sale,            Discard1,   Product1   300
Jan,     Sale,            Discard1,   Discard2   300
Jan,     Sale,            Customer1,  Discard2   300

I valori specificati nel file di caricamento dati per i membri ignorati vengono invece caricati automaticamente nei membri rinnegati designati:

Dati caricati:

Months  Measures   Customer          Product           Price
Jan     Sale       RenMember1(ren)   ProductR          300
Jan     Sale       RenMember1(ren)   RenMember2(ren)   300
Jan     Sale       CustomerR         RenMember2(ren)   300

Il log per i membri rinviati non è abilitato per impostazione predefinita. Per abilitare il log, utilizzare l'impostazione di configurazione RENEGADELOG, che, se impostata su TRUE, consente di registrare i membri caricati in un'intersezione membro rinnegato.

Nota

È possibile fare riferimento ai membri rinnegati negli script di calcolo e report. I membri rinnegati non sono supportati nelle operazioni di caricamento dati tabulari o di aggiornamento dei fogli di calcolo.

Differenze di dati di origine per i caricamenti dati di memorizzazione di aggregazione

Durante l'elaborazione dei record nei dati di origine in preparazione del caricamento dei valori nei cubi di memorizzazione di aggregazione (ASO), Essbase elabora i record solo per le intersezioni delle dimensioni di livello 0 in cui il membro non dispone di una formula.

L'esempio riportato di seguito mostra un'origine di dati con record solo per le intersezioni di livello 0. L'ultimo campo contiene valori dati e gli altri campi sono membri di livello 0 delle rispettive dimensioni.

Jan, Curr Year, Digital Cameras, CO, Original Price, 10784
Jan, Prev Year, Camcorders, CO, Original Price, 13573

Essbase ignora i record che specificano i membri di livello superiore e, alla fine del caricamento dati, visualizza il numero di record saltati.

Ad esempio, il record seguente verrà saltato perché il membro Mid West è un membro di livello 1:

Jan, Curr Year, Digital Cameras, Mid West, Original Price, 121301

L'ordinamento dei dati non è necessario perché Essbase legge e ordina i record internamente prima di eseguire il commit dei valori nel cubo.