Identificare la dimensione pivot e impostare la tabella fatti
Una tabella fact in Autonomous AI Lakehouse memorizza i dati del cubo federato. Se non si dispone della tabella fact che soddisfa i requisiti per le partizioni federate e non si consente a Essbase di gestire la tabella fact, è necessario crearne una.
Nota
Se si lascia che Essbase gestisca la fact table, Essbase crea automaticamente la fact table.
Prima di iniziare questa sezione, creare un'applicazione e un cubo Essbase, se non se ne dispone già.
Identificare la dimensione pivot
Durante la progettazione di un cubo federato, è 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 di dati numerici in Autonomous AI Lakehouse.
-
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 i cubi federati 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 membri memorizzati), è necessario effettuare i corrispondenti aggiornamenti manuali nella tabella fact in Autonomous AI Lakehouse ed sono anche necessari 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 specificata 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 federati basati su ASO, Oracle consiglia di non selezionare come dimensione pivot le dimensioni contenenti gerarchie di membri memorizzate su più livelli. 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).
Creare la tabella fact
Una tabella fact in Autonomous AI Lakehouse memorizza tutti i valori di dati di un cubo federato. Se non si dispone già della fact table richiesta e il cubo federato non è gestito da Essbase, è necessario crearne uno.
Nota
Questo argomento non è obbligatorio se si lascia che Essbase gestisca la fact table, poiché Essbase crea automaticamente la fact table. Vedere Opzioni di caricamento dati per cubi federati.Prima di iniziare, assicurarsi di disporre di uno schema per la fact table. Vedere Creare uno schema per i cubi federati.
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. Questa eccezione è denominata 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 dei dati di Essbase, si noterà che la forma della tabella fact è esattamente come un'esportazione della colonna di 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 misure è stata sottoponi 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 i tool di Autonomous AI Lakehouse oppure la funzione 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 AI Lakehouse è possibile utilizzare SQL.
-
Utilizzando SQL Developer o il proprio strumento preferito, eseguire il login a Autonomous AI Lakehouse come proprietario dello schema (dal passo Creare uno schema per i cubi federati).
-
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 d'abilitare la creazione parallela dell'indice in Autonomous AI Lakehouse, 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 gallery nel catalogo dei 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 poter eseguire questa operazione, sarà necessario impostare le credenziali per il caricamento dei dati in un cubo federato. Fare riferimento a Imposta credenziali per cubi federati per impostare le credenziali e informazioni su come esportare i dati nel formato DBMS utilizzando il comando DATAEXPORT.