Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

Każda operacja na dużych zbiorach danych wymaga dużej mocy obliczeniowej. Typowe przeniesienie danych z bazy danych do Hadoopa może zająć tygodnie lub kosztować tyle, co skrzydło samolotu. Nie chcesz czekać i wydawać pieniędzy? Zrównoważ obciążenie na różnych platformach. Jednym ze sposobów jest optymalizacja pushdown.

Poprosiłem czołowego rosyjskiego trenera ds. rozwoju i administrowania produktami Informatica, Aleksieja Ananyeva, aby opowiedział o funkcji optymalizacji pushdown w Informatica Big Data Management (BDM). Czy kiedykolwiek nauczyłeś się pracować z produktami Informatica? Najprawdopodobniej to Alexey przekazał ci podstawy PowerCenter i wyjaśnił, jak budować mapowania.

Alexey Ananyev, szef szkoleń w Grupie DIS

Co to jest pushdown?

Wielu z Was zna już Informatica Big Data Management (BDM). Produkt potrafi integrować big data z różnych źródeł, przenosić je pomiędzy różnymi systemami, zapewnia łatwy dostęp do nich, pozwala na ich profilowanie i wiele więcej.
W odpowiednich rękach BDM może zdziałać cuda: zadania zostaną wykonane szybko i przy minimalnych zasobach obliczeniowych.

Czy ty też tego chcesz? Naucz się korzystać z funkcji przesyłania w dół w BDM, aby rozłożyć obciążenie obliczeniowe na różne platformy. Technologia Pushdown pozwala zamienić mapowanie w skrypt i wybrać środowisko, w którym ten skrypt będzie działał. Wybór ten pozwala połączyć mocne strony różnych platform i osiągnąć ich maksymalną wydajność.

Aby skonfigurować środowisko wykonywania skryptu, należy wybrać typ pushdown. Skrypt można uruchomić w całości na platformie Hadoop lub częściowo rozprowadzić go pomiędzy źródłem a ujściem. Istnieją 4 możliwe typy przesuwania. Mapowanie nie musi być przekształcane w skrypt (natywny). Mapowanie można wykonać w miarę możliwości na źródle (source) lub całkowicie na źródle (full). Mapowanie można również przekształcić w skrypt Hadoop (brak).

Optymalizacja push-down

Wymienione 4 typy można łączyć na różne sposoby – pushdown można optymalizować pod konkretne potrzeby systemu. Na przykład często bardziej odpowiednie jest wyodrębnianie danych z bazy danych przy użyciu jej własnych możliwości. A dane zostaną skonwertowane za pomocą Hadoopa, aby nie przeciążać samej bazy danych.

Rozważmy przypadek, gdy zarówno źródło, jak i miejsce docelowe znajdują się w bazie danych i można wybrać platformę wykonania transformacji: w zależności od ustawień będzie to Informatica, serwer bazy danych lub Hadoop. Taki przykład pozwoli najdokładniej zrozumieć techniczną stronę działania tego mechanizmu. Oczywiście w prawdziwym życiu taka sytuacja nie ma miejsca, ale najlepiej nadaje się do zademonstrowania funkcjonalności.

Weźmy mapowanie, aby odczytać dwie tabele w jednej bazie danych Oracle. I niech wyniki odczytu zostaną zapisane w tabeli w tej samej bazie danych. Schemat mapowania będzie wyglądał następująco:

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

W formie mapowania na Informatica BDM 10.2.1 wygląda to tak:

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

Typ pushdown – natywny

Jeżeli wybierzemy typ natywny pushdown to mapowanie zostanie wykonane na serwerze Informatica. Dane zostaną odczytane z serwera Oracle, przesłane na serwer Informatica, tam przetworzone i przesłane do Hadoop. Innymi słowy, otrzymamy normalny proces ETL.

Typ pushdown – źródło

Wybierając typ źródła, otrzymujemy możliwość dystrybucji naszego procesu pomiędzy serwerem bazy danych (DB) i Hadoopem. Kiedy proces jest wykonywany z tym ustawieniem, do bazy danych będą wysyłane żądania pobrania danych z tabel. A reszta zostanie wykonana w formie kroków na Hadoopie.
Schemat wykonania będzie wyglądał następująco:

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

Poniżej znajduje się przykład konfiguracji środowiska uruchomieniowego.

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

W takim przypadku mapowanie zostanie przeprowadzone w dwóch etapach. W jego ustawieniach zobaczymy, że zamienił się w skrypt, który zostanie wysłany do źródła. Ponadto łączenie tabel i przekształcanie danych będzie realizowane w formie nadpisanego zapytania na źródle.
Na poniższym obrazku widzimy zoptymalizowane mapowanie w BDM i przedefiniowane zapytanie w źródle.

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

Rola Hadoopa w tej konfiguracji zostanie zredukowana do zarządzania przepływem danych – orkiestrowania go. Wynik zapytania zostanie wysłany do Hadoopa. Po zakończeniu odczytu plik z Hadoopa zostanie zapisany w ujściu.

Typ pushdown – pełny

Po wybraniu typu pełnego mapowanie całkowicie zamieni się w zapytanie do bazy danych. Wynik żądania zostanie wysłany do Hadoop. Schemat takiego procesu przedstawiono poniżej.

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

Poniżej pokazano przykładową konfigurację.

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

W rezultacie otrzymamy zoptymalizowane mapowanie podobne do poprzedniego. Jedyna różnica polega na tym, że cała logika jest przekazywana do odbiornika w formie pominięcia jego wstawienia. Poniżej przedstawiono przykład zoptymalizowanego mapowania.

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

Tutaj, podobnie jak w poprzednim przypadku, rolę dyrygenta pełni Hadoop. Ale tutaj źródło jest odczytywane w całości, a następnie logika przetwarzania danych jest wykonywana na poziomie odbiorcy.

Typ przesuwania ma wartość null

Otóż ​​ostatnią opcją jest typ pushdown, w ramach którego nasze mapowanie zamieni się w skrypt Hadoopa.

Zoptymalizowane mapowanie będzie teraz wyglądać następująco:

Jak tanio i szybko przenosić, przesyłać i integrować bardzo duże dane? Co to jest optymalizacja pushdown?

Tutaj dane z plików źródłowych zostaną najpierw odczytane na platformie Hadoop. Następnie własnymi środkami te dwa pliki zostaną połączone. Następnie dane zostaną przekonwertowane i przesłane do bazy danych.

Rozumiejąc zasady optymalizacji pushdown, można bardzo efektywnie zorganizować wiele procesów pracy z big data. Tak więc całkiem niedawno pewna duża firma w ciągu zaledwie kilku tygodni pobrała z magazynu do Hadoop duże dane, które gromadziła wcześniej przez kilka lat.

Źródło: www.habr.com

Dodaj komentarz