Uwolnij moc narzędzi ETL dla AWS

ETL oznacza wyodrębnianie, przekształcanie i ładowanie. Narzędzia ETL wydobywają dane z różnych źródeł i przekształcają je w format pośredni odpowiedni dla systemów docelowych lub wymagań modelu danych. I wreszcie ładują dane do docelowej bazy danych, hurtowni danych, a nawet jeziora danych.

Pamiętam czasy sprzed 15-20 lat, kiedy termin ETL był czymś, co rozumieli tylko nieliczni. Kiedy różne niestandardowe zadania wsadowe osiągnęły swój szczyt na sprzęcie lokalnym.

Wiele projektów miało jakąś formę ETL. Nawet jeśli nie wiedzieli, powinni nazwać to ETL. W tamtym czasie, ilekroć wyjaśniałem jakikolwiek projekt, który obejmował procesy ETL, nazywałem je i opisywałem w ten sposób, wyglądało to prawie jak technologia z innego świata, coś bardzo rzadkiego.

Ale dzisiaj sprawy mają się inaczej. Priorytetem jest migracja do chmury. A narzędzia ETL są bardzo strategicznym elementem architektury większości projektów.

W ostatecznym rozrachunku migracja do chmury oznacza pobranie danych z on-premise jako źródła i przekształcenie ich w bazy danych w chmurze w formie jak najbardziej zgodnej z architekturą chmury. Dokładnie zadanie narzędzia ETL.

Historia ETL i sposób, w jaki łączy się z teraźniejszością

Źródło: aws.amazon.com

Główne funkcje ETL były zawsze takie same.

Narzędzia ETL wydobywają dane z różnych źródeł (baz danych, plików płaskich, usług sieciowych lub ostatnio aplikacji opartych na chmurze).

Zwykle oznaczało to pobieranie plików w systemie plików Unix jako dane wejściowe i przetwarzanie wstępne, przetwarzanie i przetwarzanie końcowe.

Możesz zobaczyć wzór wielokrotnego użytku nazw folderów, taki jak:

  • Wejście
  • Wyjście
  • Błąd
  • Archiwum

W ramach tych folderów istniała również inna struktura podfolderów, oparta głównie na datach.

To był po prostu standardowy sposób przetwarzania przychodzących danych i przygotowania ich do załadowania do jakiejś bazy danych.

Obecnie nie ma uniksowych systemów plików (nie w taki sam sposób jak wcześniej) — może nawet nie ma plików. Teraz są API – interfejsy programowania aplikacji. Możesz, ale nie musisz mieć pliku jako formatu wejściowego.

To wszystko może być przechowywane w pamięci podręcznej. Nadal może to być plik. Cokolwiek to jest, musi być zgodne z jakimś ustrukturyzowanym formatem. W większości przypadków oznacza to format JSON lub XML. W niektórych przypadkach wystarczy stary dobry format CSV (wartości oddzielone przecinkami).

Definiujesz format wejściowy. Tylko od Ciebie zależy, czy proces ten będzie obejmował również tworzenie historii plików wejściowych. To już nie jest standardowy krok.

Transformacja

Narzędzia ETL przekształcają wyodrębnione dane w odpowiedni format do analizy. Obejmuje to czyszczenie danych, sprawdzanie poprawności danych, wzbogacanie danych i agregację danych.

Jak to zwykle bywało, dane przechodziły przez złożoną, niestandardową logikę etapów stacjonowania danych proceduralnych Pro-C lub PL/SQL, przekształcania danych i przechowywania docelowych schematów danych. Był to podobnie obowiązkowy standardowy proces, podobnie jak rozdzielanie przychodzących plików na podfoldery na podstawie etapu przetwarzania pliku.

Dlaczego było to tak naturalne, skoro jednocześnie było fundamentalnie złe? Bezpośrednie przekształcanie przychodzących danych bez stałego przechowywania powodowało utratę największej zalety surowych danych – niezmienności. Projekty po prostu to wyrzuciły bez szans na odbudowę.

