Nastavení tabulky faktů a určení kontingenční dimenze

V tabulce faktů ve službě Autonomous Data Warehouse jsou ukládána data krychle Essbase, která má federovaný oddíl. Pokud nemáte tabulku faktů, která splňuje požadavky pro federované oddíly, musíte ji vytvořit. Musíte také porozumět tomu, co je to kontingenční dimenze, abyste ji mohli z krychle Essbase vybrat.

Před spuštěním tohoto oddílu vytvořte krychli a aplikaci Essbase, pokud je ještě nemáte.

Vytvoření tabulky faktů

federovaných oddílů jsou v tabulce faktů uloženy hodnoty dat krychle Essbase. Pokud ve službě Autonomous Data Warehouse nemáte požadovanou tabulku faktů, je nutné ji vytvořit.

Než začnete, ujistěte se, že máte k dispozici prázdné schéma pro tabulku faktů. Prostudujte si téma Vytvoření schématu pro federované oddíly.

Tabulka faktů musí být ve formátu připraveném pro aplikaci Essbase, což znamená, že splňuje následující požadavky na obsah a konfiguraci:

  • Každá z (neatributových) dimenzí krychle musí být reprezentována jako záhlaví jednoho sloupce, s výjimkou toho, že na jedné z dimenzí krychle (obvykle ta, která obsahuje ukazatele/účty) musí být provedena kontingence do dvou nebo více sloupců.

    Poznámka:

    Jinde v dokumentaci se dimenze, na která byla provedena kontingence, označuje jako kontingenční dimenze.

  • Tabulka faktů se musí skládat z jedinečných záznamů (bez duplicit) a musí mít jeden řádek pro každou sekvenci průniků buněk Essbase.

Pokud jste obeznámeni s exportem dat Essbase, všimnete si, že konfigurace tabulky faktů je přesně taková, jako je u Essbase export sloupce.

Podobně jako export sloupců musí tabulka faktů obsahovat:

  • jeden sloupec pro každou neatributovou dimenzi (kromě kontingenční dimenze)

  • jeden sloupec pro každý uložený prvek kontingenční dimenze

Následuje příklad tabulky faktů, ve které je dimenze ukazatelů, na které byla provedena kontingence, což znamená, že se jedná o kontingenční dimenze. Kontingenční dimenze ovlivňuje konfiguraci tabulky faktů, protože uložené prvky této dimenze se stávají záhlavími sloupců: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY a ADDITIONS.


Tabulka faktů s denormalizovanými daty a metadaty

Tabulku faktů můžete vytvořit buď pomocí SQL, nebo ji můžete vytvořit z exportu dat z Essbase. Data můžete do tabulky faktů načíst pomocí nástrojů Autonomous Data Warehouse nebo pomocí Essbase funkce pro načítání dat.

Mezi další pokyny pro sestavení tabulky faktů patří:

  • Tabulka faktů musí mít méně než 1000 sloupců.

  • Nezahrnujte sloupce, které budou v databázi Essbase mapovány na dimenze atributů.

  • Tabulka faktů by neměla mít menší přesnost než IEEE binary64 (dvojitá).

  • Tabulka faktů by pro prvky dimenze měla mít internacionalizované řetězce s použitím typu NVARCHAR2 s délkou znaku 1024 bitů.

Příklad vytvoření tabulky faktů

