
Tworzymy pierwszy potok i przepływ w Apache Hop
Z artykułu Pierwsze kroki w Apache Hop dowiedziałe(a)ś się podstaw o Apache Hop i jak zaprojektowane jest środowisko tego ETL. W tym artykule dowiesz się jak stworzyć pierwszy potok i jak wykorzystać go w przepływie pracy.
Budujemy potok
Zbudujemy bardzo proste zadanie w ETL które otworzy plik, dokona odpowiednich zmian, zapisze zmienione dane i przekopiuje plik do docelowego katalogu. Zadanie jest trywialne ale tworząc je, będziesz mieć okazję do zapoznania się z programem. To powzwoli Ci zrozumieć na czym polega budowanie projektów w Apache Hop.
Potok to ciąg zadań. W naszym przypadku otworzy plik, zmieni dane, zapisze zmienione dane do pliku. Trzy różne zadania, nazwane w Hop transformacjami połączone przeskokami. W Hop organizujemy nasze prace w projekty a każdy z projektów ma swoje środowisko pracy. Projekt jest kontenerem wskazującym na konkretny katalog na dysku w którym będą nasze potoki i przepływy (o przepływach później).
Tworzymy projekt i środowisko projektu
Uruchamiamy GUI naszego ETL poprzez wykonanie pliku 'hop-gui.bat' w Windows lub 'hop-gui.sh' w Linux. Po otwarciu programu po prawej stronie pola z nazwą projektu masz ikonę 'p+'. Kliknij ją by utworzyć nowy projekt. Projekt to kontener (wspólne ustawienia, katalog, skrypty, definicje połączeń do zewnętrznych zasobów...) w którym będą przechowywane nasze 'potoki' i 'przepływy'. Projekt może składać się z wielu takich potoków i przepływów. Wskazane by każdy projekt był przechowywany w odrębnym katalogu; np. workspace/projekt1, workspace/projekt2
Wpisz nazwę projektu, tutaj mamy "Testowy projekt", i wskaż gdzie znajdować się będzie folder projektu. Kliknij OK. Mamy utworzony projekt. Następnym zadaniem jest utworzenie środowiska. Domyślnie Hop zaproponuje automatycznie utworzenie skojarzonego z projektem środowiska:
"Srodowisko cyklu życia" zawiera dodatkowe ustawienia które mogą być wykorzystywane przez nasze potoki i przepływy pracy. Np. zmienne/parametry połączenia do bazy danych - środowisko produkcyjne może wskazywać na inny adres zasobów niż środowisko testowe. Dzięki temu zmieniając środowisko z którego korzystasz w danym przepływie czy potoku, łączysz się do różnych baz danych bez konieczności przepisywania potoków i przepływów. Możesz też szybciej zbudować nowy potok/przepływ bez konieczności ponownej definicji połaczeń z zasobami, ustawiania zmiennych itp.
Projekt może posiadać wiele "środowisk" ale jedno środowisko nie może być przypisane do wielu projektów. Przeczytaj więcej o zarządzaniu projektami i środowiskiem HOP w tym artykule.

Pierwsze kroki w Apache Hop
Apache Hop bazuje na Pentaho Data Integration (Kettle). Pierwotni twórcy zniecierpliwienie brakiem rozwoju Kettle postanowili wykorzystać kod Pentaho PDI (Kettle) w wersji 8.2 by zbudować nowy ETL w formule projektu Apache - Apache HOP. Hop kontynuuje podejście do przetwarzania danych znane z Kettle; pracujemy z danymi wizualnie, nie piszemy zupełnie kodu a jeśli nawet to bardzo rzadko.
Przetwarzanie danych w Hop polega na tworzeniu przepływyów pracy i potoków w wizualnym środowisku programistycznym o nazwie Hop Gui. Te przepływy pracy i potoki mogą być wykonywane na różnych silnikach: przepływy pracy i potoki mogą działać na natywnym silniku Hop, zarówno lokalnie, jak i zdalnie. "Potoki" można również uruchomić w Apache Spark, Apache Flink i Google Dataflow poprzez konfiguracje środowiska wykonawczego Apache Beam.
W przepływach pracy i potokach danych można zastosować setki operacji: odczytywać i zapisywać na różnych platformach źródłowych i docelowych, ale także łączyć, wzbogacać, czyścić i na wiele innych sposobów manipulować danymi. W zależności od silnika i wybranej funkcjonalności, Twoje dane mogą być przetwarzane wsadowo, strumieniowo lub hybrydowo wsadowo/strumieniowo.
Co mogę zrobić w Apache Hop?
Wszystko to co możesz zrobić w ETL. Kilka przykładów jak Apache Hop może pomóc ci w Twojej pracy:
-
Ładowanie dużych zestawów danych do baz danych z wykorzystaniem środowisk przetwarzania w chmurze, klastrowych i masowo równoległych.
-
Zasilenie hurtowni danych.
-
Integracja różnych architektur danych, łączenie relacyjnych bazy danych, plików, baz danych NoSQL, takich jak Neo4j, MongoDB, Cassandra itp.
-
Migracja danych pomiędzy różnymi bazami danych i aplikacjami.
-
Profilowanie i czyszczenie danych.

