Dimenzionální modelování v Microsoft Fabric Warehouse: Tabulky faktů

Platí pro:✅ Koncový bod sql Analytics a sklad v Microsoft Fabric

Poznámka:

Tento článek je součástí řady dimenzionálních modelů článků. Tato série se zaměřuje na pokyny a osvědčené postupy návrhu související s dimenzionálním modelováním ve službě Microsoft Fabric Warehouse.

Tento článek obsahuje pokyny a osvědčené postupy pro navrhování tabulek faktů v dimenzionálním modelu. Poskytuje praktické pokyny pro Warehouse v Microsoft Fabric, což je prostředí, které podporuje mnoho funkcí T-SQL, jako je vytváření tabulek a správa dat v tabulkách. Takže máte úplnou kontrolu nad vytvářením dimenzionálních tabulek modelu a jejich načítáním s daty.

Poznámka:

V tomto článku se termín datový sklad týká podnikového datového skladu, který poskytuje komplexní integraci důležitých dat v rámci organizace. Naproti tomu samostatný termínový sklad odkazuje na sklad Infrastruktury, což je nabídka relační databáze SaaS (software jako služba), kterou můžete použít k implementaci datového skladu. Pro přehlednost se v tomto článku uvádí jako Fabric Warehouse.

Tip

Pokud jste nezkušení s dimenzionálním modelováním, zvažte tuto řadu článků, které jste v prvním kroku. Účelem není poskytnout kompletní diskuzi o návrhu dimenzionálního modelování. Další informace najdete přímo na široce přijímaný publikovaný obsah, například The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3. vydání, 2013) od Ralph Kimball a dalších.

V dimenzionálním modelu tabulka faktů ukládá měření přidružená k pozorováním nebo událostem. Může ukládat prodejní objednávky, zůstatky zásob, směnné kurzy, teploty a další.

Tabulky faktů zahrnují míry, které jsou obvykle číselné sloupce, jako je množství prodejní objednávky. Analytické dotazy shrnují míry (pomocí součtu, počtu, průměru a dalších funkcí) v kontextu filtrů dimenzí a seskupování.

Tabulky faktů také obsahují klíče dimenzí, které určují rozměrnost faktů. Hodnoty klíče dimenze určují členitost faktů, což je atomická úroveň, pomocí které jsou definována fakta. Například klíč dimenze data objednávky v tabulce faktů prodeje nastavuje členitost faktů na úrovni data, zatímco klíč dimenze cílového data v tabulce faktů cíle prodeje může nastavit členitost na úrovni čtvrtletí.

Poznámka:

I když je možné ukládat fakta s vyšší členitostí, není snadné rozdělit hodnoty měr na nižší úrovně členitosti (pokud je to potřeba). Větší objemy dat společně s analytickými požadavky můžou poskytnout platný důvod k ukládání faktů s vyšší členitostí, ale na úkor podrobné analýzy.

Pokud chcete snadno identifikovat tabulky faktů, obvykle předponu jejich názvů pomocí f_ nebo Fact_.

Struktura tabulky faktů

Chcete-li popsat strukturu tabulky faktů, zvažte následující příklad tabulky faktů prodeje s názvem f_Sales. Tento příklad používá osvědčené postupy návrhu. Jednotlivé skupiny sloupců jsou popsány v následujících částech.

CREATE TABLE f_Sales
(
    --Dimension keys
    OrderDate_Date_FK INT NOT NULL,
    ShipDate_Date_FK INT NOT NULL,
    Product_FK INT NOT NULL,
    Salesperson_FK INT NOT NULL,
    <…>
    
    --Attributes
    SalesOrderNo INT NOT NULL,
    SalesOrderLineNo SMALLINT NOT NULL,
    
    --Measures
    Quantity INT NOT NULL,
    <…>
    
    --Audit attributes
    AuditMissing BIT NOT NULL,
    AuditCreatedDate DATE NOT NULL,
    AuditCreatedBy VARCHAR(15) NOT NULL,
    AuditLastModifiedDate DATE NOT NULL,
    AuditLastModifiedBy VARCHAR(15) NOT NULL
);

Primární klíč

Jak je tomu v příkladu, tabulka ukázkových faktů nemá primární klíč. Je to proto, že obvykle neslouží k užitečnému účelu a zbytečně by se zvětšila velikost úložiště tabulek. Primární klíč je často odvozen ze sady klíčů dimenzí a atributů.

