DWH Temporalita Pt.4: SCD Type 2 dimenze
Kimballovský styl dimenzí — SCD Type 2 výstup. Pokud jste je nečetli, doporučuji nejdříve přečíst první 3 části.
Kimballovský styl dimenzí — SCD Type 2 výstup Pokud jste je nečetli, doporučuji nejdříve přečíst první 3 části.
Začínáme
Poté, co jsem napsal devítistránkovou dlouhou stať o tématu zahrnující historii, modelování a úvahy o výkonu, dospěl jsem k bodu, kdy jsem pochopil, že je toho příliš mnoho na řeč. Pokusil jsem se to tedy zredukovat na minimum několika bodů. Pokud chcete vynechat veškerou tuto složitost popsanou v tomto článku, můžete zvážit použití DWH automatizačního nástroje Datavault Builder, který za vás dělá vše. Pokud níže píšu PIT tabulky: místo nich můžete použít pohledy — stejný výsledek jen s horším výkonem dotazů, ale bez nutnosti tabulky načítat. Pokud níže píšu dimenze, stejnou myšlenku lze aplikovat i na fakta.
Vytváření PIT a PIT+
Pokud to chcete přesto implementovat sami, naše zjištění ve zkratce:
-
Zkontrolujte první 3 části této série blogu, abyste se ujistili, že potřebujete SCD type 2 výstup. Dělá reporty složitějšími, než musí být, pokud k tomu není skutečná byznysová hodnota.
-
PIT tabulky nejsou cílem samy o sobě. Cílem je SCD type 2 dimenze. To znamená, že byste se neměli ptát, zda někdo nebo nástroj umí generovat PIT tabulky, ale zda dokáže vytvořit SCD type 2 dimenzi tak, jak ji potřebujete.
-
PIT tabulky mohou být prostředkem, jak učinit SCD type 2 výstup výkonnějším.
-
Pokud vytváříte PIT tabulky, dělejte to pouze pro grainy (huby), které potřebujete pro SCD type 2 výstup.
-
Pokud vytváříte PIT tabulky, zahrňte pouze časové řezy pro prvky (tj. satelity a linky) zahrnuté ve výstupu vaší SCD type 2 dimenze. To znamená, že nejdřív musíte sebrat byznysové požadavky.
-
Někteří doporučují vytvářet PIT tabulky jako snapshoty. To může být užitečnou možností, pokud chcete přistupovat pouze k datům konce měsíce nebo k jiným definovaným časovým řezům. Jelikož chceme být flexibilnější, vytváříme kontinuální SCD type 2 PIT tabulky, protože snapshoty lze z kontinuálních snadno extrahovat, ale ne naopak.
Vizuální výběr atributů v Datavault Builderu
-
Pokud nevíte, které sloupce máte ve SCD type 2 dimenzi vystupovat, a tedy nemůžete odvodit, které satelity zahrnout do PIT tabulky, vraťte se k bodu, kdy chcete vynechat složitost.
-
Pokud vytváříte PIT tabulky, zahrňte také cílové hashe a historii mnoho-k-jednomu a jeden-k-jednomu linků. Budete je potřebovat ke spojování PIT tabulek. Tomu říkám PIT+.
Zahrňte satelity a propojený hash do PIT pro mnoho-k-jednomu a jeden-k-jednomu vztahy
Spojování PIT
-
Pokud nevíte nic o očekávané kardinalitě svých linků v modelu, máte problém. Vraťte se k sekci, kde chcete tuto složitost vynechat.
-
Pokud na základě DWH timeline (3d: Load Time) můžete načítat PIT tabulky delta přidáváním jen nových řádků, protože timeline Load Time vždy postupuje vpřed.
-
Přidávání Ghost záznamů k satelitům pro zlepšení výkonu PIT dotazů neukázalo žádnou výhodu oproti pouhému left joinu satelitů na databázových platformách, které jsme testovali (vaše zkušenosti se mohou lišit — testovali jsme Snowflake, Exasol, Oracle, MSSQL).
-
Pokud SCD type 2 dimenze potřebuje sloupce z více než jednoho grainu (satelity propojené s různými huby), použijte temporální join pro křížení vždy jedné dvojice hubů, což vede k jedné kombinované timeline.
-
Pokud chcete vědět, jak spojit PIT tabulky, napište mi e-mail nebo zprávu na LinkedIn.
-
Nakonec spojte všechny potřebné satelity k této kombinované historické tabulce pro získání potřebných atributů.
-
Pokud chcete, můžete odstranit nepotřebné časové řezy. To zmenší počet řádků přenášených do reportingového nástroje, ale i bez odstranění zbytečných řezů je výstup zcela správný.
A to je vše. Pokud se vám to podařilo: gratuluji.
Další otázkou je, jak kombinovat SCD type 1 nebo 2 fakta s SCD type 2 dimenzemi. Ale myslím, že toto téma nechám pro další blogový článek poté, co stravíte obsah tohoto.
Vyzkoušejte Datavault Builder v akci
Živé demo. Upřímné odpovědi, zda je to pro váš tým.
Rezervovat bezplatné demo