Uruchamianie skryptów Python w Pentaho PDI

Python jest jednym z najbardziej popularnych języków programowania. Różne statystyki pokazują że jest to albo lider albo zajmuje jedno z trzech miejsc na podium. Dlaczego Python jest tak popularny? Python to język wysokiego poziomu, który charakteryzuje się bardzo prostą składnią. Jest językiem o bardzo szerokim zastosowaniu, pozwalającym na napisanie dosłownie wszystkiego przy użyciu odpowiednich bibliotek lub frameworków. Python jest też często używany jako język skryptowy w aplikacjach napisanych w innych językach. Trzeba podkreślić również fakt, że środowisko Python jest banalnie proste do instalacji a rozszerzanie możliwości przez dodatkowe biblioteki błyskawicznie szybkie i nie absorbujące użytkownika.

Czasami w Pantaho robimy rzeczy które trudno zrealizować używając standardowych komponentów - dlatego bardzo łatwo możemy rozszerzyć możliwości Pentaho wstawiając odpowiedni skrypt napisany w Python'ie.

Przygotowanie środowiska - instalacja Python

Za uruchamianie kodu Python w Pentaho PDI/Pentaho Kettle odpowiedzialny jest krok "CPython Script Executor". Ten krok jest dostępny w Pentaho po zainstalowaniu pluginu o takiej samej nazwie autorstwa Mark Hall. Jednak ten komponent potrzebuje środowiska Python w systemie operacyjnym. Rozpocznij więc od instalacji Python na swoim komputerze.

Jeśli korzystasz z Windows, najłatwiej jest pobrać Python uruchamiając Microsoft Store i wpisaniu "Python" w pasku wyszukiwarki sklepu:

Komponent "CPython Script Executor" potrzebuje jednak kilku pakietów Python by mógł funkcjonować (twórca założył że będzie on używany także do operacji "Machine Learning" wiec potrzebne są dodatkowe pakiety/moduły). Doinstaluj je - po zainstalowaniu Python uruchom wiersz poleceń i wykonaj instalacje:

  • pip install scikit-learn
  • pip install pandas
  • pip install matplotlib

Jeśli nie zostały tu wymienione wszystkie potrzebne pakiety, przy pierwszym uruchomieniu transformacji zawierającej "CPython Script Executor" Pentaho zgłosi błąd dokładnie informując którego pakietu brakuje. Jednym z pomysłów może być zainstalowanie wszystkiego jednocześnie w pakiecie miniconda. Środowisko to jednak często nie instaluje się poprawnie i należy wskazywać w zmiennych ścieżki do bibliotek.

Instalacja pluginu CPython Script Executor

Mając zainstalowany Python i potrzebne pakiety/biblioteki przechodzimy do instalacji plugin'u w Pentaho. Wybierz "Tools=>Marketplace" z menu Pentaho. Wyszukaj plugin "CPython Script Executor". Kliknij "Install". Po instalacji ponownie uruchom Pentaho.

Tworzymy pierwszą transformację z kodem Python

Wybierz "File=>New=>Transformation". W panelu po lewej stronie ekranu, w zakładce "Design" rozpocznij pisać "python". Zobaczysz że w sekcji "Statistics" pojawi się krok nazwany "CPython Script Executor" - wybierz go.

Otworz właściwości tego kroku dwukrotnie na nim klikając. Zakładkę "Configure" pozostaw bez zmian. W "Python Script" wprowadź kod:

#Testowy skrypt

test_value = 'Hello world!'

W dolnym polu "Python variables to get" wpisz zmienną którą zwraca skrypt: test_value. Zapisz zmiany i zamknij okno.

By ten krok się uruchomił, tranformację musi coś zainicjować. Np może to być krok "Generate Rows". Wstaw go przed "CPython Script Executor" (w "Limit" właściwości tego kroku wstaw 1).

Uruchom transformację. W rezultacie wykonania tej transformacji, w dolnym oknie i zakładce "Preview data" zobaczysz rezultat; zmienna "test_value" ma wartość "Hello world!".

Ten przykład jest banalny. Ale za wiedząc jak uruchomić kody Python w Pentaho możesz połączyć te dwa światy robiąc niesamowite rzeczy.