Un tabel de fapte din Autonomous Data Warehouse stochează datele cubului Essbase care are o partiţie federativă. Dacă nu aveţi un tabel de fapte care întruneşte cerinţele pentru o partiţie federativă, trebuie să creaţi unul. De asemenea, trebuie să înţelegeţi ce este o dimensiune Pivot, astfel încât să puteţi selecta una din cubul Essbase.
Înainte de a începe această secţiune, creaţi o aplicaţie şi un cub Essbase, dacă nu le-aţi creat deja.
Pentru partiţiile federative, tabelul de fapte stochează valorile datelor cubului Essbase. Dacă nu aveţi tabel de fapte obligatoriu în Autonomous Data Warehouse, trebuie să creaţi unul.
Înainte de a începe, verificaţi dacă aveţi o schemă goală pentru tabelul de fapte. Consultaţi Crearea unei scheme pentru partiţii federative.
Tabelul de fapte trebui să fie în formatul compatibil cu Essbase, adică trebuie să îndeplinească următoarele cerinţe pentru conţinutul şi configuraţia da:
Fiecare dimensiune (fără atribute) a cubului trebuie reprezentată ca un antet cu o singură coloană, cu excepţia uneia dintre dimensiunile cubului (de obicei cea care conţine măsuri/conturi) care trebuie pivotată în două sau mai multe coloane.
Notă:
În alte secţiuni din documentaţie, dimensiunea pivotată va fi denumită dimensiunea Pivot.
Tabelul de fapte trebuie să fie compus din înregistrări unice (fără duplicate), cu un rând per secvenţă de intersecţii de celule Essbase.
Dacă sunteţi familiarizat cu exporturile de date Essbase, veţi observa că configuraţia tabelului de fapte este exact ca un Essbase export de coloane.
La fel ca un export de coloane, tabelul de fapte trebuie să includă:
O coloană pentru fiecare dimensiune (fără atribute) a structurii (cu excepţia dimensiunii Pivot)
o coloană pentru fiecare membru stocat al dimensiunii Pivot
În continuare este prezentat un exemplu de tabel de fapte în care dimensiunea Măsuri a fost pivotată, ceea ce înseamnă că este dimensiunea Pivot. Dimensiunea Pivot afectează configuraţia tabelului de fapte, deoarece membrii stocaţi ai dimensiunii devin anteturi de coloană: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY şi ADDITIONS.
Puteţi genera tabelul de fapte utilizând SQL sau îl puteţi crea dintr-un export de date Essbase. Puteţi să încărcaţi date în tabelul de fapte utilizând instrumentele Autonomous Data Warehouse sau funcţionalitatea Essbase de încărcare a datelor.
Instrucţiunile suplimentare pentru generarea unui tabel de fapte includ:
Tabelul cu fapte trebuie să aibă mai puţin de 1000 de coloane.
Nu includeţi coloanele care vor fi mapate în Essbase la dimensiunile Atribut.
Tabelul de fapte nu trebuie să aibă o precizie mai mică decât IEEE binary64 (dublu).
Tabelul de fapte trebuie să aibă şiruri internaţionalizate pentru membrii dimensiunii, utilizând tipul NVARCHAR2, cu o lungime a caracterelor de 1024 bit.
Exemplu de creare a unui tabel de fapte
Pentru a crea un tabel de fapte în Autonomous Data Warehouse, puteţi să utilizaţi SQL.
Utilizând SQL Developer sau un alt instrument, conectaţi-vă la Autonomous Data Warehouse ca responsabil de schemă (din pasul Crearea unei scheme pentru partiţii federative).
Utilizaţi SQL pentru a crea tabelul de fapte dacă nu aveţi deja unul.
De exemplu, următorul SQL creează un tabel de fapte din exportul datelor din cubul 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
În exemplul de mai sus, numele tabelului de fapte este SAMP_FACT şi este bazat pe Sample Basic.
Pentru cea mai bună performanţă, toate coloanele non-numerice din tabelul de fapte trebuie să fie de tipul NVARCHAR2(1024), iar toate coloanele numerice trebuie să fie de tipul NUMBER.
Oracle recomandă activarea creării paralele a indexului în Autonomous Data Warehouse, prin adăugarea PARALLEL 4.
Coloanele metadatelor nu ar trebui să permită includerea valorilor NULL.
Oracle recomandă NOCOMPRESS atunci când utilizarea cubului include procese generative de date, cum ar fi încărcarea incrementală a datelor sau actualizări ale seturilor de script-uri. În cazul în care cubul va fi folosit în principal pentru operaţiuni de citire, utilizaţi COMPRESS pentru a optimiza tabelul de fapte pentru raportare.
Dacă primiţi următoarea eroare de validare la crearea tabelului de fapte, ştergeţi rândurile nule.
ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in dimension("<Name_of_Column") star table key column
Pentru performanţe optime, evitaţi să adăugaţi restricţii specifice pentru tabel, fără a fi necesar în mod clar.
În exemplul de mai sus, numele tabelului de fapte este bazat pe Sample Basic, care este disponibil în galerie în catalogul de fişiere Essbase. Puteţi exporta datele din acest eşantion de cub sau din orice alt cub Essbase şi le puteţi încărca pentru a genera un tabel de fapte. Înainte de a putea face acest lucru, va trebui să configuraţi acreditările pentru încărcarea datelor într-o aplicaţie cu partiţii federative. Consultaţi Încărcarea datelor de pe o partiţie federativă pentru a configura acreditările şi aflaţi cum să exportaţi datele în format DBMS utilizând comanda DATAEXPORT .
În cadrul proiectării unei partiţii federative, trebuie să selectaţi dimensiunea Pivot. O dimensiune Pivot este o dimensiune pe care o desemnaţi din structura cubului Essbase să reprezinte valorile datelor numerice.
Dimensiunea Pivot nu trebuie să fie măsuri/conturi, dar poate fi.
Toţi membrii stocaţi ai dimensiunii Pivot trebuie să se mapeze la coloanele tabelului de fapte care reprezintă valorile datelor numerice din Autonomous Data Warehouse.
Dacă trebuie să rulaţi script-urile de calcul pentru stocarea în blocuri (BSO) Essbase, selectaţi o dimensiune densă ca dimensiune Pivot. Script-urile de calcul nu sunt acceptate pentru partiţiile federative dacă dimensiunea Pivot este dispersată.
Dimensiunea Pivot trebuie să aibă nume de membri destul de statice şi un număr de membri nu foarte mare. Motiv: Modificarea dimensiunii Pivot în structura cubului Essbase (de exemplu, prin adăugarea sau redenumirea membrilor stocaţi) necesită actualizări corespunzătoare, manuale, pentru tabelul de fapte din Autonomous Data Warehouse şi necesită şi recrearea partiţiei federative.
Dimensiunile Essbase care includ membrii ce necesită formule complexe, dinamice (cum ar fi "Inventar de deschidere" şi "Inventar de încheiere," utilizând Sample Basic ca exemplu) nu trebuie să fie selectate ca dimensiunea Pivot.
Furnizaţi dimensiunea Pivot selectată la crearea unei partiţii ca element al unei federaţii.
Oracle Database are o limită de 1.000 de coloane, iar dimensiunea Pivot moşteneşte această limită. Stabiliţi numărul de membrii ai coloanelor eligibile din dimensiunea Pivot, pentru a vă asigura că nu vă confruntaţi cu limita. Numărul de combinaţii posibile de membri stocaţi în dimensiunea Pivot, plus numărul de dimensiuni din cub trebuie să fie mai mic sau egal cu 1.000.
Pentru cuburile cu stocare agregată, dimensiunile care conţin ierarhii de membri stocate pe mai multe niveluri nu trebuie selectate ca dimensiune Pivot. Selectaţi o dimensiune Pivot cu ierarhii dinamice sau o ierarhie stocată care este o ierarhie aplatizată, cu un singur nivel (în care toţi membrii sunt membri stocaţi pe nivelul 0).