Szanowni Państwo, Droga Publiczności!

Mam niecodzienną okazję rozpocząć wpis na blogu Astrafox słowami konferansjera, ponieważ temat dzisiejszego artykułu jest bardzo silnie związany z imprezą Party With Data, którą organizowaliśmy 21 czerwca w restauracji The Place w Warsaw Spire. Była to kolejna edycja tej imprezy, podczas której odbył się finał konkursu Data Champion Competition, który w tym roku zorganizowaliśmy przy współpracy z firmą LifeTube.

Marka ta jest największą jednonarodową siecią YouTube w Europie, która zrzesza najpopularniejszych youtuberów w kraju. Jest to również bardzo szybko rozwijająca się firma, która przekonuje coraz więcej marek o wartości dodanej wynikającej z współpracy z  influencerami, ale przede wszystkim, jest to zespół wspaniałych ludzi, którzy o YouTube wiedzą wszystko.

Dlatego też zdecydowaliśmy się, by zaprosić LifeTube do współpracy przy organizacji konkursu. Poprosiliśmy o udostępnienie części danych z kanałów, którymi się na co dzień opiekują. Na odpowiedź nie musieliśmy długo czekać, ponieważ okazało się, że analiza danych z YouTube stanowi pewne wyzwanie, które przy wykorzystaniu technologii proponowanych przez Astrafox może odbywać się dużo szybciej i sprawniej.

Ostatnim etapem współpracy, którego mieliście Państwo okazję być świadkami podczas finału Data Champion Competition, była wizualizacja w Tableau. Dzisiaj natomiast zajrzymy za kulisy, czyli tam, gdzie pierwsze skrzypce grał Alteryx. Szybko się bowiem okazało, że stworzenie jednego, prostego data set’u będzie wymagało nieco pracy, ponieważ LifeTube współpracuje z ponad 400 kanałami, a dane z każdego z nich YouTube udostępnia w postaci oddzielnego pliku *.xlsx. Tabele zawierają bardzo dużo zmiennych, a wśród nich te, które chcemy i możemy udostępnić. Dataset należy uzupełnić o dodatkowe dane, istotne w analizie z punktu widzenia LifeTube. Pikanterii całej sytuacji dodaje fakt, że LifeTube bazuje na innych niż YouTube kategoriach kanałów, które jak nietrudno się domyślić, stanowiły oddzielne pliki.

W tym miejscu pojawia się nasz główny bohater – Alteryx.

Wykorzystanie Alteryx do stworzenia tego prostego modelu było dla mnie oczywiste. O ile w codziennej pracy budujemy dużo bardziej skomplikowane projekty, to lider rankingu Data Science wg Garnera pomógł przede wszystkim w zapanowaniu nad danymi z wielu źródeł jak i w tym, że po stworzeniu modelu mogliśmy dalej dyskutować nad finalną zawartością udostępnianego źródła. Ewentualne zmiany wiązały się z kliknięciem w odpowiednie check-boxy w narzędziu ‘Select’, a co za tym idzie, mógł je wprowadzać każdy, a nie tylko osoba, która cały proces okodowała i zna jego strukturę.

Ponieważ budowę całego Workflow omówiłem podczas webinaru, który zamieszczamy na dole artykułu, to tutaj skupię się na poszczególnych narzędziach, które zostały użyte w tym projekcie i pokażę jak w prosty sposób je wykorzystać.

Nie taki Alteryx straszny… czyli, zaczynamy!

Po przydługim wstępie, przechodzimy do pierwszego narzędzia, z którym – obiecuję – będzie miał styczność każdy, kto choć na chwilę pochyli się nad tą genialną aplikacją, czyli ’Input Data’.

Jest to swego rodzaju klucz wiolinowy Alteryx, ponieważ najczęściej to właśnie tego narzędzia używamy zaczynając budowę procesu, a przynajmniej na początku pracy w aplikacji, bo z czasem z pewnością naszą uwagę zwrócą narzędzia z grupy ‘Connectors’, którymi będziemy

mogli podłączyć się do baz Amazon (np. S3), Google Analytics, Marketo, Mongo DB, Salesforce, SharePoint i wielu innych, ponieważ zasoby narzędzi Alteryx możemy rozszerzać o kolejne, dostępne w publicznej galerii. Kontynuując odbieganie od tematu, możemy się również posłużyć samodzielnie zdefiniowanymi makrami, ale… wróćmy do podstaw.

