Tableau - Performance Tuning (časť 1.) | Mňamka #500
Naimplementovali ste dashboard, vyhrali ste sa s vizuálom, čísla 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ť.
V ideálnom prípade je potrebné myslieť na performance už od začiatku vývoja počínajúc logickým dátovým modelom až po samotné vizualizácie a ich počet na dashboarde.
V tomto článku sa ale budeme venovať prípadu, kedy máte dashboard už naimplementovaný a potrebujete ho dostať do stavu v ktorom bude dostatočne rýchli na to aby ho klient mohol komfortne používať.
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.

Rady a tipy ako zlepšiť performance
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.
Prepnutie live query na extract
Veľmi jednoduchý krok z kategórie “quick wins”, ktorý častokrát dokáže výrazne pomôcť. Ako už názov napovedá, týmto krokom docielite, že Tableau sa už nebude dotazovať priamo do dátového zdroja vždy keď sa dashboard načíta, ale vytvorí si kópiu dátového zdroja optimalizovanú pre svoje potreby.
Na čo si však ale treba dávať pozor, že dáta v extracte vám budú zaberať miesto na uložisku Tableau serveru, ktoré je zväčša limitované. Taktiež musíte myslieť na to, že dáta v extracte a teda aj na dashboarde budú aktualizované iba vo vopred definovanej perióde, spravidla jedenkrát denne. Viac sa o extractoch môžete dozvedieť tu.


Zdroj obrázku: https://www.matillion.com/wp-content/uploads/2015/01/bad-dashboard-examples-1.png
Komplexita dashboardu
Ako hovorí už staré známe, menej je niekedy viac. Ak to aplikujeme na Tableau tak to znamená, že by sme mali vždy v prvom rade dobre zvážiť koľko vizualizácii na jeden dashboard vložíme. Ak toho máme na jednom dashboarde už veľa, vždy môžeme dashboard rozdeliť do viacerých tabov/dashboardov.
A potom v ďalšom bode je vždy dobré zvažovať mieru komplexity jednotlivých vkladaných vizualizácii - koľko data pointov zobrazujú. Z tohto hľadiska sú najproblematickejšie dlhé tabuľky s veľa riadkami a veľa metrikami e.g. tabuľka so všetkými objednávkami, ktorou sa obyčajný smrteľník nikdy nepreskroluje a ani z nej nič nevyčíta. V tomto prípade je dobré zistiť či zákazník potrebuje naozaj takto vysoký detail na celú množinu objednávok. Nestačilo by ak by tabuľka obsahovala iba určitú podmnožinu objednávok? Prípadne nebolo by lepšie ak by bola tabuľka začlenená iba do nejákeho drilldownu?
Príliš komplexné dashboardy sú nepraktické nielen z pohľadu ich pomalosti, ale aj z pohľadu čitateľnosť a prehľadnosti. O tom akým ďalším chybám sa vyhnúť pri návrhu dashboardu sa môžete dozvedieť viac v nasledujúcom článku.
Používanie správnych dátových typov
Ide skôr o obecný koncept a best practice, ktorý platí aj v Tableau. Napríklad operácia porovnania je pre každý dátový typ inak rýchla. V skratke by sa to dalo zhrnúť nasledovne: Boolean>Int>Float>Date>DateTime>String. A teda, že najrýchlejšie sú operácie s boolean a najpomalšie so stringom, takže ak máte binárnu množinu hodnôt určte použite boolean a nie string. A ak náhodou potrebujete zobrazovať iné binárné hodnoty ako True/Flase, môžete sa s tým vysporiadať pomocou aliasov.
Na ďalšie rady a tipy sa spoločne pozrieme nabudúce.
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ť 2.) | Mňamka #503
Dnes nadviažeme pokračovaním na minulotýžďnový článok a pozrieme na niektoré ďalšie možnosti zrýchlenia vašeho pomalého dashboardu. 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”.
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.