Klíče dimenzí

Tabulka ukázkových faktů má různé klíče dimenzí, které určují dimenzionalitu tabulky faktů. Klíče dimenzí jsou odkazy na náhradní klíče (nebo atributy vyšší úrovně) v souvisejících dimenzích.

Poznámka:

Jedná se o neobvyklou tabulku faktů, která neobsahuje alespoň jeden klíč dimenze kalendářního data.

Tabulka faktů může několikrát odkazovat na dimenzi. V tomto případě se označuje jako dimenze role. V tomto příkladu má tabulka faktů OrderDate_Date_FK klíče a ShipDate_Date_FK klíče dimenzí. Každý klíč dimenze představuje odlišnou roli, ale existuje pouze jedna fyzická dimenze kalendářního data.

Je vhodné nastavit každý klíč dimenze jako NOT NULL. Během načítání tabulky faktů můžete použít speciální členy dimenzí k reprezentaci chybějících, neznámých, N/A nebo chybových stavů (v případě potřeby).

Atributy

Tabulka ukázkových faktů má dva atributy. Atributy poskytují další informace a nastavují členitost dat faktů, ale nejsou to klíče dimenzí ani atributy dimenzí ani míry. V tomto příkladu sloupce atributů ukládají informace o prodejní objednávce. Mezi další příklady patří sledovací čísla nebo čísla lístků. Pro účely analýzy by atribut mohl vytvořit degenerovat dimenzi.

Opatření

Tabulka ukázkových faktů má také míry, jako je Quantity sloupec. Sloupce měr jsou obvykle číselné a běžně sečtené (což znamená, že se dají sečíst a shrnout pomocí jiných agregací). Další informace naleznete v části Typy měr dále v tomto článku.

Atributy auditu

Tabulka ukázkových faktů má také různé atributy auditu. Atributy auditu jsou volitelné. Umožňují sledovat, kdy a jak byly vytvořeny nebo upraveny záznamy faktů, a mohou zahrnovat diagnostické informace nebo informace o řešení potíží vyvolané během procesů extrakce, transformace a načítání (ETL). Budete například chtít sledovat, kdo (nebo jaký proces) aktualizoval řádek a kdy. Atributy auditu můžou také pomoct diagnostikovat náročný problém, například když se proces ETL neočekávaně zastaví.

Velikost tabulky faktů

Tabulky faktů se liší velikostí. Jejich velikost odpovídá dimenzionalitě, členitosti, počtu měr a množství historie. Ve srovnání s tabulkami dimenzí jsou tabulky faktů užší (méně sloupců), ale velké nebo dokonce obrovské z hlediska řádků (nad miliardami).

Koncepty návrhu faktů

Tato část popisuje různé koncepty návrhu faktů.

Typy tabulek faktů

Existují tři typy tabulek faktů:

  • Tabulky faktů transakcí
  • Pravidelné tabulky faktů snímků
  • Shromážení tabulek faktů snímků

Tabulky faktů transakcí

Tabulka faktů transakcí ukládá obchodní události nebo transakce. Každý řádek ukládá fakta z hlediska klíčů dimenzí a měr a volitelně i dalších atributů. Všechna data jsou při vložení plně známá a nikdy se nemění (s výjimkou chyb).

Tabulky faktů transakcí obvykle ukládají fakta na nejnižší možnou úroveň členitosti a obsahují míry, které se přičítají napříč všemi dimenzemi. Tabulka faktů prodeje, která ukládá každý řádek prodejní objednávky, je dobrým příkladem tabulky faktů transakce.

Pravidelné tabulky faktů snímků

Periodická tabulka faktů snímků ukládá měření v předdefinovaném čase nebo v konkrétních intervalech. Poskytuje souhrn klíčových metrik nebo ukazatelů výkonu v průběhu času, takže je užitečný pro analýzu trendu a monitorování změn v průběhu času. Míry jsou vždy středníkem (popsány později).

Tabulka faktů inventáře je dobrým příkladem pravidelné tabulky snímků. Každý den se načte s zůstatkem zásob každého produktu na konci dne.