Input Data, pozwoli nam na połączenie z ok. 30 rodzajami plików. W naszym YouTube’owym przykładzie, jak wcześniej wspomniałem, używaliśmy plików excelowych. Żeby rozwiązać problem pojedynczego podłączania do każdego pliku, w narzędziu ‘Input Data’ wykorzystaliśmy metodę wildcard, która pozwoliła na importowanie „hurtem” danych ze wszystkich plików w określonym folderze. Narzędzie pozwala też na dodanie do danych kolumny, zawierające informację o nazwie pliku lub pełnej jego ścieżce. W naszym przykładzie wybraliśmy pierwszą opcję. Już po kilku chwilach mieliśmy wstępnie zaimportowane dane. Konfiguracja narzędzia pozwala również na określenie takich rzeczy jak m.in. od którego rekordu w pliku mają być zaimportowane dane, czy pierwszy rekord zawiera dane, czy nagłówki.

Po podłączeniu, wykorzystałem narzędzie ‘Select’, aby już na wstępnym etapie wybrać tylko te dane, które faktycznie będą interesujące i istotne w analizie. Nie było to w żadnym wypadku spowodowane dbałością o wydajność w tym konkretnym przykładzie, ponieważ taka ilość danych z jaką mieliśmy przyjemność pracować nie byłaby w stanie istotnie wpłynąć na sprawność pracy aplikacji. Kierowało mną raczej przyzwyczajenie do dbałości o porządek środowiska pracy i tzw. “Dobrych praktyk”.

Czym jest Select Tool i kiedy warto go używać?

Zacznijmy od tego, że jest to narzędzie, które w Alteryx występuje jako oddzielny element lub bywa osadzone w innych narzędziach, np. ‘Join’. Select jest genialnym w swojej prostocie narzędziem, które pozwala na wybranie przy pomocy chceck boxów kolumn z których chcemy korzystać w dalszej części procesu. Dodatkowo możemy dowolnie sortować dane. Część z Was z pewnością pomyśli, że to nic wielkiego, po prostu graficzna interpretacja SQL’oweg SELECT, AS, ORDER BY, ASC/DESC itd. Nie sposób się z tym nie zgodzić, natomiast przejrzystość i szybkość pracy jakie zyskujemy dzięki temu narzędziu są nieocenione. Najlepszym przykładem, który pokazuje jego wartość jest załączony do niniejszego tekstu zapis webinaru, na którym zobaczysz, że na etapie omawiania narzędzia ‘Formula’ okazało się, że w danych brakuje jednej istotnej kolumny. Powrót do wcześniejszego etapu i naprawienie błędu zajęło kilka sekund, co przy wertowaniu tradycyjnego SQL’a byłoby znacznie trudniejsze i z pewnością byłoby bardziej czasochłonne. Podsumowując – bardzo przydatne narzędzie, warto o nim pamiętać i wypróbować na własnych przykładach.

Jednym z pierwszych tooli, jakie warto użyć w swojej pracy jest ’Data Cleansing’. Ten bardzo przyjazny element pozwoli Ci na wstępne oczyszczenie danych, uporządkowanie Null’i i usunięcie niepożądanych znaków z danych. W pewnym stopniu działa podobnie do REPLACE czy TRIM, natomiast jego niewątpliwą zaletą jest to, że tą samą operację, którą zdefiniujemy w obrębie narzędzia możemy zastosować do wszystkich wybranych kolumn. Jeśli chciałbyś

wybiec nieco do przodu i zwrócić mi uwagę na to, że w ramach funkcji SQL’owych możemy budować dużo bardziej rozbudowaną logikę niż na to pozwala Data Cleasing, to oczywiście masz rację. Dlatego pełną wolność w pisaniu formuł możemy poczuć w narzędziu ‘Formula’ o którym piszę kilka akapitów dalej.

Kolejne dwa narzędzia o których chciałem wspomnieć to 'Union’ i 'Join’. Tutaj również skojarzenia SQL’owe są trafne, ponieważ Union, pozwala na złączenie ze sobą tabel z różnych źródeł, poprzez dopisywanie rekordów z kolejnych tabel pod poprzednimi. Union możemy skonfigurować ręcznie lub pozwolić Alteryx na uruchomienie narzędzia w domyślnej, automatycznej konfiguracji. Możemy również zdefiniować, co ma się wydarzyć w momencie wykrycia niespójności w

danych oraz to, czy tabela wyjściowa ma zawierać tylko części wspólne wszystkich źródeł, czy każdy element który się w nich pojawia, bez względu na odnalezione dopasowanie lub jego brak.

W podobnym kontekście możemy mówić o 'Join Tool’, natomiast tutaj będziemy mieli do czynienia z łączeniem tabel na podstawie kolumn, które zostaną zdefiniowane jako część wspólna.