Zastanów się. Dziś im mniej transformacji surowych danych wykonasz, tym lepiej. To znaczy do pierwszego przechowywania danych w systemie. Pewnie następnym krokiem będzie poważna zmiana danych i transformacja modelu danych. Ale chcesz przechowywać surowe dane w jak największej niezmienionej i atomowej strukturze. Duża zmiana w stosunku do czasów na miejscu, jeśli mnie pytasz.

Obciążenie

Narzędzia ETL ładują przekształcone dane do docelowej bazy danych lub hurtowni danych. Obejmuje to tworzenie tabel, definiowanie relacji i ładowanie danych do odpowiednich pól.

Krok ładowania jest prawdopodobnie jedynym, który od wieków przebiega według tego samego schematu. Jedyną różnicą jest docelowa baza danych. Podczas gdy wcześniej przez większość czasu była to Oracle, teraz może to być wszystko, co jest dostępne w chmurze AWS.

ETL w dzisiejszym środowisku chmurowym

Jeśli planujesz przenieść swoje dane z on-premise do chmury (AWS), potrzebujesz narzędzia ETL. Nie obejdzie się bez tego, dlatego właśnie ta część architektury chmurowej stała się chyba najważniejszym elementem układanki. Jeśli ten krok jest zły, wszystko inne nastąpi później, dzieląc wszędzie ten sam zapach.

I chociaż jest wiele zawodów, skupiłbym się teraz na trzech, z którymi mam najwięcej osobistych doświadczeń:

  • Data Migration Service (DMS) – natywna usługa od AWS.
  • Informatica ETL – prawdopodobnie główny gracz komercyjny w świecie ETL, z powodzeniem przekształcający swój biznes z on-premise do chmury.
  • Matillion dla AWS – stosunkowo nowy gracz w środowiskach chmurowych. Nie natywny dla AWS, ale natywny dla chmury. Z niczym takim jak historia porównywalna z Informatica.

AWS DMS jako ETL

Źródło: aws.amazon.com

AWS Data Migration Services (DMS) to w pełni zarządzana usługa, która umożliwia migrację danych z różnych źródeł do AWS. Obsługuje wiele scenariuszy migracji.

  • Homogeniczne migracje (np. Oracle do Amazon RDS for Oracle).
  • Migracje heterogeniczne (np. Oracle do Amazon Aurora).

DMS może migrować dane z różnych źródeł, w tym baz danych, hurtowni danych i aplikacji SaaS, do różnych celów, w tym Amazon S3, Amazon Redshift i Amazon RDS.

AWS traktuje usługę DMS jako ostateczne narzędzie do przenoszenia danych z dowolnego źródła bazy danych do celów natywnych dla chmury. Chociaż głównym celem DMS jest tylko kopiowanie danych do chmury, dobrze radzi sobie również z przekształcaniem danych po drodze.

Możesz zdefiniować zadania DMS w formacie JSON, aby zautomatyzować różne zadania transformacji podczas kopiowania danych ze źródła do celu:

  • Scal kilka źródłowych tabel lub kolumn w jedną wartość.
  • Podziel wartość źródłową na wiele pól docelowych.
  • Zastąp dane źródłowe inną wartością docelową.
  • Usuń niepotrzebne dane lub utwórz zupełnie nowe dane w oparciu o kontekst wejściowy.

Oznacza to – tak, zdecydowanie możesz użyć DMS jako narzędzia ETL dla swojego projektu. Może nie będzie tak wyrafinowany jak inne opcje poniżej, ale spełni swoje zadanie, jeśli jasno zdefiniujesz cel z góry.

Współczynnik przydatności

