Nastavenie tabuľky faktov a identifikácia dimenzie kontingenčnej tabuľky

V tabuľke faktov v databáze Autonomous Data Warehouse sú uložené dáta kocky Essbase, ktorá má federovanú partíciu. Ak nemáte tabuľku faktov, ktorá spĺňa požiadavky na federované partície, je potrebné ju vytvoriť. Potrebujete tiež vedieť, čo je dimenzia kontingenčnej tabuľky, aby ste ju mohli vybrať z kocky Essbase.

Pred spustením tejto sekcie vytvorte aplikáciu a kocku Essbase (ak ich ešte nemáte).

Vytvorenie tabuľky faktov

V prípade federovaných partícií tabuľka faktov uchováva dátové hodnoty kocky Essbase. Ak v databáze Autonomous Data Warehouse nemáte požadovanú tabuľku faktov, je potrebné ju vytvoriť.

Skôr ako začnete, uistite sa, že pre tabuľku faktov máte prázdnu schému. Pozrite si časť Vytvorenie schémy pre federované partície.

Tabuľka faktov musí byť vo formáte pripravenom na použitie so službou Essbase, čo znamená, že musí spĺňať nasledujúce požiadavky na obsah a tvar:

  • Každá z dimenzií kocky bez atribútov musí byť vyjadrená ako jedna hlavička stĺpca s tou výnimkou, že jedna z dimenzií kocky (zvyčajne tá, čo obsahuje miery/účty) musí byť kontingenčnou pre dva alebo viaceré stĺpce.

    Poznámka:

    V ostatných častiach dokumentácie sa dimenzia, ktorá je dimenziou kontingenčnej tabuľky, bude označovať ako dimenzia kontigenčnej tabuľky.

  • Tabuľka faktov musí pozostávať z jednoznačných záznamov (nesmú to byť duplikáty) s jedným riadkom na sekvenciu prienikov buniek služby Essbase.

Ak dobre poznáte export dát zo služby Essbase, všimnete si, že tvar tabuľky faktov je rovnaký ako export stĺpcov Essbase.

Podobne ako v prípade exportu stĺpcov tabuľka faktov musí zahŕňať:

  • jeden stĺpec pre každú dimenziu štruktúry bez atribútov (okrem dimenzie kontingenčnej tabuľky)

  • jeden stĺpec pre každý uložený člen dimenzie kontingenčnej tabuľky

Nasleduje príklad tabuľky faktov, v ktorej dimenzia mier je kontingenčnou dimenziou, čo znamená, že je to dimenzia kontingenčnej tabuľky. Dimenzia kontigenčnej tabuľky ovplyvňuje tvar tabuľky faktov, pretože uložené členy dimenzie sa stanú hlavičkami stĺpcov: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY a ADDITIONS.


Tabuľka faktov s denormalizovanými dátami a metadátami

Tabuľku faktov môžete zostaviť pomocou príkazu SQL alebo ju môžete vytvoriť z exportu dát služby Essbase. Dáta môžete zaviesť do tabuľky faktov pomocou nástrojov databázy Autonomous Data Warehouse alebo pomocou funkcionality zavedenia dát v Essbase.

Ďalšie pokyny na vytvorenie tabuľky faktov:

  • Tabuľka faktov musí mať menej než 1 000 stĺpcov.

  • Nezahŕňajte stĺpce, ktoré sa v službe Essbase budú mapovať k dimenziám atribútov.

  • Tabuľka faktov nesmie mať nižšiu presnosť, ako je IEEE binary64 (double).

  • Tabuľka faktov musí mať internacionalizované reťazce pre členy dimenzií s použitím typu NVARCHAR2 a 1 024-bitovou dĺžkou znakov.

Príklad vytvorenia tabuľky faktov

Ak chcete vytvoriť tabuľku faktov v databáze Autonomous Data Warehouse, môžete použiť príkaz SQL.

  1. Pomocou nástroja SQL Developer alebo nástroja podľa vlastného výberu sa prihláste v databáze Autonomous Data Warehouse ako vlastník schémy (z kroku Vytvorenie schémy pre federované partície).

  2. Pomocou príkazu SQL vytvorte tabuľku faktov, ak ju ešte nemáte.

    Napríklad nasledujúci príkaz SQL vytvorí tabuľku faktov z exportu dát z kocky 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;

