Backend

ETL i ESB. Które narzędzie wybrać do migracji danych?

Migracja danych jest jednym z zagadnień, które występują w każdym większym projekcie informatycznym. W związku z tym w pracy programisty często zdarzają się przypadki, w których konieczne jest przenoszenie danych z jednego systemu do drugiego lub wielu innych systemów. Wgrywane dane zazwyczaj muszą być transformowane i przenoszone za pomocą różnych protokołów.

Czasami możemy potrzebować integracji w czasie rzeczywistym, a w innych przypadkach musimy przeprowadzać transformacje dużej ilości danych i obliczenia. Istnieją dwa rodzaje narzędzi, które rozwiązują te problemy. Każde uwzględnia własne rozwiązania i ma własny zestaw wad i zalet. Są to narzędzia ETL i ESB.

Vedran Pavlic. Senior Salesforce Developer. Ma 5-letnie doświadczenie we wdrażaniu standardowych i niestandardowych rozwiązań Salesforce, w tym Salesforce Lightning Communities czy Salesforce CPQ. Budował i zarządzał wieloma dużymi i złożonymi projektami, optymalizował procesy wewnętrzne oraz organizował warsztaty dla klientów.


Istnieje bardzo dobra analogia z życia wzięta, która ilustruje różnice między nimi:

DOMINO’S PIZZA

Jak działa Domino’s? W swoich zakładach przygotowuje własne ciasto, warzywa, przyprawy itp.. Następnie produkty te dostarcza do restauracji ciężarówkami raz lub dwa razy dziennie. Restauracje zazwyczaj dysponują własnymi skuterami dostawczymi lub samochodami przeznaczonymi do dostawy mniejszych zamówień do klienta końcowego, który zamówił pizzę telefonicznie.

ETL obejmuje taką codzienną dostawę ciężarówek. Jest to zaplanowane przenoszenie dużych ilości danych od źródła do miejsca przeznaczenia. W procesie przenoszenia danych musimy również uwzględnić różne protokoły, metody integracji i transformacji danych, jednak ta podstawowa zasada ich przenoszenia w sposób duży i zaplanowany jest taka sama.

ESB reprezentuje dostawę pizzy skuterami i samochodami, czyli dostarczanie małej ilości danych do systemu w czasie zbliżonym do rzeczywistego. Nie ma sensu wykorzystywać dużej ciężarówki do dostawy pizzy raz lub dwa razy dziennie czy używać mniejszych samochodów lub skuterów do dostarczania produktów do restauracji. Dlatego tak ważne jest, aby wybrać odpowiednie narzędzie do danego zadania.

Wspólne funkcje ETL i ESB

Niezależnie od wymagań i od tego, które narzędzie jest preferowane w danym zadaniu, istnieją wspólne funkcje, które oba narzędzia muszą spełnić, aby mogły być efektywnie wykorzystywane. Podczas wyboru narzędzia należy upewnić się, że spełniają one następujące kryteria:

Poza tymi wspólnymi funkcjami istnieją również specyficzne cechy i właściwości każdego narzędzia, które czynią je preferowanym wyborem w pewnych sytuacjach.

Najprostszy sposób podjęcia decyzji o tym, którego narzędzia użyć, można podsumować na poniższym schemacie.

Reprezentatywne narzędzia w każdej kategorii

W niektórych przypadkach jednak wybór rozwiązania może nie być tak prosty, jak zostało to przedstawione na infografice powyżej. Dlatego też zamierzam głębiej zbadać dostępne możliwości, aby pokazać ich mocne i słabe strony. Zarówno kategorie ETL, jak i ESB posiadają dużą liczbę narzędzi konkurujących ze sobą. Zamierzam jednak w artykule skupić się na jednym z nich w każdej kategorii i opisać ich cechy oraz sposób, w jaki mogą ze sobą konkurować i wzajemnie się uzupełniać.

ETL – Talend

Talend to otwarte narzędzie do integracji danych ETL, które każdy może pobrać i wykorzystać. Licencja w tym wypadku nie jest wymagana. Działa na Javie i posiada dużą ilość gotowych komponentów, które mogą łączyć się z programami SAP, Oracle, XML, Salesforce i innymi. Dane mogą być następnie przetwarzane i przekształcane za pomocą mapowania, filtrowania, sortowania, usuwania duplikatów, a także umożliwiania użytkownikowi budowania własnych komponentów za pomocą Javy.

