Blog
12.11.2020

10 funkcjonalności Tableau Prep Builder, o których musisz wiedzieć

Spis treści:
Tagi:
No items found.
Klient:
Autor:
Mateusz Różański

Tableau Prep to narzędzie służące obróbce i przygotowaniu danych. Moim zdaniem, każdy użytkownik Tableau Desktop powinien je znać dlatego, że oferuje dodatkowe możliwości w modelowaniu danych. Prep to narzędzie, które jest temu całkowicie przeznaczone. Zaczyna się pojawiać klarowny podział narzędzi w arsenale Tableau. Prep służy przygotowaniu danych do analizy, Desktop ich wizualizacji. Jeśli korzystasz z Prep to bardzo się cieszę. W tym artykule, mam nadzieję, dowiesz się kilka nowych rzeczy. Jeśli jeszcze nie znasz Prep to mam nadzieję, że coraz większa paleta możliwości skłoni Cię, aby spróbować.

Poniżej lista 10 funkcjonalność Tableau Prep, które musisz znać.

Filtry względne na dacie

Filtr względny pozwala na kroczące filtrowanie pola daty co przydaje się w przepływach, które są w ciągłym użyciu i przy stałym strumieniu danych. Pozwala na ustawienie filtra, który sam aktualizuje zakres czasowy.

ustawienie filtra Tableau Prep

Dla przykładu, jeśli zawsze analizujemy dwa ostatnie lata obrotowe i nie potrzebujemy wprowadzać do modelu danych pozostałych okresów, możemy wykorzystać Relative Dates filter na poziomie roku.

Wybieram Last 2 years i powyżej widzę zakres dat, który będzie obowiązywał. Jeśli wejdziemy w nowy rok, zakres dat zostanie zaktualizowany. Możemy również ustanawiać ten filtr na poziomie kwartału, miesiąca, tygodnia oraz dni.

Filtry względne na dacie

Zapis danych do bazy tzw. write-back

Możliwość zapisu wyniku przepływu do tabeli bazy danych to funkcjonalność dostępna od wersji 2020.3 i długo oczekiwana przez użytkowników. Jest to spory krok naprzód w stronę prawdziwego narzędzia ETL. W kroku Output wybieramy Database table oraz uwierzytelniamy się wpisując adres bazy, port, użytkownika i hasło.

W kroku Output wybieramy Database table

Na ten moment (listopad 2020) możemy zapisać dane do najbardziej popularnych baz danych.

  • Microsoft SQL Server
  • MySql
  • PostgreSQL
  • Amazon Redshift
  • Snowflake
  • Oracle
  • Teradata
Zapis danych do bazy tzw. write-back

Po uwierzytelnieniu, w zależności jakimi dysponujemy uprawnieniami, możemy wykonać następujące operacje

  • Utworzyć tabelę (create table)
  • Zaktualizować tabelę (update table)
  • Dodać dane do tabeli (append table)

Co ciekawe możemy wykonać polecenie SQL przed lub tuż po wyzwoleniu przepływu.

Automatyzacja poprzez harmonogramowanie przepływu

Przepływ w Prep może być wyzwalany automatycznie zgodnie z ustalonym harmonogramem. Nie jest to funkcjonalność dostępna ‘out-of-the-box’. Trzeba stworzyć plik wsadowy .bat, których uruchomi aplikację z określonym przepływem poprzez aplikację Harmonogram zadań w systemie Windows. Pełny tutorial został opisany szczegółowo na stronie Tableau. Dzięki temu możecie automatyzować wasze procesy i skalować je dowolnie bez dodatkowych kosztów. W połączeniu z możliwością zapisu do bazy danych daje to naprawdę duże możliwości!

W uproszczeniu cały proces potrzebuje 4 elementy

  • Plik z Tableau Prep flow (.tfl)
  • Plik JSON z poświadczeniami do źródeł danych i źródeł docelowych (w ramach kroku output)
  • Plik .bat autentykujący Tableau Prep do użycia poświadczeń
  • Zdarzenie w Windows Task Scheduler

Możemy też wybrać rozwiązanie bardziej przyjazne użytkownikowi, ale dodatkowo płatne w ramach dodatku do Tableau Server o nazwie Tableau Prep Conductor.

Wildcard Pivot – transpozycja kolumn lub wierszy z użyciem „dzikiej karty”

Mamy dane z okresami w osobnych kolumnach, jeśli chcemy spłaszczyć tabelę na potrzeby analizy możemy użyć opcji Pivot. W ten sposób wszystkie wartości z okresów zostaną przeniesione do jednej kolumny a nagłówki do kolejnej.

Funkcjonalność Wildcard Pivot jest użyteczna, jeśli lista kolejnych kolumn nie jest skończona. Będą się pojawiały kolejne okresy wraz z aktualizacją pliku źródłowego.

