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.

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.

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.

Datavault Builder: vizuální výběr atributů satelitu pro SCD Type 2 dimenzi

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+.

PIT+ diagram: Data Vault hub se satelity a propojenými hashi pro mnoho-k-jednomu a jeden-k-jednomu vztahy

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.

Vztahy linků Data Vaultu: temporální join napříč více huby pro multi-grain SCD Type 2 výstup

  • 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.