Tableau Performance – 10 dobrych praktyk
1) Liczba kolumn vs Liczba wierszy
Pierwsze zestawienie to analiza naszych danych wejściowych. Warto nadmienić, że Tableau dobrze sobie radzi w przypadku dużej liczby wierszy – tutaj jako przykład posłużę się ostatnimi raportami dla klienta – dane wejściowe zawierały 400 mln wierszy, raport przetwarzał się w sposób prawidłowy – najdłuższe przeliczenia zajmowały mu do 10 sek.
Natomiast to na co moglibyście zwrócić uwagę to liczba kolumn. Nie polecam Wam rozwiązań typu Select* np. z 300 kolumnami, które nie do końca są przez autora znane, tym bardziej potrzebne w analizie. Dobrze jest zrobić taką optymalizację krok wcześniej. Oczywiście polecam Tableau Prep! – jako narzędzie do przygotowania flow do Tableau. Na poziomie Tableau Desktop rekomenduję Wam po skończonym raporcie przejrzeć pola których nie wykorzystaliście w raporcie – Hide All Unused fields.
2) Tryb Live vs Tryb Extract –
Jeśli postawilibyście mi pytanie który z trybów pracy jest preferowany w Tableau, zapewne w większości przypadków odpowiedziałbym Wam że tryb Extract (+ oczywiście odpowiednie ustawienie harmonogramu Sheduler po stronie Tableau Server). Natomiast okazuje się, że dla niektórych źródeł tj. rozwiązań chmurowych: Snowflake i Google Big Query, zalecany jest tryb pracy Live. Warto nadmienić, że decydując się na tego typu rozwiązanie, dobrze jest korzystać z tabel partycjonowanych. Niewątpliwie to przyspieszy Waszą pracę!
3) Only Relevant Values vs All Values in Hierarchy
W poprzednich wersjach Tableau mieliśmy dwie możliwości Only Relevant Values i All Values in Database. Od wersji 2018.1 pojawiła się również opcja All Values in Hierarchy. Jeśli macie utworzoną hierarchię po stronie wymiarów i chcielibyście, aby dane filtrowały się w sposób kaskadowy, rekomenduję Wam rozwiązanie All Values in Hierarchy. Opcja Only Relevant Values powoduje, że za każdym razem jest wysyłany sql do bazy w celu przefiltrowania, selekcji elementów znajdujących się w wybranej grupie nadrzędnej.
4) String Values vs integer/boolean
Tak, zdecydowanie szybciej będziemy pracować budując strukturę naszych kalkulacji w oparciu o rozwiązania integer/boolean. Warto wspomnieć także w tym miejscu o konstrukcji parametrów, które w późniejszej fazie będziemy integrować z kalkulacjami. Zachęcam Was do deklarowania zmiennych w parametrze jako integer – wtedy zmniejszamy ryzyko popełnienia błędu w polu kalkulowanym. Kalkulacje w Tableau są wrażliwe na duże i małe symbole – case sensitive, dlatego musimy pamiętać, że wielkość znaków przy string values jak również odstępy (spacje, puste przestrzenie) mają znaczenie 😉
5) Tableau Performance- Kalkulacje LoD
Dla wielu raportów rozwiązanie konieczne. Natomiast musimy mieć z tyłu głowy, że wszystkie kalkulacje Level of Detail tj Fixed, Include i Exclude obciążają Performance.
6) Data Blending vs optymalizacja danych po stronie Tableau Prep Builder/ po stronie bazy danych
Jeżeli to możliwe korzystajcie z Tableau Prepa! Tableau nie lubi się ze swoim jednym z dzieci, a jest to właśnie Blending. Łączenie dwóch źródeł o różnym poziomie agregacyjnym obciąża wydajność Taleau.
7) Wyświetlenie wszystkich elementów w bazie (np. wszystkich produktów) vs analiza top/bottom.
Zachęcam Was do korzystania z rankingów, bądź analiz typu top/bottom n-produktów, n-dostawców, n-klientów, tak aby pokazać najlepszych lub najgorszych. Analizując raporty warto zwracać uwagę na te pozycję, które odgrywają kluczową rolę – na te elementy, które budują naszą sprzedaż, marżę, albo właśnie przeciwnie – są nierentowne i na nich tracimy.
8) Tabele przestawne vs wizualizacje
Chociaż wielu osobom mogłoby się tak wydawać 😊Tableau NIE jest arkuszem kalkulacyjnym! Tableau służy głównie do wizualizacji danych w ciekawy, przejrzysty sposób, tak aby już po chwili wyłapać kluczowe informacje, zależności, anomalie. Staramy się unikać tabel przestawnych z n-liczbą kolumn. Takie rozwiązania wpływają negatywnie na wydajność.
9) COUNTD
COUNTD, czyli zliczenie unikalnych pozycji – produktów, klientów, przepływów. COUNTD jest to agregacja, która najbardziej obciąża Performance, wydajność Tableau. ☹
10) Tableau Performance Recording
Polecam Wam Performance Recording w celu oceny i weryfikacji procesów zachodzących w Tableau Desktop. Performance Recording jest jak mój pupil Porto, nie opuszcza mnie na krok w mojej pracy 😊 Na początku włączcie Start Performance Recording, następnie wykonajcie operacje, które Was niepokoją ze względu na zbyt długi czas egzekucji – filtry, akcje. Na koniec przejdźcie jeszcze raz do zakładki Settings and Performance i wyłączcie nagrywanie – Stop Performance Recording. Po chwili zostanie wygenerowana instancja Tableau, która powie Wam gdzie leży problem.
Na co jeszcze należy zwrócić uwagę.
Tableau Performance tips
Na koniec kilka dodatkowych informacji, które niewątpliwe odgrywają duże znaczenie gdy mówimy o temacie Tableau Performance :
a) Lokalne zmienianie nazw tabletek – to rozwiązanie spowalnia Performance ☹
b) Dodawanie aliasów na poziomie wymiaru – niekorzystnie wpływa na Performance☹
c) Porządek w kontenerach – dobre uporządkowanie ma znaczenie, unikajcie elementów floating!
d) Datatrunc vs Datepart/Datapars funkcje datowe – jeśli korzystacie z jednej i drugiej funkcji to pamiętajcie, że Datetrunc działa szybciej od datepart, i dateparse 😉
To dopiero „czubek góry lodowej” wachlarza możliwości optymalizacji pracy z Tableau – mamy jeszcze mnóstwo opcji po stronie zarówno budowy samego źródła danych, jak też ustawień Tableau Server. Wszystkie one mogą przyśpieszyć pracę. Aby dobrać najlepsze dla nas rozwiązanie, warto umówić się z Konsultantem NDLS na stosowne warsztaty. Wielu Klientów, pracujących już z Tableau od jakiegoś czasu zleca nam kompleksowy Audyt Tableau, w trakcie którego możemy zdiagnozować „słabe punkty” i zaproponować rozwiązania. Więcej na ten temat na https://newdatalabs.com/audyt/
Życzę Wam dobrej wydajności Waszych raportów !
Aleksander Ostasiuk Tableau Konsultant