SQLite jako baza danych tranformacji Pentaho

Pentaho Kettle ma ogromne możliwości odczytu i zapisu danych w różnych formatach, w wielu formatach. W transformacjach na desktopie raczej nie korzystamy z baz danych - najczęściej wykorzystujemy pliki. Ale czasami wykonanie zadania bazujący tylko na plikach jest trudne i wymaga większej ilości kroków niż moglibyśmy zrobić to używając bazy danych.

Operacje z użyciem bazy danych są często prostsze i szybsze - np. zsumowanie rekordów określonych typów. Ale użycie lokalnej bazy danych, kiedy nie mamy dostępu do serwera, często jest problematyczne. Zwłaszcza wtedy kiedy transformacja która powstała na naszym komputerze ma być współdzielona z innymi użytkownikami. Jest jednak jedno rozwiązanie które powstało z takich i podobnych potrzeb.

Instalujemy lokalną bazę danych

Nie wystraszcie się. Słowo "instalacja" jest tutaj trochę na wyrost o czym się zaraz przekonacie. Naszą bazą danych będzie SQLite. Domem tej najczęsciej wykorzystywanej w świecie bazy danych (wiedziałaś(eś)?) jest https://www.sqlite.org. Jednak nie musisz w tym momencie niczego pobierać z tej strony.

Chcemy rozpocząć korzystanie z tej bazy danych szybko i łatwo. Sama 'baza' jest po prostu jednym plikiem, najczęsciej z rozszerzeniem .db, który utworzymy na dysku. Tę operację najłatwiej będzie wykonać mam używając GUI: https://sqlitebrowser.org. Nie chcemy klepać zaklęć w linii komend. Pobierz najlepiej wersję ZIP i rozpakuj gdziekolwiek na swoim komputerze. Następnie przejdź do katalogu aplikacji i uruchom DB Browser for SQLite.exe

 Po uruchomieniu wybierz przycisk "nowa baza danych". Wybierz lokalizację pliku i jego nazwę, zapisz. Po zapisaniu automatycznie wyskoczy okno tworzenia nowej tabeli. Możesz utworzyć ją poleceniem SQL lub używając wygodnego GUI. SQLite nie wspiera zbyt wielu typów danych ale dla większości projektów to w zupełności wystarczy. OK, nie będziemy robić tutoriala jak korzystać z tego programu - jest intuicyjny i z pewnością sobie poradzisz. Utwórz jedna tabele, w niej co najmniej jedną kolumnę, zapisz i wychodzimy.

Tworzymy w Pentaho Kettle połączenie z SQLite

By połączyć się z SQLite będziemy potrzebować sterownika JDBC. Pobierz najnowszy z Github i skopiuj go do katalogu pdi-ce-X.0.0.0-XXX\data-integration\lib. Pamiętaj by ponownie uruchomić Pentaho po tej operacji. Po uruchomieniu Pentaho definiujemy połączenie z naszą bazą wybierając zakładkę "View" a następnie dwukrotnie klikamy na pozycję "Database connections".

Wybieramy typ połączenia SQLite, nadajemy nazwę połączeniu, wpisujemy nazwę hosta a w "Database Name" wpisujemy ścieżkę do pliku. Nasza baza nie jest zabezpieczona więc usernami i password pozostają puste. Klikamy na "Test" by sprawdzić połącznie z bazą. OK, mamy to!

Testujemy odczyt i zapis danych

W transformacji użyj kroków "table input" by odczytać dane z bazy/tabeli i "table output" by zapisać do bazy/tabeli. Zobaczysz jak użycie bazy danych przyśpieszy operacje które do tej pory wykonywałaś(eś) na plikach. Zwykle stosuj zasadę; odczytuj dane z plików i zapisuj do takich formatów jeśli wymagane. Jednak do obliczeń i transformacje danych wykorzystuj bazy danych - szybciej i wygodniej.