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.

Podstawowej pojęcia w Hop

Zapoznaj się z poniższymi podstawowymi pojęciami by szybciej zrozumieć na czym polega organizacja pracy w tym ETL

Potoki (pipelines) są rzeczywistymi wykonawcami pracy na danych. Operacje w potoku odczytują, modyfikują, wzbogacają, czyszczą i zapisują dane. Orkiestracja potoków odbywa się za pośrednictwem innych potoków i/lub przepływów pracy.

Potok jest zbiorem tranformacji (patrz poniżej czym jest transformacja). Np. budując proste rozwiązanie które odczyta plik, wyczyści z niego niepotrzebne dane, zmieni format jednego z pol/kolumn, zapisz do pliku docelowego - potrzebujesz kilku transformacji połączonych hop'em (przeskokiem). Połączone razem utworzą potok.

Jeśli masz doświadczenie z Pentaho, tam znaczenie "transformacji" było inne - w Hop odpowiednikiem transformacji jest potok a kroki (steps) to w Hop są akcje.

Transformacja (transform) to jednostka pracy wykonywanej w potoku. Typowe operacje transformacji to odczytywanie danych z plików, baz danych, wykonywanie wyszukiwań lub łączeń, wzbogacanie, czyszczenie danych i nie tylko. Wszystkie przekształcenia w potoku są wykonywane równolegle. Przekształca dane procesowe i przenosi partie przetworzonych danych w przeskokach do przetworzenia przez kolejne akcje.

Rolą "transformacji" jest wykonanie jakiegoś specjalistycznego zadania. Np. otwarcie pliku, zamiana jednego ciągu znaków na inny, zapisanie danych do pliku, porównanie dwóch danych. Atomowe czynności z których składa się Twój program. Gdybyś pisał(a) kod, wiele tych "transformacji" mogłoby znaleźć się w jednej funkcji lub klasie. Jednak tutaj rozbite są na takie właśnie atomowe zadania by środowisko było elastyczne i umożliwiało stworzenie praktycznie każdego programu bez kodowania.

Przepływ pracy (workflow) to sekwencja operacji, które są domyślnie wykonywane sekwencyjnie (z opcjonalnym wykonywaniem równoległym). Przepływy pracy zwykle nie działają bezpośrednio na danych, ale wykonują zadania orkiestracji. Typowe zadania w Przepływie pracy (Workflow) to pobieranie i archiwizowanie danych, wysyłanie wiadomości e-mail, obsługa błędów itp.)

Możesz zbudować wiele programów używając tylko potoków. Jednak potok zawierający zbyt wiele tranformacji może być trudny do zrozumienia, zbyt skomplikowany do modyfikacji. Często lepszym pomysłem jest umieścić te transformacji w kilku potokach i połaczyć je przeskokami w przepływie pracy.

Akcja (action) to jedna operacja wykonywana w przepływie pracy. Akcje są domyślnie wykonywane sekwencyjnie, z opcją konfiguracji równoległej. Akcja zwraca prawdziwy lub fałszywy kod wyjścia, który może zostać użyty (lub zignorowany) podczas wykonywania Workflow.

Przeskok (hop) łączy akcje w przepływie pracy lub transformacje w potoku. W przepływach pracy przeskoki działają w oparciu o status wyjścia poprzednich akcji, przeskoki w potokach przekazują dane między przekształceniami.

Raz jeszcze: w potoku transformacje łączysz przeskokami. Jeśli chcesz połączyć kilka potoków w przepływie pracy, łączysz je przeskokami.

Projekty i środowiska

Projekt

Projekty Hop to koncepcyjne grupowanie konfiguracji, zmiennych, obiektów metadanych oraz przepływów pracy i potoków. Projekty mogą dziedziczyć metadane z projektów nadrzędnych. Projekt zawiera co najmniej jedno środowisko, w którym zdefiniowana jest rzeczywista konfiguracja.
Przykład: projekt „Sprzedaż” zawiera połączenie z bazą danych „klienci” oraz szereg przepływów pracy i potoków. Konfiguracje środowiska uruchomieniowego, właściwości połączenia z bazą danych itp. są zdefiniowane w środowiskach 'dev', 'uat' i 'prd'.