Posiada również sklep z aplikacjami, w którym użytkownicy udostępnili komponenty. Projekty Talend są podzielone na zadania. Każde zadanie może składać się z jednego lub wielu podzadań, które są zbudowane przy użyciu komponentów. Mogą być one połączone w celu przedstawienia danych przepływających z jednego końca do drugiego. Najpopularniejsze podzadanie składa się z trzech typów komponentów: komponent czytnika danych, komponent mapowania i transformacji danych oraz komponent zapisu danych. Istnieją również komponenty pomocnicze do obsługi błędów, logowania, połączenia proxy…

Jedna rzecz, której Talend nie wspiera, to integracja w czasie rzeczywistym. Jest to narzędzie czysto ETL-owe, więc nie może reagować na zdarzenia w systemie źródłowym. Z drugiej strony, może obsłużyć bardzo duże ilości danych.

Grafika 1. Talend UI

ESB – Mulesoft

Mulesoft wspiera integrację pomiędzy wieloma systemami poprzez tworzenie przepływów danych. Przepływ rozpoczyna się w momencie zaobserwowania zdarzenia w systemie źródłowym. Zdarzenie może być nowym zapisem w bazie danych, nowym użytkownikiem lub inną czynnością. Zdarzenie to jest następnie przetwarzane przez komponenty czytnika i przekazywane do komponentów przetwarzających, które mogą mapować, filtrować lub w inny sposób przekształcać dane i w końcu mogą przekazywać je do komponentu zapisu. Dane przepływają pomiędzy systemami w tzw. wiadomościach. Każda wiadomość Mule ma taką samą strukturę, jak ta pokazana poniżej.

Grafika 2. Struktura wiadomości Mulesoft

Mulesoft obsługuje również transformację danych i może obsługiwać różne protokoły. Dodatkowe funkcje, które wyróżniają Mulesoft spośród innych systemów, to możliwość tworzenia i hostowania usług ESB oraz integracji ciągłej z wykorzystaniem Maven. Fakt, że Salesforce nabył firmę Mulesoft oznacza również, że w przyszłości mogą pojawić się nowe funkcje, które mogłyby jeszcze bardziej ulepszyć produkt.

Grafika 3. Mulesoft UI

Przyszły kierunek

W przeszłości różnice pomiędzy tymi dwoma funkcjami oprogramowania pośredniczącego były dość wyraźne. Firmy w obszarze IT miały po prostu jedno narzędzie do integracji aplikacji i inne rozwiązanie do ładowania danych masowych. Może to jednak być frustrujące i dezorientujące, ponieważ zarówno ETL, jak i ESB mają takie same podstawowe wymagania dotyczące przepływu danych, a mianowicie zdolność do dostarczania danych w zorganizowanym procesie.

Jak widać, wiele funkcji jest wspólnych zarówno dla Mulesoft, jak i Talend jako przedstawicieli danej kategorii. Mulesoft, jako narzędzie ESB, oraz inne nowoczesne rozwiązania ESB, zaczęły doganiać Talend i inne możliwości ETL, i są obecnie tworzone w celu spełnienia tych wymagań.

Rynek zbliża się do punktu, w którym dostarczamy prawdziwe Multi-Latency i Multi-Volume z narzędziami, które mogą obejmować obie funkcje. Firmy na rynku IT nie powinny jeszcze spieszyć się z wymianą swoich obecnych środowisk. Jednak podczas definiowania nowego projektu warto uwzględnić elastyczność w zakresie opóźnień i elastyczność transformacji w ramach tej samej platformy i powinno być to priorytetem w przyszłości.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Wraz z Tomaszem Gańskim jestem współtwórcą justjoin.it - największego job boardu dla polskiej branży IT. Portal daje tym samym największy wybór spośród branżowych stron na polskim rynku. Rozwijamy go organicznie, serdecznie zapraszam tam również i Ciebie :)

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://justjoin.it/blog/narzedzie-migracja-danych" order_type="social" width="100%" count_of_comments="8" ]