Tento (varuji že dost zjednodušený) článek popisuje, co je dimenze a tabulka faktů, jak se od sebe liší a hlavně jak s tím pracovat v Power BI.

V našem příkladu vyjdeme z těchto tabulek – v jedné jsou produkty, ve druhé jsou položky na objednávkách a ve třetí objednávky. Vidíme, že:

  • Tabulky se logicky dají propojit pomocí čísel objednávek a čísel produktů (červená a zelená barva).
  • Tabulce vlevo budeme říkat tabulka faktová, další dvě tabulky jsou dimenze.

Jak se tedy liší tabulky faktů a dimenze?

Tabulka faktů

  • Tabulka faktů je tabulka, která typicky:
    • obsahuje hodnoty, které chceme počítat
    • je delší než dimenze, protože se v ní mnohokrát opakuje to, co je v dimenzích jen jednou (např. ID objednávky nebo ID produktu).

Dimenze

  • Zatímco dimenze je tabulka, která k informacím z tabulky faktů dodává nějaké další informace. Třeba k ID produktu “11” dodává informaci o tom, že stojí 91 a je to “Šlehačka”.
  • Místo slova “Dimenze” používá řada uživatelů slovo “Číselník” – je to ale vpodstatě to samé.

Power BI

V reportech, které z datových modelů vznikají, prakticky vždy využíváme jak sloupce z dimenzí, tak z tabulek faktů.

Pojďme tabulky načíst do Power BI. Vypadají pak asi takhle:

Teď musíme sami definovat, které sloupečky jsou propojené. Těmto propojením se říká relace a vytvoří se prostě tak, že přetáhneme relevantní sloupec z jedné tabulky do druhé.

Těmto “propojovacím” sloupcům se říká “klíč”. Klíčový sloupec musí být v dimenzi vždy unikátní, ve faktové tabulce se obvykle opakuje.

Všimněte si, že čára (relace) se vytvořila tak, že na jednom konci je jednička a na druhém hvězdička. Hvězdička je na straně kde se hodnoty opakují, tedy u faktové tabulky, a jednička na straně dimenze.

Reporty

A co to znamená pro tvorbu reportů (a v případě Power Pivotu kontingenčních tabulek)?

Obvykle platí, že sloupce z faktových tabulek dáváme do polí nazvaných jako “Hodnoty” nebo podobně – tedy tam, kam se dávají čísla, která chceme zobrazovat.

Sloupce z dimenzí obvykle dáváme do polí, podle kterých se člení – tedy “Řádky”, “Osa X”, “Kategorie” apod.

Co ještě platí u dimenzí?

  • Některá tabulka může být současně dimenzí i tabulkou faktů (i když z pohledu výkonnosti tohle nebývá úplně nejvýhodnější). V tomto případě je tabulka “Orders” dimenzí pro tabulku “Sales”, ale současně tabulkou faktů pro “Customers”.
  • Dimenze může být (a často bývá) připojená k více faktovým tabulkám.
  • Trochu zvláštním typem dimenze je datumová dimenze – více o ní tady.