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 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:

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:

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:

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