Co się dzieje z Pentaho?
W zasadzie... nic. Wiele organizacji przez lata intensywnie inwestowało w Pentaho Data Integration (PDI). Oprogramowanie może być bezpłatne, ale czas potrzebny do zbudowania projektu w obszarze przetwarzania danych z utworzonymi setkami zadań i transformacji zdecydowanie nie jest. Niestety rozwój PDI w dużej mierze utknął w martwym punkcie. Pojawiają się nowe wersje, ale stare błędy pozostają nienaprawione, a nowa funkcjonalność jest rzadkością.
Hitachi Vantara po przejęciu Penatho w 2015 postanowili bardzo skomercjalizować oprogramowanie które przejeli. ETL nazwany Pentaho Kettle (i jego komercyjna wersja PDI) oferuje tak wiele że wiele firm nie ma motywacji by zakupić jego wersje komercyjną. Hitachi Vantara wycofuje się z Kettle i innych darmowych produktów. Wersje które powstały po zakupie przez nich Pentaho nie wniosły niczego poza zmianami numerów. Postanowili także zamknąć forum które było świetnym miejscem by poprosić o pomoc innych. Efekty tych decyzji są widoczne; popularność Pentaho Kettle spada.
Czy to oznacza że nie ma już sensu używać tego oprogramowania? Absolutnie nie. Jest wiele powodów dla których to nadal świetny ETL. Choć metody przetwarzania danch się zmieniają, powstają nowe techniki i wspierające je oprogramowanie, wiele firm nadal nie potrzebuje niczego więcej niż to co wspiera Pentaho.
Ale dla tych którzy chcą coś więcej i zastanawiają się nad nowym ETLem mamy świetną wiadomoć. Pentaho Kettle rozwija się!

Zapisywanie danych z Pentaho Kettle do Excel
Najlepszym sposobem na sprawną pracę w Excelu jest... unikanie Excela. Jest to szczególnie widoczne przy pracy z dużymi wolumenami danych. Wszystkie modyfikacje danych i obliczenia wykonasz sprawniej i szybciej w Pentaho a rezultat zapiszesz w formacie Excel. Poniżej znajdziesz odpowiedź jak stworzyć formuły, dodać komentarze, użyć szablonów, utworzyć aktualne wykresy oraz inne przydatne informacje.
Przygotuj Pentaho na pracę z Excelem
Jeśli używasz Pentaho w domyślnej konfiguracji, całkiem prawdopodobne jest że przy otwarciu większego pliku pojawi się błąd "java.lang.OutOfMemoryError: GC overhead limit exceeded". Pentaho napisany jest w Java która bardzo lubi pamięć. Dodatkowo pliki Excela są "ciężkie" - ten format wymaga dużo zasobów by przechować dane. Rozwiązaniem jest przydzielenie Penatho większej ilości pamięci. W katalogu "pdi-ce-x.x.x.x-xxx\data-integration" znajdź plik spoon.bat, otwórz go w notatniku i zmodyfikuj linię:
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m"
Zmieniając parametr "-Xmx". Ustaw go np. na "-Xmx4g". Ponownie uruchom Penatho po zmianie.