Co to jest ETL?
ETL odnosi się do ekstrakcji, transformacji i ładowania, jest to 3-etapowy proces stosowany do wyodrębniania danych z różnych źródeł (które mogą istnieć w różnych formach), czyszczenia i ładowania do docelowej bazy danych w celu analizy. ETL to popularny proces w świecie hurtowni danych, w którym dane z różnych źródeł danych są integrowane i ładowane do docelowej bazy danych w celu wykonywania analiz i raportowania dla biznesu. Mówiąc prosto, ETL służy do wyodrębniania danych ze źródła danych, takiego jak baza danych lub plik, a następnie czyszczenia, przekształcania zgodnie z wymaganiami biznesowymi, a następnie ładowania do docelowej bazy danych.
Proces ETL istnieje w postaci różnych narzędzi. Istnieje wiele popularnych narzędzi ETL, które są szeroko stosowane przez firmy w celu spełnienia różnych wymagań dotyczących migracji danych. Chociaż te narzędzia istnieją, nie ma gwarancji, że wymagania dotyczące migracji danych zostaną spełnione od razu, dlatego administratorzy baz danych i programiści często decydują się na tworzenie niestandardowych ETL, aby sprostać złożonym wyzwaniom migracji danych w czasie rzeczywistym.
Dlaczego ETL?
Zawsze, gdy istnieje potrzeba migracji danych, pierwszą rzeczą, której szukają administratorzy baz danych lub programiści, jest narzędzie ETL. Dane mogą istnieć w różnych formach; w bazie danych RDBMS, plikach płaskich, plikach CSV itp., a wymogiem byłaby migracja, integracja wszystkich tych danych w jedną bazę danych lub jeśli docelowa baza danych jest inna, proces transformacji danych stałby się krytyczny. Wyzwaniom tym można sprostać za pomocą narzędzi ETL, które pozwalają zaoszczędzić koszty i czas biznesowy. W dzisiejszym świecie brak specyficznych narzędzi ETL może kosztować organizacje znaczne nakłady na rozwój i pieniądze na zbudowanie wydajnego zautomatyzowanego procesu migracji danych. Dzięki światu open source istnieje kilka popularnych narzędzi ETL typu open source, które mogą sprostać złożonym wyzwaniom migracji danych w czasie rzeczywistym.
Chociaż istnieją różne powody migracji danych, chciałbym skupić się na dwóch typowych wymaganiach dotyczących migracji danych...
- Przeprowadź migrację danych z różnych źródeł (bazy danych, plików płaskich i plików CSV) do jednej bazy danych w środowisku hurtowni danych, prawdopodobnie jako baza danych o otwartym kodzie źródłowym, co znacznie obniżyłoby całkowity koszt posiadania przy tworzeniu środowiska DWH. Byłaby to realna opcja, ponieważ aplikacje działające w czasie rzeczywistym będą korzystać z istniejących komercyjnych baz danych, a DWH będzie hostować dane w bazie danych o otwartym kodzie źródłowym
- Przeprowadź migrację baz danych i aplikacji czasu rzeczywistego z komercyjnych baz danych do baz danych typu open source, takich jak PostgreSQL, aby uzyskać znacznie niższe koszty operacji na danych dla firm.
Na tym blogu skupię się na zidentyfikowaniu narzędzi ETL, które mogą pomóc w przeprowadzeniu migracji danych do bazy danych PostgreSQL.
Dlaczego migrować do PostgreSQL?
PostgreSQL to bogata w funkcje baza danych klasy korporacyjnej o otwartym kodzie źródłowym, która jest pierwszą opcją, którą firmy decydują się na różne wymagania dotyczące operacji na danych w czasie rzeczywistym i ma implementacje w różnych środowiskach o znaczeniu krytycznym. Po uświadomieniu sobie potencjału tej wysoce niezawodnej i wydajnej bazy danych RDBMS, coraz więcej firm decyduje się na migrację do niej swoich baz danych i aplikacji. Migracja istniejących baz danych do PostgreSQL przynosi znaczne redukcje kosztów IT, dzięki czemu „Migracje do PostgreSQL” są obecnie dość powszechnym wymogiem i pojawia się wymóg migracji danych, od którego zaczyna się polowanie na narzędzie ETL.
Jak wspomniano powyżej, istnieje wiele komercyjnych i open-source narzędzi ETL i prawie wszystkie narzędzia obsługują PostgreSQL.
Pobierz oficjalny dokument już dziś Zarządzanie i automatyzacja PostgreSQL za pomocą ClusterControlDowiedz się, co musisz wiedzieć, aby wdrażać, monitorować, zarządzać i skalować PostgreSQLPobierz oficjalny dokumentJakie są najlepsze narzędzia ETL?
Ora2pg
Ora2pg to OPCJA, jeśli zamierzasz przenieść dane z bazy danych Oracle do PostgreSQL. Jest to narzędzie open source oparte na Perlu, opracowane specjalnie do migracji schematów, danych z baz danych Oracle do PostgreSQL i bardzo dobrze rozumie obie bazy danych i może migrować dane o dowolnym rozmiarze. Migracja większych obiektów może być kosztowna pod względem czasu i sprzętu.
Plusy: Ora2pg to bardzo popularne narzędzie używane do migracji baz danych Oracle do PostgreSQL. Obsługuje systemy operacyjne Windows i Linux oraz wykorzystuje interfejs tekstowy. Narzędzie to bardzo dobrze rozumie obie bazy danych i jest dość niezawodne z punktu widzenia funkcjonalności. Kiedy przeprowadzaliśmy migrację danych w środowisku produkcyjnym, analiza danych (lub poprawność danych) skutkowała defektami „0”, co jest dość niezwykłe. Dość wydajne w migracji typów danych, takich jak data/sygnatura czasowa i duże obiekty. Łatwe planowanie zadań za pomocą skryptu powłoki w tle. Odpowiedź programisty na wszelkie problemy na githubie jest dobra.
Wady: Procedura instalacji Ora2pg, która obejmuje instalowanie modułów Perl, klientów Oracle i Postgres, może stać się skomplikowaną sprawą w zależności od wersji systemu operacyjnego, a nawet bardziej złożoną, gdy robisz to samo w systemie operacyjnym Windows. Podczas równoległej migracji tabel o dużych rozmiarach z „dużymi obiektami” (oznacza to jedno zadanie ora2pg z wieloma wątkami) mogą wystąpić znaczne problemy z wydajnością, co może prowadzić do znaczącej zmiany strategii migracji danych.
Talent
Talend to bardzo popularne narzędzie ETL służące do migracji danych z dowolnego źródła (bazy danych lub pliku) do dowolnej bazy danych. To narzędzie obsługuje bazę danych PostgreSQL i wiele firm używa tego narzędzia do migracji danych do PostgreSQL. Istnieją zarówno komercyjne, jak i otwarte wersje tego narzędzia, a wersja o otwartym kodzie źródłowym powinna być pomocna przy migracjach danych.
Plusy: Talend to oparte na javie narzędzie ETL służące do integracji danych i obsługujące PostgreSQL. Łatwe w instalacji narzędzie jest dostarczane z graficznym interfejsem użytkownika zarówno w wersji open source, jak i komercyjnej. Może działać na dowolnej platformie obsługującej Javę. Programiści mogą napisać własny kod Java, który można zintegrować z Talend. To nic wielkiego, jeśli musisz poinstruować programistę lub administratora baz danych, aby używał tego narzędzia do migracji danych do PostgreSQL. Może migrować lub integrować dane z wielu źródeł, takich jak baza danych lub plik.
Wady: Planowanie pracy może być wyzwaniem. Może być używany głównie do migracji tabel o rozsądnym rozmiarze z niewielką liczbą opcji optymalizacji dotyczących poprawy wydajności. Może nie być świetną opcją na migrację tabel o dużych rozmiarach z milionami wierszy. Może przynieść podstawowe wyzwania operacyjne. Potrzebuje wiedzy na temat języka Java, aby obsługiwać to narzędzie, zwłaszcza podczas integracji kodu niestandardowego. Nie jest łatwo uzyskać poziom komfortu na tym narzędziu w krótkim czasie. Nie jest możliwe tworzenie skryptów i planowanie zadań migracji danych.
SQLIN
Sqlines to kolejne narzędzie ETL typu open source, które może migrować dane do iz dowolnej bazy danych. Jest to kolejna dobra opcja migracji danych do baz danych PostgreSQL z prawie każdej komercyjnej lub otwartej bazy danych. Jestem pod wrażeniem tego narzędzia. Został opracowany przy użyciu C/C++ i jest bardzo prosty w użyciu, bez komplikacji związanych z procesem instalacji (po prostu pobierz i odpakuj instalator i gotowe!). Ponieważ jest to narzędzie oparte na C/C++, migracja dużych baz danych może przynieść duże korzyści w zakresie wydajności. Powiedziałbym, że to narzędzie ewoluuje, a koszty subskrypcji wsparcia są bardzo rozsądne.
Plusy: Jak wspomniano powyżej, jestem pod wrażeniem tego, że narzędzie to zbudowane jest w oparciu o C/C++, co jest ogromnym plusem. Dość łatwy i prosty w instalacji i konfiguracji. Wykorzystuje interfejs tekstowy, który bardzo ułatwia planowanie zadań za pomocą skryptów bash. Może obsługiwać duże ilości danych. Wsparcie programistów jest dobre przy bardzo rozsądnych kosztach. Deweloperzy są otwarci na przyjęcie i wdrożenie Twoich pomysłów, co czyni go jeszcze lepszą opcją.
Wady: Niewiele osób wie o tym narzędziu i ewoluuje. Nie ma zbyt wielu opcji konfiguracyjnych do zabawy. Jest pewien sposób, aby to narzędzie stało się konkurencyjne, co nie jest daleko. Możesz napotkać podstawowe wyzwania operacyjne.
Pentaho
Pentaho to kolejne narzędzie do migracji i integracji danych, które ponownie ma wersje komercyjne i open-source, które może migrować dane z dowolnego źródła danych do dowolnej bazy danych. Jest to również opcja migracji danych do PostgreSQL. To narzędzie obsługuje szeroką gamę baz danych i działa na większej przestrzeni z możliwością wizualizacji danych.
Plusy: Pentaho to narzędzie oparte na Javie, działa w trybie GUI i może działać na systemach operacyjnych, takich jak Windows, Unix i Linux. Działa na znacznie większej przestrzeni i bardzo dobrze radzi sobie z transformacją danych i wizualizacją. Jak wspomniano powyżej, obsługuje szeroką gamę magazynów danych.
Wady: nie jest prostym narzędziem, które może po prostu wyodrębnić dane i załadować je do docelowej bazy danych. Proces migracji danych może być złożony i czasochłonny. Mocno koncentruje się na transformacji danych, oczyszczaniu, integracji i wizualizacji. Narzędzie to nie jest dobrym wyborem, jeśli chodzi o migrację danych z jednej bazy danych do innej bez żadnych przekształceń danych lub ćwiczeń oczyszczających. Wydajność może stanowić wyzwanie podczas migracji dużych ilości danych.
Niestandardowy ETL: Nie będzie przesadą stwierdzenie, że niestandardowe procesy ETL są jednym z najczęstszych sposobów realizacji kompleksowego, wydajnego i wysoce wydajnego procesu ETL. DBA, Deweloperzy wpadający w taką sytuację nie jest zaskoczeniem. Pojedynczy ETL nie byłby w stanie zrozumieć złożoności danych, kształtu danych, wyzwań środowiskowych. Przykład:podczas migracji danych z wielu różnych baz danych w centrum danych ze złożonymi modelami danych do bazy danych PostgreSQL hostowanej w innym centrum danych lub chmurze publicznej. W takiej sytuacji samo polowanie na najlepsze ETL może skończyć się pogonią za dziką gęsią. Dlatego wybór niestandardowego ETL jest najlepszym rozwiązaniem, jeśli chcesz zbudować proces ETL specyficzny dla środowiska i danych.
Plusy: Bardzo dobra alternatywa dla organizacji ze złożonymi środowiskami i złożonymi danymi, w których po prostu nie można znaleźć ETL, który rozwiąże wszystkie problemy związane z migracją danych. Może być bardzo korzystny pod względem funkcjonalności i wydajności. Może skrócić czas i zmniejszyć koszty, jeśli chodzi o naprawianie błędów i usterek w narzędziu. Krytyczne, złożone i mocno powiązane operacje ETL mogą być wysoce wydajne i niezawodne, ponieważ programiści mają pełną kontrolę nad narzędziem. Elastyczność nie ma granic. To dobra opcja, gdy szukasz możliwości wykraczających poza narzędzia ETL i może zająć się dowolnym poziomem złożoności. Jeśli wybierzesz technologie takie jak Java lub Python do zbudowania własnego ETL, bardzo dobrze komponują się one z PostgreSQL.
Wady: Budowanie niestandardowego ETL może być niezwykle czasochłonne. Aby sprostać wszystkim wymaganiom dotyczącym migracji danych i innym wyzwaniom związanym z danymi, konieczne są znaczne wysiłki w zakresie projektowania i rozwoju. Poniżej znajdują się niektóre z wyzwań, którym muszą sprostać niestandardowe ETL, które mogą wymagać znacznego wysiłku programistycznego i czasu na ulepszenia:
- Zmiany środowiskowe
- Zmiany architektury infrastruktury i bazy danych wpływające na operacje ETL
- Zmiany typu danych
- Wzrost ilości danych, który znacząco wpływa na wydajność migracji danych
- Struktura schematu lub zmiany projektu
- Każda krytyczna zmiana kodu w ETL musi zostać poddana programowaniu i testowaniu przed przejściem do produkcji, może to zająć dużo czasu
Ogólnie rzecz biorąc, opracowania ETL nie są uważane za kluczową część budżetu projektu, ponieważ nie są częścią zwykłych aplikacji biznesowych ani procesu tworzenia baz danych. Nie jest niespodzianką, jeśli firmy nie zdecydują się na budowanie niestandardowego ETL, gdy pojawią się wyzwania związane z budżetem, zasobami lub czasem.
Jakie jest najlepsze narzędzie ETL?
Cóż, nie ma jednoznacznej odpowiedzi. Wszystko zależy od Twoich wymagań i środowiska. Wybór ETL do migracji danych do PostgreSQL zależy od różnych czynników, musisz zrozumieć czynniki wpływające na migrację danych. Poniżej znajduje się większość z nich...
- Zrozum swoje dane
- Złożoność danych
- Typy danych
- Źródło danych
- Rozmiar danych
- Jakie są dane źródłowe? w bazie danych? w płaskim pliku? Zorganizowany czy nieustrukturyzowany? itd.. itd..
- Jakie kroki będą obejmować Twoje ćwiczenie migracji danych? Twoje oczekiwania wobec narzędzia.
Jeśli znasz powyższe, to prawie będziesz w stanie wybrać narzędzie ETL. Analiza powyższych czynników pomogłaby ocenić charakterystykę i możliwości każdego narzędzia ETL. Eksperci techniczni przeprowadzający migrację danych zwykle patrzą na narzędzie ETL, które jest wydajne, elastyczne i wysoce wydajne.
Na koniec dnia nie jest niespodzianką, jeśli wybierzesz wiele narzędzi ETL lub nawet sam opracujesz niestandardowe narzędzie.
Szczerze mówiąc, trudno jest polecić tylko jedno narzędzie ETL bez znajomości wymagań dotyczących danych. Zamiast tego sugerowałbym, aby narzędzie miało następujące cechy, aby zaprojektować wydajny i wysoce wydajny proces migracji danych...
- Musi używać interfejsu tekstowego z wystarczającą ilością opcji konfiguracyjnych
- Musi być w stanie skutecznie migrować duże ilości danych dzięki efektywnemu wykorzystaniu wielu procesorów i pamięci
- Byłoby dobrze, gdyby narzędzie można było zainstalować w wielu systemach operacyjnych. Niektóre narzędzia specyficzne dla PostgreSQL obsługują tylko system Windows, który może stanowić wyzwanie z perspektywy kosztów, wydajności i wydajności
- Musi być w stanie zrozumieć dane źródłowe i docelową bazę danych
- Musi mieć elastyczne opcje konfiguracji z wystarczającą kontrolą, aby podłączyć narzędzie do skryptu bash lub python, dostosowywać i planować wiele zadań równolegle
- Należy zaprojektować optymalny proces testowania, aby zrozumieć możliwości migracji danych narzędzia
Istnieją narzędzia GUI, które można łatwo skonfigurować i przenieść dane jednym kliknięciem. Narzędzia te są dobre do migracji danych o rozsądnych rozmiarach w środowisku innym niż chmura i są silnie uzależnione od infrastruktury i pojemności sprzętu. Nie będzie zbyt wielu opcji poza zwiększeniem możliwości infrastruktury w celu szybszej migracji danych, a opcje uruchamiania wielu zadań również są ponure.
Migrując dane do PostgreSQL, zacząłbym patrzeć na Talend lub SQLines. Gdybym musiał przenieść dane z Oracle, spojrzałbym na Ora2pg.