Poznámky

  • Názov tabuľky faktov v príklade vyššie je SAMP_FACT a je založený na kocke Sample Basic.

  • Na zaistenie čo najlepšieho výkonu by všetky nenumerické stĺpce v tabuľke faktov mali byť typu NVARCHAR2(1024) a všetky numerické stĺpce by mal byť typu NUMBER.

  • Spoločnosť Oracle odporúča aktiváciu paralelného vytvárania indexu v databáze Autonomous Data Warehouse pridaním príkazu PARALLEL 4.

  • Stĺpce metadát by nemali umožňovať zahrnutie hodnôt NULL.

  • Spoločnosť Oracle odporúča príkaz NOCOMPRESS, ak používanie kocky zahŕňa procesy generovania dát, napríklad prírastkové zavedenie dát alebo aktualizácie dávkových skriptov. Ak sa má kocka používať hlavne na operácie čítania, pomocou príkazu COMPRESS optimalizujte tabuľku faktov na vytváranie zostáv.

  • Ak sa pri vytváraní tabuľky faktov vráti nasledujúca chyba overenia, odstráňte riadky s hodnotou null.

    ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in
          dimension("<Name_of_Column") star table key column
  • Na dosiahnutie čo najlepšieho výkonu sa vyhnite pridávaniu špecifických obmedzení pre tabuľku, ak to nie je nevyhnutné.

  • Názov tabuľky faktov v príklade vyššie je založený na kocke Sample Basic, ktorá je dostupná v galérii v katalógu súborov Essbase. Dáta môžete exportovať z tejto vzorovej kocky alebo ľubovoľnej inej kocky Essbase, zaviesť ich a vytvoriť tabuľku faktov. Skôr ako to budete môcť urobiť, bude potrebné nastaviť doklady potrebné na zavedenie dát do aplikácie federovanej partície. Pozrite si časť Zavedenie dát federovaných partícií, kde nájdete informácie, ako nastaviť doklady a ako exportovať dáta vo formáte DBMS pomocou príkazu DATAEXPORT.

Identifikácia dimenzie kontingenčnej tabuľky

Neoddeliteľnou súčasťou návrhu federovanej partície je výber dimenzie kontingenčnej tabuľky. Dimenzia kontingenčnej tabuľky je dimenzia, ktorú určíte v štruktúre kocky Essbase, aby predstavovala hodnoty numerických dát.

  • Dimenzia kontingenčnej tabuľky nemusí byť mierami alebo účtami, ale môže byť.

  • Všetky uložené členy dimenzie kontingenčnej tabuľky musia byť mapované k stĺpcom tabuľky faktov, ktoré predstavujú hodnoty numerických dát v databáze Autonomous Data Warehouse.

  • Ak potrebujete spustiť skripty výpočtov blokového ukladacieho priestoru Essbase, ako dimenziu kontingenčnej tabuľky vyberte hustú dimenziu. Ak ide o riedku dimenziu kontingenčnej tabuľky, skripty výpočtov nie sú vo federovaných partíciách podporované.

  • Dimenzia kontingenčnej tabuľky by mala mať pomerne statické názvy členov a nie veľmi veľký počet členov. Dôvod: Po zmene dimenzie kontingenčnej tabuľky v štruktúre kocky Essbase (napríklad pridaním alebo premenovaním uložených členov) je potrebné vykonať zodpovedajúce manuálne aktualizácie tabuľky faktov v databáze Autonomous Data Warehouse a znova vytvoriť federovanú partíciu.

  • Dimenzie Essbase, ktoré zahŕňajú členy vyžadujúce komplexné dynamické vzorce (napríklad „Opening Inventory“ a „Ending Inventory“ v príklade s kockou Sample Basic), by nemali byť vybraté ako dimenzia kontingenčnej tabuľky.

  • Vybratú dimenziu kontingenčnej tabuľky poskytnete pri vytváraní federovanej partície.

  • Databáza Oracle má limit 1 000 stĺpcov a dimenzia kontingenčnej tabuľky tento limit dedí. Určte počet oprávnených členov stĺpca v dimenzii kontingenčnej tabuľky, aby nedošlo k prekročeniu limitu. Počet možných kombinácií uložených členov v dimenzii kontingenčnej tabuľky spolu s počtom dimenzií v kocke by mal byť 1 000 alebo menej.

  • Pre kocky ukladacieho priestoru agregácie by nemali byť ako dimenzie kontingenčnej tabuľky vybraté tie dimenzie, ktoré obsahujú uložené viacúrovňové hierarchie členov. Vyberte dimenziu kontingenčnej tabuľky s dynamickými hierarchiami alebo uloženou hierarchiou, ktorá je typom plochej jednoúrovňovej hierarchie (v ktorej sú všetky členy uložené na úrovni 0).