Design Pattern #5: Transakční data | Mňamka #165

Transakční data jsou všude kolem nás. Položka objednávky eshopu, nákup v obchodě… jak s nimi “zacvičit” tak, abychom se nemuseli dřív nebo později vracet do transformace a přidávat požadovaný sloupec. Mrkněte na věci, které děláme automaticky… Proč? Protože věřte, že brzo na ně dojde řada.

1. First = yes / no

První výskyt události v datech vždy označíme. Jedná se o první objednávku zákazníka? Označíme ji first_order atributem.

Proč? Pokud si data takto předpřipravíme, vyhneme se tak zbytečně složitým výpočtům. Typicky se hodí pro počty nových zákazníků za určité období (suma first_order sloupce za toto období) a podobně.

2. Datum pro jednotlivé stavy

Změnu stavu objednávky/leadu a podobně zaznamenáváme pomocí datumových sloupců pro jednotlivé stavy. Pro každý stav, který může nastat, existuje samostatný sloupec. Např. objednávka přijatá, expedovaná, uzavřená a další.

Proč? Snadno tak vyhneme zmatku, kdyz se atribut stav mění v rámci jednoho sloupce. Navíc můžeme pro každý záznam snadno sledovat dobu trvání konkrétního stavu. Alternativou je podřízená tabulka s jednotlivými objednávky a datem. Obě řešení můžeme i zkombinovat, podle toho, co je pro daný use case nejvýhodnější.

3. Transpozice ze “sloupečků” na samostatné “řádky”

Typicky používáme pro slevy, dopravu a služby, storno. Ze slev na faktuře vyrobíme samostatný řádek (položku faktury se zápornou cenou). Stejně postupujeme v případě storna nebo dopravy a dalších služeb. A co taková sleva prostřednictvím slevového kupónu na dané objednávce? Jasně, další řádek! 

Proč? Místo sčítání a odčítání hodnot v různých sloupcích při výpočtu tržeb, sčítáme jeden sloupec a snadno filtrujeme, jaký typ položek chceme do tržeb zahrnout. Pro zachování referenční integrity doplníme takto vzniklé položky do nadřízené tabulky (např. dopravu od konkrétního dodavatele do tabulky zboží).

Hodně eshopařů rádo vytváří sloupec kde “je všechno”, ten se většinou jmenuje “total price” … nenechte se zmást. Vyplatí se dát si tu práci a celý proces rozklíčovat a následně si vytvořit jednoduché položky, přes které můžete filtrovat. Ve finále si ušetřítě hromadu starostí ve vizualizaci.

Máte nějaký další tip, který děláte “vždycky a všude”? 

Máte k článku nějaké otázky nebo připomínky? Klidně mi napište, ráda to s Vámi proberu :-)

Petra Horáčková
datový detektiv
LinkedIn

Seznamte se s Kats - jednotným kontaktním místem pro analýzu časových řad | Mňamka #203

Seznamte se s Kats - jednotným kontaktním místem pro analýzu časových řad | Mňamka #203

Pojďme se podívat na Kats – novou knihovnu v Pythonu pro analýzu časových řad! Kats je elegantně použitelný framework pro obecnou analýzu časových řad, včetně předpovědí nebo vícerozměrné analýzy a extrakce/vložení funkcí. Poskytuje klasické i pokročilé techniky pro modelování dat časových řad!

Jak si přidat vlastní KPIs do Airflow | Mňamka #202

Jak si přidat vlastní KPIs do Airflow | Mňamka #202

Airflow nám umožňuje programově vytvářet, plánovat a následně sledovat workflow. Standardní UI v Airflow nám umožňuje zobrazit pipelines a filtry. Jenže.. jak se zvyšuje počet pipelines, stává se mnohem složitější vyfiltrovat to, co potřebujeme. Jak si přidat vlastní pohledy/filtry na vaše DAGs v Airflow? Podívejte se, jak na to!

Jak využít Pohodu (a jiné datové zdroje) v BI? | Mňamka #201

Jak využít Pohodu (a jiné datové zdroje) v BI? | Mňamka #201

Vědět, v jaké je firma finanční kondici a kam pluje je jedna z klíčových věcí pro její správné kormidlování. Jenže jak to dát všechno dohromady? Jak využít všechny ty datové zdroje, které máme k dispozici? Potřebujete mít všechny finanční pohledy aktuální pár minut po zaúčtování dokladu? Pojďme se na to podívat krok za krokem – jen namátkově vytvoření mappingů, očištění dat, datový model a na závěr už chybí jen pár vymazlených dashboardů!