In una tabella fact in Autonomous Data Warehouse vengono memorizzati i dati del cubo Essbase che dispone di una partizione federata. Se non si dispone di una tabella fact che soddisfa i requisiti per le partizioni federate, è necessario crearne una. È inoltre necessario comprendere cos'è una dimensione pivot, in modo da poterne selezionare una dal cubo Essbase.
Prima di iniziare questa sezione, creare un'applicazione e un cubo Essbase, se non se ne dispone già.
Per le partizioni federate, nella tabella fact vengono memorizzati i valori dei dati del cubo Essbase. Se non si dispone della tabella fact richiesta in Autonomous Data Warehouse, è necessario crearne una.
Prima di iniziare, accertarsi di disporre di uno schema vuoto per la tabella fact. Vedere Creare uno schema per le partizioni federate.
La tabella fact deve essere in formato pronto per l'uso in Essbase, ovvero deve soddisfare i requisiti relativi al contenuto e alla forma riportati di seguito.
Ognuna delle dimensioni del cubo (non attributo) deve essere rappresentata come una singola intestazione di colonna, ad eccezione di una delle dimensioni del cubo, in genere quella contenente misure o conti, che deve essere sottoposta a pivot in due o più colonne.
Nota:
In altre parti della documentazione, la dimensione che viene sottoposta a pivot verrà definita dimensione pivot.
La tabella fact deve essere composta da record univoci (senza duplicati), con una riga per sequenza di intersezioni di celle Essbase.
Se si ha familiarità con le esportazioni di dati Essbase, si noterà che la forma della tabella fact è esattamente come un'esportazione di colonne Essbase.
Analogamente all'esportazione di una colonna, la tabella fact deve includere:
una colonna per ogni dimensione (non attributo) del profilo (ad eccezione della dimensione pivot)
una colonna per ogni membro memorizzato della dimensione pivot
Di seguito è riportato un esempio di tabella fact in cui la dimensione delle misure è stata sottoposta a pivot; ciò significa che si tratta della dimensione pivot. La dimensione pivot influisce sulla forma della tabella fact, in quanto i membri memorizzati di tale dimensione diventano intestazioni di colonna: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY e ADDITIONS.
È possibile generare la tabella fact utilizzando SQL oppure crearla da un'esportazione dati Essbase. È possibile caricare i dati nella tabella fact utilizzando gli strumenti di Autonomous Data Warehouse oppure la funzionalità di caricamento dati di Essbase.
Tenere presenti le istruzioni aggiuntive per la creazione di una tabella fact riportate di seguito.
La tabella fact deve contenere meno di 1000 colonne.
Non includere colonne che verranno mappate in Essbase alle dimensioni attributo.
La precisione della tabella fact non deve essere inferiore a IEEE binary64 (doppia).
La tabella fact deve contenere stringhe internazionalizzate per i membri della dimensione, che utilizzano il tipo NVARCHAR2, con lunghezza caratteri di 1024 bit.
Esempio di creazione della tabella fact
Per creare una tabella fact in Autonomous Data Warehouse è possibile utilizzare SQL.
Utilizzando SQL Developer o lo strumento che si desidera, eseguire il login all'Autonomous Data Warehouse come proprietario dello schema (dal passo Creare uno schema per le partizioni federate).
Usare SQL per creare la tabella fact, se non se ne dispone già.
Ad esempio, il codice SQL riportato di seguito crea una tabella fact dall'esportazione dei dati dal cubo Essbase, Sample Basic.
CREATE TABLE "SAMP_FACT" ( "PRODUCT" NVARCHAR2(1024), "MARKET" NVARCHAR2(1024), "YEAR" NVARCHAR2(1024), "SCENARIO" NVARCHAR2(1024), "SALES" NUMBER(38,0), "COGS" NUMBER(38,0), "MARKETING" NUMBER(38,0), "PAYROLL" NUMBER(38,0), "MISC" NUMBER(38,0), "INITIAL_INVENTORY" NUMBER(38,0), "ADDITIONS" NUMBER(38,0) ) NOCOMPRESS LOGGING PARALLEL 4;
Note
Nell'esempio precedente, il nome della tabella fact è SAMP_FACT ed è basata su Sample Basic.
Per ottenere prestazioni ottimali, è necessario che tutte le colonne non numeriche nella tabella fact siano di tipo NVARCHAR2(1024) e tutte le colonne numeriche siano di tipo NUMBER.
Oracle consiglia di abilitare la creazione parallela dell'indice in Autonomous Data Warehouse, aggiungendo PARALLEL 4.
Le colonne di metadati non devono consentire l'inclusione di valori NULL.
Oracle consiglia NOCOMPRESS quando l'uso del cubo include processi di generazione dati, ad esempio il caricamento incrementale dei dati o gli aggiornamenti degli script batch. Se il cubo deve essere utilizzato principalmente per le operazioni di lettura, usare COMPRESS per ottimizzare la tabella fact per il reporting.
Se viene visualizzato l'errore di convalida seguente durante la creazione della tabella fact, eliminare le righe nulle.
ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in dimension("<Name_of_Column") star table key column
Per ottenere prestazioni ottimali, evitare di aggiungere vincoli specifici alla tabella se non è effettivamente necessario.
Nell'esempio precedente, il nome della tabella fact si basa su Sample Basic, disponibile nella galleria nel catalogo file di Essbase. È possibile esportare i dati da questo cubo di esempio o da qualsiasi altro cubo Essbase e caricarli per creare una tabella fact. Prima di eseguire questa operazione, è necessario impostare le credenziali per il caricamento dei dati in un'applicazione di partizione federata. Vedere Caricamento dati di partizione federata per l'impostazione delle credenziali e le informazioni su come esportare i dati in formato DBMS utilizzando il comando DATAEXPORT.
Durante la progettazione di una partizione federata, è necessario selezionare la dimensione pivot. Una dimensione pivot è una dimensione che viene designata nel profilo del cubo Essbase per rappresentare valori di dati numerici.
La dimensione pivot non deve necessariamente essere del tipo Misura o Conto, ma può esserlo.
Tutti i membri memorizzati della dimensione pivot devono essere mappati alle colonne della tabella fact che rappresentano i valori dei dati numerici in Autonomous Data Warehouse.
Se è necessario eseguire script di calcolo di memorizzazione a blocchi (BSO) Essbase, selezionare una dimensione densa come dimensione pivot. Gli script di calcolo non sono supportati per le partizioni federate se la dimensione pivot è una dimensione sparsa.
La dimensione pivot deve contenere nomi membro statici e un numero di membri non molto elevato. Motivo: quando si modifica la dimensione pivot nel profilo del cubo Essbase (ad esempio, aggiungendo o rinominando i membri memorizzati), è necessario effettuare i corrispondenti aggiornamenti manuali nella tabella fact in Autonomous Data Warehouse ed è anche necessario creare la partizione federata.
Le dimensioni Essbase con membri che richiedono formule complesse e dinamiche (quali "Inventario di apertura" e "Inventario di chiusura", utilizzando Sample Basic come esempio) non devono essere selezionate come dimensioni pivot.
La dimensione pivot selezionata viene fornita al momento della creazione di una partizione federata.
Il database Oracle ha un limite di 1.000 colonne e la dimensione pivot eredita questo limite. Determinare il numero di membri di colonna idonei nella dimensione pivot per accertarsi di non raggiungere il limite. La somma data dal numero di potenziali combinazioni di membri memorizzate nella dimensione pivot e dal numero di dimensioni nel cubo deve essere minore o uguale a 1.000.
Per i cubi di memorizzazione di aggregazione, le dimensioni contenenti gerarchie di membri memorizzati a più livelli non devono essere selezionate come dimensione pivot. Selezionare una dimensione pivot con gerarchie dinamiche oppure una gerarchia memorizzata che sia una gerarchia piatta a livello singolo (in cui tutti i membri sono membri memorizzati a livello 0).