Podstawy Pentaho Data Integration 1. Instalacja Pentaho Data Integration Program Pentaho Data Integration można pobrać ze strony - http://www.pentaho.com/download, wybierając wersję na prawo czyli data integration, wersja na lewo to całe business analytics, czyli dodatkowo posiada moduł od generowania raportów. Instalator zajmuje 975 MB, instalacja trwa około 10 minut, program na dysku po instalacji zajmuje około 3 GB. Najważniejszą opcją podczas instalacji jest ustawienia hasła i loginu do bazy postgres którą można potem wykorzystać w narzędziu do zapisywania naszych przetransformowanych tabel. PDI wymaga JAVY w wersji JDK, jeśli posiadamy już zainstalowaną JAVĘ i mamy zmienną środowiskową JAVA_HOME, należy upewnić się że wskazuje ona na JDK a nie na JRE. W dodatku należy dodać iż samo narzędzie tworzy proces tomcata, który potrafi zużywać bardzo duże ilości pamięci aby przyspieszyć wszelkie wykonywane operacje. Bez min 8 gb pamięci ram i szybkiego procesora nie warto podchodzić do narzędzia na lokalnym komputerze. Do tego dochodzi samo zużycie pamięci przez program które też wynosi w okolicach 1.5-2gb ram. 2. Wygląd i interfejs Po instalacji i uruchomieniu programu ukaże nam się taki o to bardzo przyjazny i przyjemny interfejs programu:
Na początkowym widoku mamy dostęp najważniejsze informacje o wprowadzeniu, dokumentacji, przykładach, forum pentado, kanale IRC oraz innych informacjach. Oprogramowanie ma w sobie zawarte przykładowe dane w postaci plików m.in. plików csv, xml, txt i wielu, wielu innych formatach. a) Menu programu Najważniejszą opcją w programie jest opcja tworzenia nowych projektów. Do wyboru mamy 3 rodzaje model, job(zadanie) lub transformation(transformacja). Każda opcja służy do czego innego i ma inne zastosowania. Za pomocą np. transformacji możemy zaimportować nasz plik np. csv, wyszukać w nim np. jakieś rekordy posiadające puste informacje, wprowadzić je wyszkując w innym pliku i zapisać całość do jakiejś zewnętrznej bazy danych w bardzo prostych kilku krokach które postaram się przedstawić, ogólnie w transformacjach mamy bardzo mnóstwo opcji, ponad 200 do wyboru, nie sposób je wszystkie opisać, mamy dostępnych bardzo dużo połączeń, integracji z innymi systemami oraz zaawansowanych metod filtracji oraz operacji na danych. Kolejną opcją są zadania w których w prosty sposób możemy stworzyć logiczne programy, które np. stworzą bazę danych jeśli takowej nie ma, wprowadzą do niej jakieś dane, skorzystają np. z jakiejś wcześniej utworzonej przez nas transformacji i wiele innych opcji. W dodatku możemy na każdym etapie mieć kontrolę nad zadaniem, opcji również jest bardzo wiele. Model jest oddzielnym widokiem programu w którym możemy tworzyć model do analizowania(kostkę) oraz generować z niej odpowiednie raporty. W projekcie skupię się na przykładowej transformacji zawartej w programie, opiszę ją krok po kroku co należy wykonać. b) Designer Zadania oraz transformacje tworzy się w prostym interfejsie designera. Z menu po lewej mamy do wyboru wszystkie opcje do wyboru które przyciągamy do naszego pola pracy na prawo.
Po dodaniu elementu możemy na niego najechać gdzie pojawią się opcje lewego dołączenia(input), prawego dołączenia(output), otworzenia menu kontekstowego oraz ustawień wybranego elementu. 3. Przykładowa transformacja Postaram się teraz opisać krok po kroku jak przygotować przykładową transformację z przykładów zawartych w programie: a) Klikamy File > New > Transformation b) W oknie steps wpisujemy CSV i przeciągamy CSV File Input c) Klikamy dwa razy na dodany element t d) Przy polu filename klikamy browse oraz przechodzimy do ścieżki \designtools\data-integration\samples\transformations\files w katalogu gdzie zainstalowaliśmy pentaho i wybieramy plik sales_data.csv e) Następnie klikamy Get Fields, przy liczbie rekordów do pobrania wpisujemy 0 aby pobrać je wszystkie
f) Klikamy ok. g) Dodajemy nowy element o nazwie Table output h) Łączymy output connector z naszego pliku csv z table output i) Upewniając się że postgres działa w tle(jeśli nie działa można uruchomić go za pomocą odpowiedniego skryptu po instalacji pentaho) dodajemy do niego nową bazę danych za pomocą pgadmin3, program ten można znaleźć w folderze postgresql\bin w katalogu instalacyjnym Pentaho j) Klikamy dwa razy na nasz table output k) Klikamy New przy polu Connection l) Z menu wybieramy PostgreSQL, Access na dole Native, jako Host Name localhost, jako Database Name wcześniej utworzoną nazwę bazy danych, domyślny port to 5432, jednakże pentaho instaluje postgres z portem 5433, oraz wpisujemy login i hasło podawany przez nas podczas instalacji programu, możemy przetestować połączenie czy wszystko w porządku. m) Klikamy ok., w table schema wybieramy public, w target table podajemy dowolną nazwę np. sales, dla pewności możemy zaznaczyć aby ją wyczyściło o ile jakaś istnieje, z racji że podana tabela nie istnieje, należy wybrać opcję SQL oraz kliknąć Execute, spowoduje to utworzenie tabeli w bazie danych n) Na górze nad naszym polecam pracy znajdują się przyciski od uruchomienia transformacji, klikamy w niego, zostawiamy Local execution i klikamy lauch, nasze rekordy z pliku csv zostaną przeniesione do utworzonej tabeli która zostanie wyświetlona. Jednakże np. w kolumnie POSTALCODE znajdują się puste dane, które postaramy się naprawić w następnym kroku 4. Filtrowanie danych, wzbogacanie danych a) Zakładając że mamy stworzony przykład wyżej, dodajemy pomiędzy odczytem z pliku csv a zapisem do bazy opcję filter rows z menu po lewej b) Klikamy dwa razy na dodany element, w opcji the condition jako field wybieramy POSTALCODE, w polu obok wybieramy IS NOT NULL, wyżej w send true data to step wybieramy table output czyli naszą tabelę. Klikamy ok
c) Dodajemy kolejny csv file input tym razem wskazując na plik Zipssortedbycitystate.csv, klikamy tak jak poprzednio Get Fields, oraz ok. i ok. d) Następnie dodajemy element o nazwie Stream lookup, przeciągamy output z naszego dodanego pliku CSV do Stream lookup, oraz z filter rows output również do lookup stream jako false result. Następnie klikamy dwa razy na lookup stream, jako lookup step wybieramy nasz dodany plik CSV, w polu niżej( keys to look up ) wybieramy pola CITY oraz STATE. Niżej wybieramy jakie pola ma pobrać z naszego pliku csv, u nas będzie to POSTALCODE typu String. e) Kolejny element który dodamy to Select values, przeciągamy go do naszego pola, dołączamy output z stream lookup do niego. f) Klikamy dwa razy na select values i klikamy Get Fields to select. Zostaną pobrane pola z obu naszych plików, przesuwamy POSTALCODE_1 pod oryginalny POSTALCODE, następnie w zakładce Remove usuwamy POSTALCODE, a w Meta-deta dodajemy POSTALCODE_1, w rename wpisujemy POSTALCODE, w type wybieramy String, a length 9. Klikamy ok. g) Łączymy output z Select values z naszą tabelą wynikową z postgresa. h) Uruchamiamy transformację, jeśli wszystko poszło w porządku powinniśmy dostać tabelę z poprawionymi POSTALCODE. O to jak powinno wyglądać ostatecznie wykonana przez nas transformacja z dwóch poprzednich punktów:
5. Pozostałe możliwości Pentaho Data Integration Oczywiście nie są to wszystkie opcje dostępne w tym narzędziu. Jednakże przedstawienie bardziej zaawansowanych zagadnień wymaga użycia przykładowo pełnej wersji wraz z Business Analytics lub narzędzi firm trzecich jak np. Apache Hadoop, dzięki czemu możemu przeprowadzać transformację na Big Data oraz innych źródłach Big Data. W wersji business analytics, można np. za pomocą zadań automatycznie publikować modele wykonane po transformacji do serwera BA i w nim tworzyć np. wizualizacje, raporty itp. Źródła wykorzystane przy tworzeniu opracowania: - http://www.pentaho.com/evaluation-path#data-integration Opracowanie wykonał Wojciech Ślawski, numer indeksu 161216