Na rysunku powyżej możesz zauważyć, że Join ma dwa sloty ‘In’ i trzy sloty ‘Out’. To, że do ‘In’ podłączamy dane wejściowe z pewnością nie wymaga komentarza, natomiast szczególnie dla tych z Was, którzy budowali model danych w Tableau warto wspomnieć o tym, co jest produktem Join’a w Alteryx. W Tableau, po wyborze metody połączenia tabel w cross-database join naszym modelem danych jest jedna tabela, wynikowa połączenia, na której pracujemy tworząc widoki i dashboardy. W Alteryx na wyjściu narzędzia Join mamy 3 kotwice: Left, Join i Right. Każda z nich wypuszcza oddzielną tabelę, która może służyć do budowania oddzielnej ścieżki naszego procesu. Wyjście oznaczone ‘L’ wystawi nam tabele z tymi rekordami z lewej tabeli, które nie znalazły dopasowania w prawej, odpowiednio wyjście ‘R’ to niedopasowane rekordy z prawego wejścia, a środkowe wyjście, ‘J’, to tabela ze wszystkimi dopasowanymi, połączonymi elementami z obu tabel wejściowych.

Narzędzie konfigurujemy w zakresie kolumn, które mają stanowić klucz połączenia wejściowych tabel. Na uwagę zasługuje również osadzone narzędzie ‘Select’, które w stosunku do wcześniejszego opisu różni się tym, że zawiera informację o źródle kolumny.

Zostańmy jeszcze na moment przy rysunku, na którym widzimy narzędzie z ikoną lornetki, czyli 'Browse tool’. Pozwala ono na wyświetlenie profilu danych oraz pełnego widoku tabeli ze źródła do którego jest podłączone. Ma to uzasadnienie na przykład w takich sytuacjach jak na rysunku, gdzie naszą intencją jest zweryfikowanie wszystkich rekordów, które nie zostały połączone w Join’ie. Takiej możliwości nie da nam standardowe okno podglądu danych, które znajduje się w dolnej części ekranu, ponieważ jest ono ograniczone do pokazywania częściowych, poglądowych wyników.

Na rysunku widzimy również element ’Date Filter’, które obecnie w wersji 2018.x zostało osadzone w narzędziu Filter. To jemu chciałbym poświęcić kolejny akapit. Filter pozwala na stosowanie rozmaitych warunków w procesach Alteryx – w naszym przykładzie posłużył do wyselekcjonowania danych z określonego zakresu dat, natomiast jego potencjał jest zdecydowanie większy. Dane są kwalifikowane do dwóch tabel na zasadzie true/false, a warunki możesz ustalić zarówno

na podstawie predefiniowanych opcji tj. Equals, Does not equal, Comes before, Is null itd, jak i na podstawie własnej formuły. Oczywiście na podstawie obu wyjściowych tabel możesz budować oddzielne ścieżki procesu.

Dla tych wszystkich, którzy czują niedosyt pisania własnych formuł, z pomocą przychodzi Formula 'Tool’, czyli element, który pozwala na pisanie dowolnych, własnych poleceń, formuł i czego tylko dusza zapragnie. W naszym przykładzie w tym narzędziu stworzyliśmy nowe kolumny w bazie, kalkulowane na podstawie istniejących już danych oraz na podstawie pól stworzonych w tym narzędziu “piętro wyżej”. Co mam na myśli mówiąc o piętrach z pewnością pozwoli Ci zrozumieć rysunek poniżej. Po utworzeniu nowej miary,

bez potrzeby uruchamiana całego procesu, od razu możemy ją wykorzystać w kolejnej formule. Jeśli zaś chodzi o dostępne polecenia, to oczywiście dostępny jest pełny zakres funkcji logicznych, matematycznych, tekstowych itd. Utworzone wyrażenia możemy zapisywać i wczytywać wtedy, kiedy zajdzie taka potrzeba.

Elementem, który kończył nasz proces, był 'Output Data Tool’. Jest to narzędzie, które pozwoli nam na zapisanie danych do pliku (np. Excel lub Tableau) do bazy danych poprzez natywny connector lub zdefiniowane wcześniej połączenie. Alternatywnie dla tego narzędzia możemy użyć dodatkowych narzędzi łączących nas

ze specyficznymi bazami danych lub wykorzystać macro ‘Publish To Tableau Server’ i efekt naszej pracy w Alteryx opublikować bezpośrednio na serwerze Tableau.

Na tym zakończę ten bardzo opisowy, ale mam nadzieję że zachęcający do zapoznania się z omawianą aplikacją artykuł. Oczywiście wymienione narzędzia to absolutne podstawy – dla dociekliwych, zamieszczam link do dokumentacji Alteryx, w której znajdziesz opisy wszystkich narzędzi. Pamiętaj również, że w aplikacji, przy każdym z nich masz dostępną opcję ‘Open Example’, która podpowie Ci jak wykorzystać dany element oraz pokaże przykładowe scenariusze z jego udziałem.