Podłączamy i ładujemy dane przy użyciu Power Query
Pierwszym krokiem jest oczywiście podłączenie danych. Power Query można uruchomić z poziomu Power BI – klikając pole „Transform data”. Dane podłączamy wybierając „Get data”. Mamy do dyspozycji mnóstwo połączeń – od tych podstawowych typu csv czy xls po online typu Azure czy SalesForce.

W celach ćwiczeniowych podłączymy się do danych z wynikami meczów – pozostając w tematyce niedawno zakończonego EURO. Po wybraniu opcji File -> Text/CSV uzyskujemy podgląd naszych danych:

Po kliknięciu ok nasze dane są ładowane i możemy rozpocząć modelowanie oraz transformacje. Główne okno Power Query przypomina inne aplikacje Microsoftu. Na górze mamy wstążkę z dostępnymi opcjami, na środku główny widok tabeli, po lewej lista kwerend (podłączeń danych), a po prawej listę czynności, które wykonaliśmy podczas modelowania. Jest to bardzo fajna funkcjonalność, dzięki której widzimy jakie transformacje są wykonywane na naszych danych i w jakiej kolejności. Dodatkowo raz zdefiniowanych kroków nie musimy definiować ponownie, czyli opracowując transformacje robimy to tylko raz. Listę i poszczególne kroki możemy również edytować, co ułatwia wprowadzanie późniejszych zmian.

Czyścimy, modelujemy i transformujemy dane w Power Query
Po załadowaniu danych możemy przystąpić do żmudnego procesu czyszczenia danych, aby nadawały się do analizy. PowerQuery po podłączeniu danych automatycznie tworzy trzy kroki:
1. Source – podłączenie danych
2. Promoted Headers – potraktowanie pierwszego wiersza tabeli jako nagłówków
3. Changed Type – ustalenie typu danych
Trzeci punkt jest wykonywany automatycznie na podstawie próbki danych, dlatego też może być nie zawsze poprawny. W naszym przypadku model niepoprawnie rozpoznał datę. Zamiast typu Date został wybrany Text. Możemy w łatwy sposób zmienić to klikając na typ danych w nagłówku:

Kolejnym etapem jest wybranie odpowiednich kolumn. Dobrą praktyką jest pozostawienie jedynie tych, które są istotne w dalszej analizie. Dzięki temu nasz model nie tylko będzie bardziej przejrzysty, ale również mniejszy objętościowo i przez to również szybszy.

Po wybraniu kolumn kolej na wiersze. Jeżeli nasze dane zawierają błędy, wartości puste, duplikaty – na tym etapie możemy je wyeliminować poprzez wybór odpowiedniej opcji. W naszym przypadku usuniemy wiersze z błędnymi datami.

W tym momencie warto zwrócić uwagę na sposób w jaki Power Query realizuje nasze polecenia. Wybierając odpowiednie opcje z interfejsu graficznego, jakim są polecenia ma wstążce, Power Query tworzy formuły w języku M. Możemy je podejrzeć w pasku formuł dokładnie tak samo jak w Excelu:

Kolejne opcje na wstążce pozwalają nam na dzielenie kolumn, ich formatowanie lub wydobycie interesujących nas wartości. Załóżmy, że chcemy z daty wydobyć rok. Możemy to zrobić przy pomocy opcji split:

Lub za pomocą polecenia Extract:

Druga opcja ma tę zaletę, że nowa kolumna zastępuje starą. W przypadku polecenia Split dostajemy dwie kolumny, co oznacza konieczność dodania następnego kroku – czyli usunięcie pierwszej kolumny. Tak jest często przy modelowaniu danych w Power Query – żądany efekt możemy uzyskać na kilka sposób. Powinniśmy zawsze szukać tego najprostszego, aby nasz model był efektywny.
Modelowanie danych- rozbudowujemy model danych o nowe elementy
Przy wykorzystaniu Power Query możemy dodawać nowe kolumny obliczeniowe do naszej tabeli danych. Służy temu oddzielna wstążka Add Column. Mamy do wyboru kilka opcji, a formuły możemy wpisywać w edytorze dostępnym po wybraniu opcji Custom Column. W analizowanym przypadku dodamy kolumnę z liczbą bramek w meczu, na którą składa się suma bramek gospodarzy i gości:

Formuły definiowane są we wspomnianym wcześniej języku M. W podstawowych zastosowaniach jest on dość intuicyjny, natomiast w bardziej zaawansowanych wymaga nieco wprawy. Dlatego też bardzo pomocny jest przykładowo edytor Conditional Column, w którym układamy reguły analogicznie do funkcji jeżeli znanej z Excela. Załóżmy, że chcemy dodać kolumnę pokazującą kto wygrał: gospodarz, gość czy był remis. Funkcja zdefiniowana za pomocą edytora wygląda następująco:

Natomiast funkcja w języku M wygenerowana przez edytor wygląda następująco. Mając doświadczenie z funkcjami logicznymi przykładowo w Excelu dość łatwo odczytać składnię funkcji.

Naszą tabelę możemy również rozbudowywać poprzez dołączenie do niej innych kolumn. Poszczególne kwerendy możemy łączyć na dwa sposoby:
1. Append – dołączamy tabele w takim samym układzie do siebie jedna pod drugą
2. Merge – dołączamy do głównej tabeli dane z drugiej, wyszukiwane po zadanym kluczu
Opcja merge działa analogicznie jak łączenie tabel za pomocą połączenia typu join. Wybierając opcję Merge wskazujemy tabelą, którą chcemy dołączyć, pola po których ma odbywać się wyszukiwanie pozycji oraz rodzaj joina (left, right, full, inner). W analizowanym przypadku do tabeli głównej chcemy dodać informację o regionie, w którym odbywały się mecze. Wyszukujemy więc po polu „country” wykorzystując opcję Left Outer join.

Po połączeniu tabel pozostaje nam jedynie wybranie pól, które chcemy wyświetlić z dołączanej tabeli w naszej bazowej:

I następnie możemy załadować dane do modelu, aby rozpocząć proces analizy i wizualizacji danych w Power BI.
Power Query to naprawdę użyteczny i przyjazny ETL
Power Query jako narzędzie ETL sprawdza się doskonale. Interfejs jest przyjazny dla użytkownika, przyzwyczajonego najczęściej do produktów Microsoftu. Edytor graficzny pozwala na modelowanie danych bez konieczności znajomości języka M czy jakiegokolwiek języka zapytań typu SQL. Dlatego też podstawowe transformacje możemy wykonywać w dość prosty sposób. Świetną opcją jest okno z zaaplikowanymi krokami podczas modelowania danych, dzięki czemu widzimy co na poszczególnym etapie dzieje się z naszymi danymi. W łatwy sposób można tym samym odtworzyć ścieżkę i ją edytować, gdy tylko potrzeby biznesowe się zmienią. Obrobione w Power Query dane od razu nadają się do wizualizacji w zintegrowanym z nim Power BI, tworząc naprawdę spójny pakiet self-service BI.
Modelowanie danych – Tableau Prep czy Power Query?
Pytanie jest równie dobre, jak to czy wybrać Power BI czy Tableau. Nie ma tutaj jednej konkretnej odpowiedzi, a wiele zależy od preferencji użytkownika. Same narzędzia jeśli chodzi o funkcjonalności są do siebie zbliżone – oba są narzędziami ETL, które umożliwiają modelowanie i transformacje danych. Oba przygotowuję nam dane po to, aby następnie mogły być analizowane i wizualizowane za pomocą Power BI lub Tableau. Tableau Prep ma tę zaletę, że generuje nam gotowe extracty do analizy w Tableau. Nie musimy więc exportować danych do plików csv. Power Query za to dzięki integracji z Power BI nie wymaga uruchamiania oddzielnej aplikacji (jak Prep), co również ułatwia pracę. Interfejs Power Query dla początkującego użytkownika będzie również łatwiejszy do przyswojenia na początku, gdyż jest tożsamy z innymi aplikacjami jak Excel. Tableau Prep z kolei świetnie wizualizuje przepływ danych w postaci tzw. Flow, dzięki czemu widzimy jak nasze dane są modelowane. Dlatego też nie ma możliwości jednoznaczne wskazania któregokolwiek jako zdecydowanie lepszego – oba są dobrymi narzędziami ETL.
Mateusz Karmalski,
Tableau Author