Przetestujmy to. Dodałem krok Pivot.

Dodawanie kroku Pivot

W polu Pivot1 Values wprowadzam ciąg znaków od którego ma się rozpocząć wyszukiwanie w tym przypadku liczba ‘20’ od której rozpoczyna się każdy nagłówek.

pole Pivot1 Values

Wszystkie okresy zostały poprawnie zidentyfikowane i przetransponowane do wierszy.

Identyfikacja i transport okresów do wierszy

Dodatkowo mogę na nowopowstałym polu wymusić zmianę formatu danych na Date.

Dodajmy teraz nowy okres 2021-1 i odświeżmy przepływ.

Dodawanie nowego okresu 2021-1

Nowa kolumna została poprawnie zidentyfikowana i przekształcona w przepływie.

Identyfikacja i przekształcenie nowej kolumny w przepływie

Proces będzie działał każdorazowo, jeśli zachowamy odpowiedni standard nazewnictwa kolumn.

Dokumentowanie, organizowanie przepływu

Prep pozwala coraz lepiej organizować strukturę przepływu poprzez nadawanie odrębnych kolorów poszczególnym sekcjom/gałęziom (1), grupowanie kroków w jeden kontener, który można zwinąć (2), dodawanie komentarzy do każdego kroku (3) maksymalnie 200 znaków.

Dokumentowanie, organizowanie przepływu

Możemy również komentować indywidualne przekształcenia.

Komentowanie indywidualnych przekształceń

Preview in Tableau Desktop

W każdym momencie możemy przenieść dane do Tableau Desktop po to aby poprzez wizualizację lepiej je zrozumieć i kontynuować pracę nad modelem w sposób lepiej poinformowany.

Każdy etap przepływu możemy zdiagnozować w Desktop klikając prawym klawiszem i wybierając Preview in Tableau Desktop.

Preview w Tableau Desktop

Otworzy się aplikacja Desktop wraz z załadowanymi danymi z przepływu, który zakończył się na wcześniej wybranym etapie. Tableau Prep tworzy tymczasowy zbiór danych.

Tableau Prep tworzy tymczasowy zbiór danych

Kopiowanie fragmentu przepływu i wklejanie w innym miejscu

Załóżmy, że w danym kroku dokonaliśmy wielu przekształceń, stworzyliśmy kilka formuł. Te same etapy musimy powtórzyć w innym przepływie. Możemy przyspieszyć ten proces poprzez skopiowanie kroków i podpięcie ich pod inną gałąź przepływu.

Kopiowanie fragmentu przepływu

Zaznaczam kroki, prawy klawisz, Copy i Paste do kolejnej gałęzi.

wklejanie do innej gałęzi

Podpinamy wcześniejsze kroki przeciągając je na obszar ‘Add’.

odwołania można poprawiać ręcznie

Jeśli nazwy pól są identyczne, nie powinniśmy otrzymać błędów. W przeciwnym razie odwołania możemy poprawić ręcznie.

kopiowanie i wklejanie indywidualnych operacji

Możemy również kopiować i wklejać indywidualne operacje.

Warta uwagi jest również opcja zapisu całego fragmentu przepływu do pliku, który następnie może być ponownie użyty przez innych użytkowników lub w innym procesie.

opcja zapisu całego fragmentu przepływu do pliku

Wykorzystanie skryptów R i Python

Począwszy od wersji 2019.3.1 możemy wykorzystać skrypty R i Python jako kolejny krok w przepływach, a wyniki tych skryptów zostaną zapisane jako wynik output lub wejście do następnego kroku.

skrypty R i Python jako kolejny krok w przepływach

Do poprawnego działania potrzebujemy skonfigurowany TabPy lub Rserve oraz plik ze skryptem.

konfiguracja TabPy lub Rserve

Data Roles jako narzędzie do walidacji danych

Data Roles to fajna opcja do szybkiej walidacji danych ze względu na składnię lub przynależność do zamkniętego katalogu wartości.

Możemy walidować dane dla standardowych ról

  • Email – Prep sprawdza czy występuje znak @ czyli popularna małpka, nie sprawdza czy występuje domena.
  • URL – za poprawne uzna wartości z przedrostkiem http:// oraz https://, jako wadliwe oznaczy te z przedrostkiem www lub jego brakiem.
  • Geograficzne – Prep sprawdza nazwy państw, miast, regionów i innych obiektów geograficznych pod względem zgodności ze swoim słownikiem. Jeśli wystąpi literówka możemy ją poprawić poprzez grupowanie wartości.

Wykorzystałem przykładowy zbiór danych, gdzie celowo wprowadziłem szumy do danych (oznaczone na żółto).