Chociaż DMS zapewnia pewne możliwości ETL, dotyczy to przede wszystkim scenariuszy migracji danych. Istnieje jednak kilka scenariuszy, w których lepszym rozwiązaniem może być użycie DMS zamiast narzędzi ETL, takich jak Informatica czy Matillion:

  • DMS może obsłużyć homogeniczne migracje, w których źródłowa i docelowa baza danych są takie same. Może to być korzystne, jeśli celem jest migracja danych między bazami danych tego samego typu, takimi jak Oracle do Oracle lub MySQL do MySQL.
  • DMS zapewnia pewne podstawowe możliwości przekształcania i dostosowywania danych, ale pod tym względem może nie być zbyt dojrzały. Może to być nadal korzystne, jeśli masz ograniczone potrzeby w zakresie przekształcania danych.
  • Jakość danych i potrzeby związane z zarządzaniem są na ogół dość ograniczone w przypadku systemu DMS. Ale są to obszary, które można poprawić w późniejszych fazach projektu za pomocą innych narzędzi, bardziej przeznaczonych do tego celu. Może być konieczne wykonanie części ETL tak prosto, jak to tylko możliwe. W takim razie DMS to doskonały wybór.
  • DMS może być bardziej opłacalną opcją dla organizacji o ograniczonym budżecie. DMS ma prostszy model wyceny niż narzędzia ETL, takie jak Informatica czy Matillion, co może ułatwić organizacjom przewidywanie kosztów i zarządzanie nimi.
  • Matillion ETL

    źródło: matillion.com

    jest rozwiązaniem natywnym dla chmury i można go używać do integrowania danych z różnych źródeł, w tym baz danych, aplikacji SaaS i systemów plików. Oferuje wizualny interfejs do budowania potoków ETL i obsługuje różne usługi AWS, w tym Amazon S3, Amazon Redshift i Amazon RDS.

    Matillion jest łatwy w użyciu i może być dobrym wyborem dla organizacji, które dopiero zaczynają korzystać z narzędzi ETL lub mają mniej złożone potrzeby w zakresie integracji danych.

    Z drugiej strony Matillion to swego rodzaju tabula rasa. Ma pewne predefiniowane potencjalne funkcjonalności, ale musisz je zakodować na zamówienie, aby je ożywić. Nie możesz oczekiwać, że Matillion wykona pracę za Ciebie od razu po wyjęciu z pudełka, nawet jeśli taka możliwość jest z definicji.

    Matillion również często określał się jako ELT, a nie jako narzędzie ETL. Oznacza to, że bardziej naturalne jest, aby Matillion wykonał ładunek przed transformacją.

    Współczynnik przydatności

    Innymi słowy, Matillion skuteczniej przekształca dane dopiero wtedy, gdy są już zapisane w bazie danych niż wcześniej. Głównym tego powodem jest wspomniany już obowiązek tworzenia niestandardowych skryptów. Ponieważ wszystkie specjalne funkcje muszą być najpierw zakodowane, skuteczność będzie w dużym stopniu zależała od skuteczności kodu niestandardowego.

    Naturalne jest oczekiwanie, że będzie to lepiej obsługiwane w docelowym systemie bazy danych i pozostawia Matillionowi tylko proste zadanie ładowania 1:1 — znacznie mniej okazji do zniszczenia go za pomocą niestandardowego kodu tutaj.

    Chociaż Matillion zapewnia szereg funkcji do integracji danych, może nie oferować takiego samego poziomu jakości danych i funkcji zarządzania, jak niektóre inne narzędzia ETL.

    Matillion może skalować w górę lub w dół w zależności od potrzeb organizacji, ale może nie być tak skuteczny w przypadku obsługi bardzo dużych ilości danych. Przetwarzanie równoległe jest dość ograniczone. Pod tym względem Informatica jest z pewnością lepszym wyborem, ponieważ jest jednocześnie bardziej zaawansowana i bogata w funkcje.

    Jednak dla wielu organizacji Matillion for AWS może zapewnić wystarczającą skalowalność i możliwości przetwarzania równoległego, aby spełnić ich potrzeby.

    Informatyka ETL

    źródło: informatica.com

    Informatica for AWS to oparte na chmurze narzędzie ETL zaprojektowane, aby pomóc w integracji i zarządzaniu danymi z różnych źródeł i celów w AWS. Jest to w pełni zarządzana usługa, która zapewnia szereg funkcji i możliwości integracji danych, w tym profilowanie danych, jakość danych i nadzór nad danymi.

    Niektóre z głównych cech Informatica dla AWS obejmują:

  • Informatica jest zaprojektowana do skalowania w górę lub w dół w zależności od rzeczywistych potrzeb. Może obsługiwać duże ilości danych i może służyć do integracji danych z różnych źródeł, w tym baz danych, hurtowni danych i aplikacji SaaS.
  • Informatica zapewnia szereg funkcji bezpieczeństwa, w tym szyfrowanie, kontrolę dostępu i ścieżki audytu. Jest zgodny z różnymi standardami branżowymi, w tym HIPAA, PCI DSS i SOC 2.
  • Informatica zapewnia wizualny interfejs do budowania potoków ETL, który ułatwia użytkownikom tworzenie przepływów pracy integracji danych i zarządzanie nimi. Zapewnia również szereg gotowych konektorów i szablonów, których można użyć do połączenia systemów i umożliwienia procesu integracji.
  • Informatica integruje się z różnymi usługami AWS, w tym Amazon S3, Amazon Redshift i Amazon RDS. Ułatwia to integrację danych w różnych usługach AWS.
  • Współczynnik przydatności

    Najwyraźniej Informatica jest najbardziej bogatym w funkcje narzędziem ETL na liście. Może być jednak droższe i bardziej skomplikowane w użyciu niż niektóre inne narzędzia ETL dostępne w AWS.

    Informatyka może być kosztowna, zwłaszcza dla małych i średnich organizacji. Model cenowy opiera się na wykorzystaniu, co oznacza, że ​​organizacje mogą być zmuszone płacić więcej w miarę wzrostu wykorzystania.

    Konfiguracja i konfigurowanie może być również skomplikowane, zwłaszcza dla osób, które nie mają doświadczenia z narzędziami ETL. Może to wymagać znacznych inwestycji czasu i zasobów.

    To również prowadzi nas do czegoś, co możemy nazwać „złożoną krzywą uczenia się”. Może to być niekorzystne dla tych, którzy muszą szybko integrować dane lub mają ograniczone zasoby, które mogą przeznaczyć na szkolenia i wdrażanie.

    Ponadto Informatica może nie być tak skuteczna w przypadku integracji danych ze źródeł innych niż AWS. Pod tym względem lepszą opcją może być DMS lub Matillion.

    Wreszcie, Informatica jest bardzo zamkniętym systemem. Istnieje tylko ograniczona możliwość dostosowania go do specyficznych potrzeb projektu. Musisz po prostu żyć z konfiguracją, którą zapewnia po wyjęciu z pudełka. To w jakiś sposób ogranicza elastyczność rozwiązań.

    Ostatnie słowa

    Jak to bywa w wielu innych przypadkach, nie ma jednego uniwersalnego rozwiązania, nawet takiego jak narzędzie ETL w AWS.

    Możesz wybrać najbardziej złożone, bogate w funkcje i drogie rozwiązanie z Informatica. Ale warto zrobić większość, jeśli:

    • Projekt jest dość duży i masz pewność, że całe przyszłe rozwiązanie i źródła danych będą również łączyć się z Informatica.
    • Możesz sobie pozwolić na sprowadzenie zespołu wykwalifikowanych programistów i konfiguratorów Informatica.
    • Możesz docenić solidny zespół wsparcia i dobrze za to zapłacić.

    Jeśli coś z góry jest nie tak, możesz spróbować z Matillionem:

    • Jeśli potrzeby projektu nie są ogólnie tak złożone.
    • Jeśli musisz uwzględnić kilka bardzo niestandardowych kroków w przetwarzaniu, kluczowym wymaganiem jest elastyczność.
    • Jeśli nie masz nic przeciwko budowaniu większości funkcji od podstaw z zespołem.

    W przypadku wszystkiego, co jest jeszcze mniej skomplikowane, oczywistym wyborem jest DMS dla AWS jako usługa natywna, która prawdopodobnie dobrze spełni twoje zadanie.

    Następnie sprawdź narzędzia do transformacji danych, aby lepiej zarządzać swoimi danymi.