Optymalizacja wydajności w Tableau

paź 19, 2017

Tableau

Kiedy już rozpoznamy nasze źródła danych, zaprojektujemy dashboardy i opublikujemy je na Tableau Server, pojawia się kwestia optymalizacji raportów, ze względu na czas odpowiedzi systemu, który jest kluczowy ze względu na użytkownika.

Jeśli czas otwierania i przełączania się dashboardu nie jest wystarczająco krótki, wtedy musimy przyjrzeć się naszym wizualizacjom, aby zminimalizować czas oczekiwania na raport, również przy filtrowaniach i sortowaniach.

Warto pamiętać, że Tableau ma własny sposób monitorowania szybkości performance, który znajdziemy w menu Help.

Performance recording jest dostępne zarówno na Tableau Desktop jak i  Tableau Server.

Zanim zaczniemy optymalizację, warto pamiętać o dwóch punktach:

  1. Jeśli nasze źródło danych jest wolne, projekt na Tableau Desktop będzie również wolny.
  2. Jeśli projekt na Tableau Desktop jest wolny, będzie również wolny na Tableau Server.

Pamiętając o tych elementach, możemy zacząć optymalizację projektów w Tableau.

Pierwszym elementem jest liczba kolumn w źródle – warto ograniczyć tę liczbę, szczególnie, jeśli kolumn jest powyżej 50. Można do tego celu użyć opcji Hide do ukrycia pól niepotrzebnych w danym projekcie.

Tableau rekomenduje tworzenie ekstraktu dla projektów, jednakże czasem, jeśli dashboard jest często odświeżany, mimo wszystko warto jednak utrzymać połączenie Live.

Kiedy uporamy się już z ekstraktem I liczbą rekordów, kolejnym elementem jest liczba tzw. Data points na worksheecie, co możemy sprawdzić w dolnym pasku aplikacji:

Bardzo często, szczególnie na początku naszej pracy z Tableau, próbujemy zmieścić jak najwięcej elementów na jednym worksheecie, co powoduje zwiększenie liczby data points, a tym samym spowolnienie pracy aplikacji.

Dlatego należy praktykować tzw. Guided Analytics, czyli kompilować widoki na dashboardzie i tam dodawać kolejne elementy w postaci worksheetów. Następnie użytkownik może podróżować pomiędzy widokami, przy pomocy filtrów akcji aż do najniższych poziomów granulacji w optymalnym czasie. Warto usunąc też zbędne wymiary z półki Details, jeśli nie wniosą nic do samego widoku. Pomocne może być również eksperymentowanie z różnymi typami wizualizacji, często zmiana typu wykresu może pomóc nam zoptymalizować dashboard.

Kolejnym krokiem powinien być przegląd filtrów.

Jeśli używamy opcji Show Filter, wtedy Tableau musi załadować wszystkie elementy do wymiarów i uruchomić dodatkowe zapytania, które mogą znacząco obniżyć performance dashboardu. Filtry wykluczające również spowalniają działanie projektu, warto zamienić je na zwykłe filtry Include. Są znacznie szybsze.

Warto używać filtrowania daty w trybie ciągłym. Jest on o wiele szybszy niż filtrowanie w postaci dyskretnej, ze względu na szybkość indeksowania w bazie.

Filtry typu Boolean są najbardziej efektywne, warto zamienić szczególnie te, które działają na formatach typu String.

Parametry i filtry akcji są dużo szybsze niż zwykłe filtry, warto je podmienić.

Kolejnym elementem, któremu należy się przyjrzeć, są same kalkulacje. Warto je zoptymalizować i zmaterializować.

  • Kalkulacje typu AVG() używane są często w przypadku duplikacji rekordów w bazach. Warto zamienić je na MIN() luyb MAX() – działają o wiele szybciej.
  • Jeśli tworzymy grupy, lepiej stworzyć je przy pomocy kalkulacji, zamiast używać normalnego grupowania Tableau. Grupa kalkulowana ładuje tylko wybrane elementy z wymiaru, Tableau musi załadować wszystkie elementy przy zwykłym grupowaniu.>
  • Najlepiej używać kalkulacji typu Integer lub Boolean. Pozostałe działają dużo wolniej.
  • Kolejność szybkości kalkulacji według typów: Boolean>Int>Float>Date>DateTime>String

Kolejnym elementem jest optymalizacja zapytań Tableau. Warto sprawdzić następujące elementy:

  • Warto używać blendingu na większych agregatach. W przypadku połączeń na poziomie wierszy, o wiele lepiej sprawdzi się join.
  • Ograniczenie połączonych tabel również może pomóc. Należy sprawdzić, czy nie mamy zbędnych połączeń w naszym projekcie.
  • Należy użyć opcji: Assume Referential Integrity, jeśli wiemy, że wszystkie pozycje z połączonych tabel łączą się ze sobą.
  • Usuń Custom SQL! Jakkolwiek źle może to zabrzmieć, naprawdę o wiele lepiej jest skorzystać z opcji Tableau w celu stworzenia integralnej bazy danych.

Wreszcie na koniec, nie zapomnij o oczyszczeniu workbooków. Zredukuj fokus na dashboardzie, jeśli performance jest niezadowalający. Wykasuj albo skonsoliduj nieużywane worksheety i dashboardy.

Bibliografia:

https://www.hobo-web.co.uk/your-website-design-should-load-in-4-seconds/

https://www.interworks.com/blog/bfair/2015/02/23/tableau-performance-checklist

https://www.tableau.com/about/blog/2016/1/5-tips-make-your-dashboards-more-performant-48574#xeJ46AX08Aa8tZ8m.99