Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

Każda operacja z dużymi danymi wymaga dużej mocy obliczeniowej. Zwykłe przenoszenie danych z bazy na Hadoop może trwać tygodnie lub kosztować tyle, co skrzydło samolotu. Nie chcesz czekać i wydawać pieniędzy? Równoważ obciążenie na różnych platformach. Jednym ze sposobów jest optymalizacja pushdown.

Poprosiłem wiodącego szkoleniowca w Polsce w zakresie opracowywania i zarządzania produktami Informatica, Aleksieja Ananieva, aby opowiedział o funkcji optymalizacji pushdown w Informatica Big Data Management (BDM). Kiedyś uczyliście się pracować z produktami Informatica? Prawdopodobnie to Aleksiej uczył was podstaw PowerCenter i wyjaśniał, jak budować mapowania.

Aleksiej Ananiew, kierownik działu szkoleń DIS Group

Czym jest pushdown?

Wielu z was jest już zaznajomionych z Informatica Big Data Management (BDM). Produkt potrafi integrować duże dane z różnych źródeł, przemieszczać je pomiędzy różnymi systemami, zapewnia łatwy dostęp, umożliwia profilowanie i wiele więcej.
W zręcznych rękach BDM potrafi czynić cuda: zadania będą wykonywane szybko i z minimalnymi zasobami obliczeniowymi.

Czy również tego pragniecie? Nauczcie się korzystać z funkcji pushdown w BDM, aby rozłożyć obciążenie obliczeniowe między różnymi platformami. Technologia pushdown pozwala przekształcić mapowanie w skrypt i wybrać środowisko, w którym ten skrypt zostanie uruchomiony. Możliwość takiego wyboru pozwala łączyć mocne strony różnych platform i osiągać ich maksymalną wydajność.

Aby skonfigurować środowisko wykonania skryptu, należy wybrać typ pushdown. Skrypt może być całkowicie uruchomiony na Hadoop lub częściowo rozłożony między źródłem a odbiorcą. Istnieją 4 możliwe typy pushdown. Mapowanie można nie przekształcać w skrypt (native). Mapowanie można wykonać maksymalnie na źródle (source) lub całkowicie na źródle (full). Również mapowanie można przekształcić w skrypt Hadoop (none).

Optymalizacja pushdown

Wymienione 4 typy można łączyć w różny sposób – optymalizować pushdown pod konkretne potrzeby systemu. Na przykład często sensowniej jest wydobywać dane z bazy danych, wykorzystując jej własne możliwości. A przetwarzać dane przy pomocy Hadoop, aby nie przeciążać samej bazy.

Rozważmy przypadek, w którym zarówno źródło, jak i odbiornik znajdują się w bazie danych, a platforma realizacji transformacji może być wybrana: w zależności od ustawień będzie to Informatica, serwer bazy danych lub Hadoop. Taki przykład pozwoli najlepiej zrozumieć techniczne aspekty działania tego mechanizmu. Oczywiście, w rzeczywistym życiu taka sytuacja się nie zdarza, ale do celów demonstracyjnych jest to idealne rozwiązanie.

Weźmy mapowanie do odczytu dwóch tabel w jednej bazie danych Oracle. A wyniki odczytu niech będą zapisywane w tabeli w tej samej bazie. Schemat mapowania będzie wyglądał następująco:

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

W postaci mapowania w Informatica BDM 10.2.1 wygląda to w ten sposób:

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

Typ pushdown – native

Jeśli wybierzemy typ pushdown native, mapowanie zostanie wykonane na serwerze Informatica. Dane zostaną odczytane z serwera Oracle, przeniesione na serwer Informatica, tam przekształcone i przekazane do Hadoop. Innymi słowy, otrzymamy standardowy proces ETL.

Typ pushdown – source

W przypadku wyboru typu source zyskujemy możliwość rozdzielenia naszego procesu między serwerem bazy danych (BDB) a Hadoop. W trakcie realizacji procesu z tym ustawieniem do bazy będą wysyłane zapytania o odczyt danych z tabel. A reszta będzie realizowana w formie kroków w Hadoop.
Schemat wykonania będzie wyglądał tak:

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

Poniżej znajduje się przykład ustawienia środowiska wykonawczego.

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

W tym przypadku mapowanie będzie realizowane w dwóch krokach. W jego ustawieniach zobaczymy, że przekształciło się w skrypt, który zostanie wysłany do źródła. Połączenie tabel i przekształcenie danych zostanie zrealizowane w formie nadpisanego zapytania w źródle.
Na poniższym obrazku widzimy zoptymalizowane mapowanie w BDM, a w źródle – nadpisane zapytanie.

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

Rola Hadoop w tej konfiguracji sprowadza się do zarządzania przepływem danych – dyrygowania nimi. Wynik zapytania będzie kierowany do Hadoop. Po zakończeniu odczytu plik z Hadoop zostanie zapisany w odbiorniku.

Typ pushdown – full

W przypadku wyboru typu full mapowanie całkowicie przekształca się w zapytanie do bazy danych. A wynik zapytania będzie kierowany do Hadoop. Schemat takiego procesu przedstawiono poniżej.

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

Przykład ustawienia przedstawiono poniżej.

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

W rezultacie otrzymamy zoptymalizowane mapowanie podobne do poprzedniego. Różnica polega jedynie na tym, że cała logika przenosi się na odbiornik w postaci nadpisania jego wstawienia. Przykład zoptymalizowanego mapowania przedstawiono poniżej.

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

Podobnie jak w poprzednim przypadku, Hadoop pełni rolę dyrygenta. Tutaj jednak odczyt źródła odbywa się w całości, a następnie na poziomie odbiornika wykonywana jest logika przetwarzania danych.

Typ pushdown – null

Ostatnia opcja to typ pushdown, w którym nasze mapowanie przekształci się w skrypt na Hadoop.

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

Jak tanio i szybko przenosić, ładować i integrować bardzo duże dane? Czym jest optymalizacja pushdown?

Tutaj dane z plików źródłowych najpierw będą odczytane na Hadoop. Następnie za pomocą jego narzędzi te dwa pliki zostaną połączone. Po tym dane zostaną przekształcone i załadowane do bazy danych.

Rozumiejąc zasady optymalizacji pushdown, można bardzo efektywnie zorganizować wiele procesów pracy z dużymi danymi. Na przykład niedawno jedna dużą firma w ciągu zaledwie kilku tygodni wyeksportowała z magazynu w Hadoop ogromne dane, które wcześniej gromadziła przez kilka lat.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster