Tableau - Performance Tuning (časť 2.) | Mňamka #503
Filtre a ich nastavenia
V prípade filtrov tiež platí, že pre performance je lepšie držať ich počet na uzde. Je to spôsobené tým, že načítanie hodnôt pre každý jeden interaktívny filter predstavuje jednu query. Negatívny vplyv na performance sa ešte umocňuje v prípade využitia možnosti “Only Relevant Values”. V tomto prípade to spôsobuje to, že hodnoty musia byť načítané znova vždy keď sa zmení nastavenie niektorého iného filtru.
Dávajte teda na dashboard iba tie interaktívne filtre, o ktorých viete že ich používateľ bude naozaj potrebovať. V niektorých prípadoch môžu byť vhodnou alternatívou filter actions, ktoré sú z pohľadu performance menej náročné.
Z pohľadu user experience sú problematické aj multiple choice filtre, pretože pri každej jednej zmene výbraných hodnôt vo filtri sa dashboard začne znova aktualizovať. Tomuto sa dá našťastie ale veľmi ľahko vyhnúť pridaním potvrdzovacieho tlačidla - “Show Apply Button”. Takže najskôr si vyberiete hodnoty, ktoré chcete vyfiltrovať a až potom po kliknutí na “Apply” sa dashboard sa jednorázovo zaktualizuje, takže čakáte iba raz.
Dobré je taktiež pamätať na poradie v ktorom Tableau rôzne typy filtrov aplikuje. Dobrým zvykom je v tomto prípade dávať statické filtre do kontextu a vyššie. V prípade interaktívnych filtrov je potom lepšie sa vyhnúť ich pridávaniu do kontextu.

Performance Recording
Ešte pred tým ako sa však pustíte do samotného zlepšovania performance, je dobré si namerať referenčné hodnoty pre performance dashboardu, aby ste neskôr mohli jednoznačne určiť akého zlepšenia sa vám podarilo dosiahnuť. Urobíte tak pomocou Tableau performance recording a to ideálne priamo v produkčnom prostredí Tableau serveru. Ak to možné nie je, použite performance recording u vás lokálne na Tableau desktop. Dobrou metrikou je celkový čas načítania dashboardu.
Tak a teraz keď máte už namerané referenčné hodnoty pre performance dashboardu, môžete sa pustiť do performance tuningu.

Vyhnite sa custom SQL
V prípade že vo vašom riešení používate custom SQL, môže to mať negatívny dopad na performance. Je to spôsobené tým, že používanie custom SQL queries sa stavia do cesty niektorým natívnym optimalizačným technikám ktoré Tableau využíva. Používanie custom SQL tiež rozhodne nepridáva na prehľadnosti celého riešenia. Z našich skúseností je možné vždy logiku z custom SQL presunúť na úroveň ETL alebo aj priamo do Tableau workbooku.
Vyhoďte dáta ktoré nepotrebujete
Je prirodzené že všetky výpočty a vizualizácie budú rýchlejšie na menšej vstupnej množine dát. Vstupné dáta je možné orezať čo do počtu riadkov, tak aj do počtu stĺpcov.
V prípade stĺpcov je to veľmi jednoduché. Stačí v nastavení data sourcu kliknúť na možnosť “Hide all unused fields” a Tableau automaticky skryje všetky stĺpce, ktoré na vašom dashboarde nepoužívate.
Z našich skúseností sa nám na klientských projektoch osvedčilo niekoľko best practices a krokov, ktoré vedú k zlepšeniu performence Tableau dashboardov. Niektoré sú z kategórie “quick wins” a teda že aj veľmi malá úprava vám môže priniesť vytúžené zrýchlenie, je to skôr ale výnimka ako pravidlo a zväčša práve úpravy, ktoré idú do hĺbky vám prinesú najviac. Nezabúdajte, že medzi implementáciou každej úpravy je dobré znova zmerať performance, aby ste vedeli aké zlepšenie vám každá úprava priniesla.
V prípade riadkov to ale vyžaduje o niečo viac analýzy. Je vo vstupných dátach nejaká podmnožina, ktorá nie je na dashboarde vôbec používaná prípadne len veľmi zriedkavo? Napríklad dashboard pracuje s tabuľkou všetkých objednávok do histórie až 5 rokov, ktorá každým dňom narastá. Naozaj je takto dlhá história pre dashboard potrebná a využívaná? Nestačil by zákazníkovi na dashboarde iba aktuálny a predošlý rok, ktoré ho aj tak v 90% prípadov zaujímajú? Jedným z možných riešení je v tomto prípade rozdelenie na 2 dashboardy, z ktorých jeden bude zobrazovať iba 2-ročnú históriu a bude rýchlejší a potom dashboard zobrazujúci celú históriu, u ktorého budeme akceptovať že bude o niečo pomalší, ale bude to v poriadku pretože bude používaný iba zriedka.
Samotné zmenšenie vstupných dát čo do počtu riadkov môžete realizovať buď už na úrovni ETL alebo v prípade že vo vašom riešením je Tableau dashboard napojený priamo na zdrojový systém, tak môžete použiť extract filtre ktoré boli spomenuté vyššie. A ako sme si už tiež povedali, tak sa určite vyhnite filtrovaniu pomocou Custom SQL.