Pravidelné tabulky snímků lze použít místo tabulky faktů transakcí při zaznamenávání velkých objemů transakcí je nákladné a nepodporuje žádné užitečné analytické požadavky. Například v den mohou existovat miliony pohybů akcií (které by mohly být uloženy v tabulce faktů transakcí), ale vaše analýza se zabývá pouze trendy koncových denních zásob.

Shromážení tabulek faktů snímků

Souhrnná tabulka faktů snímků ukládá měření, která se hromadí v dobře definovaném období nebo pracovním postupu. Často zaznamenává stav obchodního procesu v různých fázích nebo milníkech, což může trvat dny, týdny nebo dokonce měsíce dokončení.

Řádek faktů se načte brzy po první události procesu a potom se řádek aktualizuje předvídatelným pořadím při každém výskytu události milníku. Aktualizace budou pokračovat, dokud proces nebude dokončen.

Tabulka faktů snímku má více klíčů dimenzí kalendářních dat, z nichž každá představuje událost milníku. Některé klíče dimenzí můžou zaznamenat stav N/A, dokud proces nedorazí na určitý milník. Míry obvykle zaznamenávají dobu trvání. Doba trvání mezi milníky může poskytnout cenný přehled o obchodním pracovním postupu nebo procesu sestavení.

Typy měr

Míry jsou obvykle číselné a běžně se sčítají. Některé míry se ale nedají přidat vždy. Tyto míry jsou kategorizovány jako středník nebo nedatná látka.

Sčítání měr

Sčítání měr lze sečíst v libovolné dimenzi. Například množství objednávek a výnosy z prodeje jsou doplňkové míry (poskytování výnosů se zaznamenává pro jednu měnu).

Částečně doplňkové míry

Částečně sčítácí míru lze sečíst pouze v určitých dimenzích.

Tady je několik příkladů částečně doplňkových měr.

  • Všechny míry v tabulce faktů s pravidelným snímkem se nedají sečíst v jiných časových obdobích. Například byste neměli sčítat věk skladové položky vzorkované každou noc, ale můžete sčítat věk všech skladových položek na polici každý večer.
  • Míra zůstatku akcií v tabulce faktů inventáře se nedá sečíst napříč ostatními produkty.
  • Sales revenue in a sales fact table that has a currency dimension key can't summed across currency.

Nedatné míry

Nesčítá míra se nedá sečíst napříč žádnou dimenzí. Jedním z příkladů je čtení teploty, které podle své povahy nemá smysl přidávat do jiných čtení.

Mezi další příklady patří sazby, jako jsou jednotkové ceny a poměry. Považuje se však za lepší způsob ukládání hodnot použitých k výpočtu poměru, což umožňuje vypočítat poměr v případě potřeby. Například procento slevy faktu o prodeji může být uloženo jako míra diskontní částky (kterou chcete rozdělit mírou výnosů z prodeje). Nebo věk skladové položky na polici by se neměl sčítat v průběhu času, ale můžete sledovat trend v průměrném věku skladových položek.

I když se některé míry nedají sečíst, jsou stále platnými mírami. Dají se agregovat pomocí počtu, jedinečného počtu, minimálního, maximálního, průměru a dalších. Nesčítá opatření se také můžou stát sčítá, když se používají ve výpočtech. Například jednotková cena vynásobená množstvím objednávek vytváří tržby z prodeje, což je sčítání.

Tabulky faktů bez faktů

Pokud tabulka faktů neobsahuje žádné sloupce měr, nazývá se tabulka faktů bez faktů. Tabulka faktů bez faktů obvykle zaznamenává události nebo výskyty, jako jsou studenti, kteří se účastní předmětu. Z hlediska analýzy lze měření dosáhnout počítáním řádků faktů.

Agregace tabulek faktů

Tabulka agregačních faktů představuje souhrn základní tabulky faktů do nižší dimenzionální a/nebo vyšší členitosti. Jejím účelem je zrychlit výkon dotazů pro běžně dotazované dimenze.

Poznámka:

Sémantický model Power BI může generovat uživatelem definované agregace , aby dosáhl stejného výsledku, nebo použít tabulku faktů agregovaného datového skladu pomocí režimu úložiště DirectQuery.

V dalším článku v této sérii se dozvíte o doprovodných materiálech a osvědčených postupech návrhu pro načítání dimenzionálních tabulek modelu.