Tworzenie transformacji w Spoon – aplikacji wchodzącej w skład Pentaho Data Integration


Pierwszym krokiem W niniejszym samouczku Kettle ETL będzie stworzenie prostej transformacji stworzonej przy pomocy programu Spoon, będącego częścią Pentaho Data Integration.
Transformacja ta odczyta rekordy z tabeli w bazie danych Oracle, przefiltruje je i zapisze do dwóch plików tekstowych. Rekordy spełniające warunki walidacji zostaną umieszczone w jednym pliku, a te, które nie spełnią kryteriów filtrowania zostaną zapisane do osobnego pliku tekstowego.

Po uruchomieniu aplikacji Spoon ukazuje się ekran ‘Select a repository’, czyli ekran wyboru repozytorium, gdzie będą przechowywane składniki naszych obiektów Kettle.

W celu stworzenia nowego repozytorium wybieramy opcję ‘New’ i podajemy odpowiednie wartości dla konfiguracji połączenia (okno ‘Connection information’).
Warto przetestować poprawność wprowadzonych danych poprzez naciśnięcie przycisku ‘Test’. Okno to ma również bardzo przydatną funkcję w postaci przycisku ‘Explore’, która pozwala na przeglądanie schematu bazy danych.
Tworzymy repozytorium za pomocą przycisku ‘Create or Upgrade’. Do nowo utworzonego repozytorium zalogować się wtedy można jako użytkownik admin (haslo: admin).

Połączenie z bazą danych aplikacji Spoon:
Połączenie z bazą danych aplikacji Spoon


Po poprawnym połączeniu z repozytorium ukaże się ekran aplikacji Spoon. W celu zaprojektowania transformacji należy wykonać następujące czynności:

  • Klikamy na ikonę ‘New transformation’, nadajemy jej nazwe (w tutorialu jest to trsfCountry)

  • Definiujemy połączenie z bazą danych (w Menu main tree, pole database connections)

  • Z menu obiektów (Core Objects) przeciągamy na obszar tranformacji kolejno elementy: Table Input (grupa menu Input), Filter Rows (grupa menu Transform) oraz dwa elementy Text Field Output (grupa menu Output).
  • Z tabeli wejściowej, czyli Table Input, wybieramy tabelę źródłową z bazy danych i definiujemy za pomocą polecenia SQL rekordy i które będą przetwarzane. Opcja Preview jest w tym przypadku bardzo przydatna, gdyż pozwala na podgląd rekordów, które zostaną wybrane.

    Dane wejściowe pochodzące z Oracle:
    Dane wejściowe pochodzące z Oracle

  • Następnie tworzymy połączenia między elementami (tzw. Hops). W głównym menu (Main Tree), rozwijamy opcje aż ujrzymy wartość Hops i definiujemy połączenia pomiędzy poszczególnymi obiektami. Istnieje też łatwiejszy sposób na utworzenie połączeń – poprzez przeciągnięcie linka pomiędzy elementami z wciśniętym lewym klawiszem SHIFT.

  • W obiekcie Filter Values definiujemy kryteria rekordów, które zostaną przetworzone oraz którą ścieżką mają przepływać rekody spełniające kryteria (true data) i nie spełniające ich (false data). Wpisujemy również warunek wyszukiwania (w niniejszym przykładzie będą to rekordy, dla których pole COUNTRY_TEXT zaczyna się na literę S).

    Filtrowanie danych w Spoon:
    Filtrowanie danych w Spoon


  • W kolejnym kroku należy wyedytować dwa pliki zapisu sekwencyjnych danych tekstowych. Należy nadać tym plikom odpowiednie nazwy wraz ze ścieżką (pole Filename), rozszerzenie (Extension) i można skonfigurować wiele opcji ich tworzenia i zapisu.

  • Zapisujemy i uruchamiamy transformacje (menu -> Transformation -> Run lub tez skrótem F9). Na poniższym zrzucie ekranowym widać komunikaty poprawnego wykonanie. Można zaobserwować poprawność działania filtra, ponieważ element table input ma 249 wiersze, z czego 31 zostały przefiltrowane do strumienia ‘Countries starting with S’, a pozostałe 218 zostało odrzuconych (Rejects).
    Warto również zauważyć, że w strumieniach wyjściowych zapisu do plików tekstowych jest odpowiednio 32 i 219 rekordów, a bierze się to stąd, że w konfiguracji plików jest zaznaczona opcja zapisu nagłówków kolumn, która to generuje 1 dodatkowy wiersz.

    Log wykonania transformacji:
    Log wykonania transformacji




    Szkolenia ETL

    Szkolenia, usługi konsultingowe i wdrożenia systemów Business Intelligence, hurtowni danych, raportowania i implementacja procesów ETL.