przykładowy zbiór danych z celowymi szumami

Polom email, URL, Country nadałem odpowiednie Role. Sprawdzam, które wartości zostały uznane za niepoprawne. Z menu opcji na każdym polu wybieram wartości ‘Not valid’.

Custom Data Roles czyli własny katalog dopuszczalnych wartości danego pola

Wykonuję to również dla pola URL oraz Country.

wartości ‘Not valid’ dla pola URL i Country

Wartości w polach email i URL możemy skorygować ręcznie. Natomiast w polu Country pojawiła się literówka w słowie Poland. Możemy użyć grupowania według wymowy (Spelling).

użycie grupowania według wymowy (Spelling)

Boland zostaje zgrupowane razem ze słowem Poland. Możemy to zawsze zweryfikować sprawdzając jakie elementy zostały razem pogrupowane.

użycie grupowania według wymowy (Spelling)

Custom Data Roles czyli własny katalog dopuszczalnych wartości danego pola może być utworzony i zapisany na Tableau Server. Wybierając tą opcję dla danego pola, zostanie utworzony specyficzny rodzaj kroku Output. Data Role będzie składowana w Tableau Server i potrzeba jej wykorzystania będzie wymagała logowania. Więcej informacji na ten temat na stronie Tableau.

Custom Data Roles czyli własny katalog dopuszczalnych wartości danego pola

Osobiście wolę kroki walidacyjne kontrolować poprzez kalkulacje a w szczególności wyrażenia regularne REGEXP.

Kontrola kroków walidacyjnych poprzez wyrażenia regularne REGEXP

Table Calculations są możliwe w Tableau Prep (tak jakby)

Table Calculations znane z Desktop pozwalają na stworzenie wielu użytecznych kalkulacji takich jak Percent of Total lub Running Sum. Wyżej wspomniane kalkulacje nie są dostępne w Tableau Prep ale  przy kilku dodatkowych operacjach możemy je wykonać.

  • Percent of Total – użyjemy funkcji Level of Detail FIXED, które pozwoli policzyć sumę na określonym poziomie szczegółowości, który możemy dowolnie określić.

Alternatywnie możemy użyć dodatkowego kroku Aggregate.

Najpierw ustalę mianownik, czyli całkowitą ilość dla wszystkich rekordów. Użyję kalkulacji

{FIXED : SUM([Quantity])}

Ustalenie mianownika, czyli całkowitej ilości dla wszystkich rekordów

Teraz policzmy sumę ilości na poziomie Segmentu. Do składni z FIXED wprowadzam zmienną [Segment].

przeliczenie sumy ilości na poziomie Segmentu

Na końcu tworzę kalkulacje Percent of Total oraz Percent of Total Segment. Po podpięciu do Desktop nadam tym polom format wyświetlania jako procent.

kalkulacje Percent of Total oraz Percent of Total Segment

  • Running Total - policzymy sumę narastająco dla kolejnych miesięcy roku. Sumowanie będzie rozpoczęte od nowa wraz z nowym rokiem. Operacja wymaga zrobienia self-join do danych w specyficzny sposób.
Running Total

  1. Dodaję pole kalkulowane by wyodrębnić rok.
Dodawanie pola kalkulowanego by wyodrębnić rok
  1. Duplikuję krok (prepare) i pole Quantity zmieniam na Running sum. Wartości na razie nie są poprawne. Dopiero krok Aggregate pozwoli wyznaczyć właściwe wartości.
  2. Robię self-join według pola Year oraz Period. Uwaga! pole Period z podstawowej tabeli zawsze >= od Period z tabeli pomocniczej.
self-join według pola Year oraz Period

Przy dużej granulacji może pojawić się problem z wolumenem danych, ponieważ następuje replikacja rekordów.

Agregacja, która wyznacza poprawne wartości sumy narastającej
  1. Ostatni krok to agregacja, która wyznacza poprawne wartości sumy narastającej.

Robię Preview in Tableau Desktop aby sprawdzić poprawność sumy kroczącej. Otrzymany wynik jest jak najbardziej zgodny z oczekiwaniami.

sprawdzenie poprawności sumy kroczącej

Tableau Prep jest w cenie twojej licencji Tableau Creator

Wśród użytkowników Tableau pokutuje przekonanie o tym, że Prep jest dodatkowo płatnym rozwiązaniem. Nic bardziej mylnego. W ramach licencji Creator (system subskrypcyjny) możesz korzystać z Desktop, Prep oraz Server. Także jeśli jeszcze nie korzystasz z Prep to poproś, czym prędzej, swojego administratora o klucz licencyjny i zacznij oczyszczać dane. A jeśli tylko chcesz spróbować to pobierz Tableau Prep ze strony Tableau.

Happy Prepping!

,
No items found.