Tableau Prep od czasu wprowadzenia jako element pakietu Tableau wspomaga transformacje i modelowanie danych. Można go zdecydowanie określić mianem programu ETL (Extract Transform Load), przy czym nie jest przy tym zbyt rozbudowany, co jest jego zaletą. Nie mamy tu do czynienia z kombajnem analitycznym a zgrabnym narzędziem ukierunkowanym na modelowanie danych. Samo Tableau definiuje Prepa jako „self-service data preperation” – narzędzie dostarczające nowoczesne podejście do przygotowania danych do analizy. Umożliwia proste i szybkie łączenie, kształtowanie oraz czyszczenie danych tak aby ułatwić ich późniejszą analizę w Tableau. Wykorzystuje przy tym bardzo użyteczną prezentację przepływów danych. Prep wpisuje się w filozofię Tableau skupiającą się na wizualnym aspekcie nie tylko prezentacji samych danych, ale też ich transformacji. W serii wpisów skupię się głownie na wykorzystaniu Prepa jako alternatywy dla Excela w zakresie podstawowych ale czasochłonnych procesów czyszczenia i transformacji danych. Na początku zajmiemy się początkami w Prepie wraz z opisem podstaw czyszczenia danych, a w kolejnych transformacją oraz łączeniem danych z różnych źródeł i ich późniejszym eksportem w celu dalszej analizy.
Podłączenie źródła danych i pierwsze kroki
Pierwszym krokiem w Prepie jest podłączenie źródła danych. Podobnie jak w samym Tableau mamy tu wiele możliwości: poprzez pliki Excela, PDFa czy tekstowe, serwery pokroju SQL server czy rozwiązania chmurowe typu Snowflake czy Azure:
Zacznijmy od podłączenia przykładowego źródła w postaci pliku Excela. Po wybraniu odpowiedniego pliku dostajemy widok jak poniżej. Na interfejs Prepa składa się:
1 – panel połączeń danych (connections)
2 – panel wizualizacji przepływu danych (flows)
3 – panel szczegółów danego kroku transformacji – będzie różny dla różnych opcji (kroków)
Po podłączeniu danych w naszym przepływie danych (flow) pojawia się pierwszy krok – Input. Mamy tutaj informacje o połączeniu, jego ustawieniach, próbce danych (przy dużych datasetach pracujemy na wycinku danych). Znajdziemy tutaj również listę pól z naszego źródła wraz z typem rozpoznanym przez Prepa wraz z podglądem wartości. Mamy również listę zmian, które możemy już na tym kroku zrobić – przykładowo zmienić typ danych (np. z tekstu na liczbę) lub usunąć pola których nie używamy:
Aby rozpocząć właściwą transformację danych, dodajemy krok ikonką (+), wybierając z dostępnych opcji Clean Step (inne rodzaje kroków będziemy wykorzystywać później):
Czyścimy dane – uzyskujemy liczby z tekstu
Dodanie kroku Clean pozwala nam na wyświetlenie danych i ich następną przeróbkę. Zacznijmy od tego co widzimy w oknie:
1 – aktualnie wyświetlany krok we flow (obecnie Clean 1 – nazwę jak i kolor kroku możemy edytować)
2 – panel zmian, na którym będą wyświetlać się kolejne modyfikacje danych, które przeprowadzimy
3 – panel podsumowania danych – w zależności od typu danych widzimy wartości które znajdują się w naszej bazie danych wraz z mini-wykresami pokazującymi ich rozkład
4 – panel podglądu danych – możemy podejrzeć jak wyglądają nasze dane ze źródła
5 – belka z różnymi opcjami: filtrowanie, zmiana nazw, tworzenie pola kalkulowanego, a także lista rekomendacji oraz zmiany widoku
6 – mapa naszego flow, co przydaje się przy nawigacji na dużych przepływach danych
Patrząc na nasze dane od razu widać, że wymagają nieco pracy. Dataset zawiera informacje o samochodach przeznaczonych do sprzedaży. Uwagę zwraca chociażby pole przebieg (Mileage) czy cena (Price) – powinny być to wartości liczbowe a mamy tekst. Zacznijmy od pola Mileage. Po kliknięciu na opcje pola mamy dostępne kilka gotowych poleceń transformacji danych. Z pola Clean wybierzemy kolejno Remove Letters, a następnie Remove Punctuation. Powinniśmy dostać liczby – musimy jeszcze tylko zmienić typ pola ze String (Abc) na Number (#Whole). Pozostają nam jeszcze wartości null – brak wartości dla samochodów nowych. Poradzimy sobie z tym wybierając klikając na wartość null i wybierając edit value gdzie wpisujemy 0. Uzyskujemy tym samym pole liczbowe zamiast tekstowego. Dodatkowo na liście zmian pojawiły się nam cztery kroki transformacji danych, które wykonaliśmy – możemy je później edytować, usuwać czy zmieniać kolejność:
Podobne przekształcenia dokonujemy na cenie, zaczynają od usunięcia znaków interpunkcyjnych. Problem jest ze znakiem „$” – nie jest litera tylko symbol. Musimy usunąć ją z pola – możemy to zrobić przy wykorzystaniu funkcji Split, zachowując drugi człon (czyli liczbę). Następnie usuwamy pole źródłowe (Price), i zmieniamy nazwę nowo podzielonego pola na Price:
Dzięki tym przekształceniem nasza baza zawiera już gotowe do analizy pola liczbowe z przebiegiem oraz ceną auta.
Prep w służbie czyszczenia danych
Tableau Prep w obszarze czyszczenia danych sprawdza się wyśmienicie – mnóstwo opcji jest dostępnych z poziomu menu, więc nie musimy nawet tworzyć pól obliczeniowych. Tak stworzone raz kroki potem są automatycznie odtwarzane przy odświeżaniu danych. Po czyszczeniu danych możemy przystąpić do kolejnego kroku, czyli transformacji oraz następnie eksportu do Tableau. Te kroki będą opisane w kolejnych wpisach z serii.
Mateusz Karmalski Tableau Author