Hvězdicové schéma, nebo jedna velká tabulka?
Dobré reporty nezačínají u grafu, ale u modelu dat. Proč to tak je a jak vybíráme přístup podle nástroje a jádra vašeho byznysu.
Když firma řeší reporting, většinou začne u grafu: „chci koláč podle kategorií” nebo „chci křivku tržeb”. Jenže dobrý report nezačíná u grafu, ale u modelu dat. Jak data uspořádáme pod kapotou rozhoduje o tom, jestli si pak naklikáte jakýkoliv pohled za pár sekund, nebo jestli každá nová otázka znamená den práce. A k modelu přistupujeme s rozmyslem — ne podle šablony, ale podle toho, co reálně měříte.
Co je datové modelování
Datové modelování je prostě způsob, jak data uspořádáme do tabulek, aby se nad nimi dobře a rychle reportovalo. Stejná data jdou poskládat desítkou způsobů — a většina z nich vede k pomalým, křehkým reportům. Cílem modelu je opak: aby se metriky počítaly správně, rychle a aby šly filtrovat a seskupovat, jak vás zrovna napadne.
Je to vrstva, která navazuje na medailonovou architekturu — konkrétně na gold vrstvu, ze které čte reporting.
Začínáme od jádra byznysu: co je „zrno”
Než postavíme jedinou tabulku, ptáme se: co je základní měřitelná jednotka vaší firmy? Tomu se odborně říká „zrno” (anglicky grain) — je to úroveň detailu, na které jeden řádek tabulky odpovídá jedné události.
U e-shopu je to typicky:
- jedna objednávka (jeden řádek = jedna objednávka), nebo
- jedna položka objednávky (jeden řádek = jeden produkt v jedné objednávce).
Volba zrna není detail — určuje, co všechno půjde z dat spočítat. Když si zrno určíme jako položku objednávky, dostaneme se na úroveň jednotlivých produktů a jejich marží. Když jako objednávku, vidíme spíš chování zákazníka a velikost košíku. Proto se nejdřív bavíme o tom, co je jádro vašeho byznysu a jaká je hlavní metrika — a teprve podle toho stavíme celý model.
Fakty a dimenze: měření vs. kontext
Dobrý model rozděluje data na dva typy tabulek:
- Fakty = měřitelné události. To jsou ta čísla, která vás zajímají — objednávky, tržby, počty kusů, náklady na reklamu.
- Dimenze = kontext, ve kterém se ty události staly. Produkt, zákazník, čas, prodejní kanál, kategorie.
Proč to dělit? Protože tím získáte flexibilní reporting. Fakt (třeba tržby) si můžete naservírovat podle libovolné dimenze: tržby podle měsíce, podle kategorie, podle kanálu, podle kraje — a všechny kombinace zároveň. Nemusíte předem tušit, na co se zeptáte. Model je připravený na otázky, které vás teprve napadnou.
Dva přístupy podle nástroje
Tady je důležitá pointa: nevnucujeme jeden model na všechno. Jiný tvar dat se hodí do Power BI, jiný do Supersetu. Vybíráme podle nástroje a use-case.
Hvězdicové schéma (star schema) pro Power BI
Hvězdicové schéma je standard pro Power BI. Funguje přesně tak, jak zní: fakt je uprostřed, dimenze kolem něj jako paprsky hvězdy. Power BI je na tomhle tvaru postavené — filtruje a seskupuje pak rychle a flexibilně, protože model přesně odpovídá tomu, jak nástroj uvnitř počítá.
Tady se projeví náš „chytrý” přístup k modelování:
- Správné zrno — model stavíme kolem té měřitelné jednotky, kterou jsme si určili na začátku.
- Konzistentní (conformed) dimenze — dimenze jako čas, produkt nebo zákazník sdílíme napříč více fakty. „Conformed” znamená, že produkt je definovaný stejně pro tržby i pro skladové pohyby. Díky tomu jdou různé metriky porovnávat ve stejném reportu a sedí na sebe.
- Model navržený kolem toho, co firma reálně měří — ne univerzální šablona, ale tvar odvozený z vašich metrik.
Tohle je dimenzionální modelování v praxi — přístup, jehož kořeny zmiňujeme i v článku odkud se vzala medailonová architektura.
Ploché (široké) tabulky pro Superset
Superset jde jinou cestou. Tady se nám často víc vyplatí jedna plochá, široká tabulka — všechno potřebné (fakt i kontext) je předem spojené do jedné denormalizované tabulky.
„Denormalizace” zní složitě, ale je to prostý nápad: kontext, který by jinak byl v samostatných dimenzích, zkopírujeme rovnou k číslům. Výsledná tabulka má víc sloupců a trochu se opakuje, zato se nad ní dotazuje čistě přes SQL, bez spojování (joinů) za běhu. A protože Superset je nástroj postavený nad SQL, s plochou tabulkou pracuje skvěle — pro cílený use-case je to jednodušší a rychlejší.
Hrubě řečeno:
- Hvězda — flexibilní, ideální pro samoobslužné proklikávání v Power BI.
- Plochá tabulka — jednoduchá a rychlá pro konkrétní, dobře definovaný report v Supersetu.
Pointa: model podle nástroje i podle vašeho byznysu
Žádný z přístupů není „lepší” v absolutním smyslu. Hvězdicové schéma a ploché tabulky řeší různé situace — a my vybíráme podle nástroje a potřeby, ne podle toho, co je zrovna v módě. Společné mají jedno: oba začínají u otázky, co je jádro vašeho byznysu a co reálně měříte.
Proto u nás reporting nezačíná u grafu. Začíná u modelu — a model u vás. Stejnou logikou volíme i mezi krabicovým řešením a enterprise nástroji a celkovou datovou architekturou.
Související články
- Datová architektura: návrh, který vydrží růst
- Jak stavíme datový sklad
- Odkud se vzala medailonová architektura
- Krabicové řešení vs. enterprise
- Kolik stojí datový sklad pro e-shop?
Chcete reporting postavený na modelu, který sedí přesně na váš byznys? Ozvěte se — nezávazně to probereme.
Další čtení
Postavím vám datový sklad a reporting na míru. Nezávazně to probereme.
Chci to probrat