Pokud chcete vytvořit tabulku faktů v Autonomous Data Warehouse, můžete k tomu použít SQL.

  1. Pomocí nástroje SQL Developer nebo vámi zvoleného nástroje se přihlaste do služby Autonomous Data Warehouse jako vlastník schématu (od kroku Vytvoření schématu pro federované oddíly).

  2. Použijte jazyk SQL k vytvoření tabulky faktů, pokud ji ještě nemáte.

    Například následující příkaz SQL vytvoří tabulku faktů z exportu dat z krychle Essbase pojmenované 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

  • Ve výše uvedeném příkladu má tabulka faktů název SAMP_FACT a je založena na krychli Sample Basic.

  • Pro dosažení nejlepšího výkonu by všechny nečíselné sloupce v tabulce faktů měly být typu NVARCHAR2(1024) a všechny číselné sloupce by měly být typu NUMBER.

  • Společnost Oracle doporučuje povolit paralelní vytváření indexu ve službě Autonomous Data Warehouse přidáním příkazu PARALLEL 4.

  • Sloupce metadat by neměly umožňovat zahrnutí hodnot NULL.

  • Společnost Oracle doporučuje použít klauzuli NOCOMPRESS, pokud použití krychle zahrnuje procesy generování dat, jako jsou přírůstkové načítání dat nebo dávkové aktualizace skriptů. Pokud má být krychle používána převážně pro operace čtení, použijte klauzuli COMPRESS k optimalizaci tabulky faktů pro vytváření sestav.

  • Pokud se při vytváření tabulky faktů zobrazí následující chyba ověření, odstraňte řádky s hodnotami null.

    ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in
          dimension("<Name_of_Column") star table key column
  • Chcete-li dosáhnout nejlepšího výkonu, nepřidávejte do tabulky žádná specifická omezení, pokud to není nezbytně nutné.

  • Ve výše uvedeném příkladu je název tabulky faktů založen na krychli Sample Basic, kterou nabízí galerie v katalogu souborů systému Essbase. Můžete exportovat data z této ukázkové krychle nebo jakékoli jiné krychle Essbase a načíst je za účelem sestavení tabulky faktů. Než tak budete moci učinit, musíte nejprve nastavit ověřovací údaje pro načítání dat do aplikace federovaného oddílu. Prostudujte si téma Načtení dat federovaného oddílu, ve které zjistíte, jak nastavit ověřovací údaje a exportovat data do formátu DBMS pomocí příkazu DATAEXPORT.

Určení kontingenční dimenze

V rámci návrhu federovaného oddílu je nutné vybrat kontingenční dimenzi. Kontingenční dimenze je dimenze, kterou určíte z osnovy krychle Essbase a která reprezentuje číselné hodnoty dat.

  • Kontingenční dimenze nemusí, ale může být dimenze ukazatelů/účtů.

  • Všechny uložené prvky kontingenční dimenze se musejí namapovat na sloupce tabulky faktů, které představují vaše číselné hodnoty dat ve službě Autonomous Data Warehouse.

  • Pokud potřebujete spustit skripty pro výpočet blokového úložiště (BSO) Essbase, vyberte jako kontingenční dimenzi hustou dimenzi. Pokud je kontingenční dimenze řídká, výpočetní skripty nejsou u federovaných oddílů podporovány.

  • Kontingenční dimenze by měla mít statické názvy prvků, ale zároveň ne příliš velký počet prvků. Důvod: Změna kontingenční dimenze v osnově krychle Essbase (například přidáním nebo přejmenováním uložených prvků) vyžaduje odpovídající ruční aktualizace tabulky faktů ve službě Autonomous Data Warehouse a také opětovné vytvoření federovaného oddílu.

  • Dimenze Essbase, které obsahují prvky vyžadující složité, dynamické vzorce (například „Počáteční zásoby“ a „Konečné zásoby“ na příkladu Sample Basic), by neměly být vybrány jako kontingenční dimenze.

  • Vybranou kontingenční dimenzi zadáte v okamžiku vytvoření federovaného oddílu.

  • Databáze Oracle má limit 1 000 sloupců a kontingenční dimenze tento limit přebírá. Určete počet způsobilých prvků sloupce v kontingenční dimenzi, abyste zajistili, že nenarazíte na limit. Počet možných kombinací uložených prvků v kontingenční dimenzi plus počet dimenzí v krychli by měl být menší nebo roven 1 000.

  • U krychlí agregovaného úložiště by dimenze obsahující víceúrovňové hierarchie uložených prvků neměly být vybrány jako kontingenční dimenze. Vyberte kontingenční dimenzi s dynamickými hierarchiemi nebo uloženou hierarchii, která je prostou, jednoúrovňovou hierarchií (v níž jsou všechny prvky uloženými prvky úrovně 0).