Materializacia výpočtov v dátovom zdroji
Materializácia alebo inak povedané predpočítanie toho čo môže byť predpočítané, je štandardná stratégia na zlepšenie performance.
Pokiaľ vaše dátové riešenie využíva ETL, nikdy nie je zlý nápad Tableau čo najviac odľahčiť a presunúť čo sa dá do ETL. Avšak aj v prípade, že výpočty necháte na Tableau, tak to si pre väčšinu výpočtov poradí s materializáciou samo. Je potrebné iba skontrolovať, že data source vašeho dashboardu má túto funkciu naozaj aktivovanú.
Agregovanie
Je naozaj nutné, aby data source dashboardu obsahoval dáta na úrovni jednotlivých objednávok? Potrebuje dashboard naozaj data source s tak vysokou granularitou? Ak dashboard zobrazuje iba súhrnné mesačné KPIs nestačilo ak by data source obsahoval iba predpočítané mesačné agregácie?
V niektorých prípadoch môžu byť práve predpočítané agregácie tou správnou odpoveďou na problémy s performance.
Predpočítavanie agregácií môžete realizovať buď vo vašom ETL alebo prípadne úrovni Tableau extractu.
Príliš obecné zdielané data sourcy
To čo vám na jednej strane šetrí miesto vám na strane druhej môže ubrať pri rýchlosti. Preto ak náhodou dashboard, ktorý potrebujete zrýchliť zdieľa data source s viacerými dashboardami, je dobré pouvažovať nad vytvorením menšieho viac špecifického data sourcu pre potreby dotknutého dashboardu.
Automatizované optimalizačné odporúčania
Jedná sa o relatívne novú funkcia (workbook optimizer), ktorá je v Tableau Desktop dostupná od verzie 2022.1. Stačia 2 kliky (Server->Run Optimizer) a Tableau vo workbooku skontroluje dodržiavanie best practices a vytvorí vám o tom prehľadný report aj s odporúčaniami ako prípadne odchylky od best practices opraviť. Dodržiavanie kontrolovaných best practices je dôležité pre výslednú rýchlosť vašeho dashboardu a viaceré z nich už boli spomenuté aj v tomto článku.


Tableau - Performance Tuning (časť 3.) | Mňamka #506
Chcete vědět, jak zlepšit rychlost a efektivitu vašeho dashboardu v Tableau? Tento článek vás seznámí s významem materializace výpočtů, výhodami agregace dat a důležitostí specifikace datových zdrojů. Navíc se dozvíte o nové funkci "workbook optimizer", která vám nabídne automatizované doporučení pro dosažení optimálního výkonu vašeho dashboardu. Přečtěte si více a dozvíte se, jak dosáhnout rychlejšího a hladšího provozu vašich vizualizací v Tableau.
Tableau - Performance Tuning (časť 1.) | Mňamka #500
Naimplementovali ste dashboard, vyhrali ste sa s vizuálom, čísla na vám sedia. Násadíte dashboard na Tableau server a idete ho otestovať, tu však narazíte na problém. Dashboard sa načítava extrémne dlho. Pre časovo vyťažený klienta, ktorý potrebuje mať dáta nie len správne, ale aj dostupné v rozumnom čase, je samozrejme takýto stav neakceptovateľný. Čo teraz? Určite nezúfajte, v tomto článku sa s vami podelíme o skúsenosti čo v takom prípade robiť.
PySnooper aneb debugging na jedné řádce | Mňamka #497
Nedávno jsem se toulala na PyConCZ a narazila jsem tam na knihovnu PySnooper. Znáte ten pocit, když objevíte něco nového a nechápete, jak jste bez toho mohli doposud žít? Tak přesně tohle se mi stalo s PySnooperem. Známe tu situaci všichni. Píšeme kód, blíží se oběd, chceme to dotáhnout, ale kód nefunguje. Na nastavování debuggeru, vkládání break pointů a plnohodnotný debugging nezbývá moc energie. Navíc ten kód je stejně krátký, tak tam nacpeme print(”uaaaaa ”, proměnná) a pak druhý print(”chci obeeeeeeeeeed ”, promenna2) a ještě deset, než konečně kód projde a my se můžeme jít spokojeně najíst.