Projekt jest kontenerem który posiada katalog w którym mogą znajdować się przepływy pracy i potoki. Projekt ma domyślnie wybrane jedno ze środowisk ale podczas pracy możesz wskazywać różne środowiska. To jest szczególnie wygodne podczas używania dwóch środowisk; testowego i produkcyjnego. Mając np. otwarty potok wskazujesz które środowisko będzie używać. W środowisku definiujesz np. połączenie do baz danych - a te będą inne dla testów i dla produkcji. Nie musisz zmieniać definicji baz danych w samych potokach.

Środowisko

Środowiska przeskoków to instancje projektów, które przechowują rzeczywiste konfiguracje środowiska wykonawczego i inne obiekty metadanych projektu.
Przykład: środowisko „dev” dla projektu „Sales” określa odczyt z hosta „10.0.0.1” dla połączenia z bazą danych „customers”.

Wygodne jest żąglowanie środowiskami - nie musisz zmieniać ustawień w samych potokach czy przepływach przez co są one bardziej uniwersalne, wdrożenia i zmiany odbywają się szybciej.

Pobieranie i instalacja Hop

Hop został zaprojektowany tak, aby był jak najłatwiejszy do szybkiego pobrania i błyskawicznie dostępny do użycia.
Rozpoczęcie i rozpoczęcie pracy z Hop nie mogło być prostsze: po prostu pobierz program ze strony Apache Hop.

Wymagania programu

Hop jest samowystarczalny, wszystko czego potrzebujesz to środowisko uruchomieniowe Java. Hop został opracowany i przetestowany z Javą 8, ale nie powinno być żadnych problemów z uruchomieniem Hopa z Javą 11. Zapoznaj się z dokumentacją Java , aby pobrać i zainstalować środowisko wykonawcze Java dla swojego systemu operacyjnego.

Instalacja

Rozpakuj Hop do wybranego folderu. Z tego folderu będziesz mógł uruchamiać różne narzędzia Hop poprzez odpowiadające im skrypty - Hop posiada kilka programów realizujących różne cele.

Organizacja środowiska

Sugerowane jest byś stworzył(a) katalog 'Hop' w którym będziesz przechowywać kolejne wersje oprogramowania Hop. W tym katalogu utwórz katalog "Workspace" w którego podkatalogach będziesz trzymać projekty.

Teraz, gdy masz już zainstalowany Hop, przyjrzyjmy się wszystkim dostępnym narzędziom Hop.

Narzędzia Hop

Hop zawiera szereg narzędzi, które są zoptymalizowane pod kątem różnych zadań, które muszą wykonać programiści i administratorzy Hop.

Hop Gui

Hop Gui to wizualne IDE, w którym pracujący z Hop tworzą, testują, uruchamiają i zarządzają cyklem życia przepływów pracy i potoków. Oprócz funkcjonalności dla rozwoju i zarządzania cyklem życia, Hop Gui zawiera narzędzia do zarządzania projektami i środowiskami, wyszukiwania i zarządzania metadanymi, zarządzania i kontroli wersj.

Windows: hop-gui.bat

Linux: hop-gui.sh

Hop conf

Hop Conf to narzędzie wiersza poleceń do zarządzania różnymi aspektami konfiguracji Hop: projektami, środowiskami, konfiguracją chmury i nie tylko.

Windows: hop-conf.bat

Linux: hop-conf.sh

Hop run

Hop Run to narzędzie wiersza poleceń do uruchamiania przepływów pracy i potoków, z opcjami (wyświetlania lub) określania projektów, środowisk, właściwości i uruchamiania konfiguracji.

Windows: hop-run.bat

Linux: hop-run.sh

Serwer Hop

Hop Server to interfejs usługi www do zarządzania i uruchamiania przepływów pracy i potoków.

Windows: hop-server.bat

Linux: hop-server.s

I to jest koniec naszego przewodnika po ETL Hop. W następnym artykule dowiesz się jak stworzyć swój pierwszy program w Hop.