Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Jakiś czas temu stanęliśmy przed pytaniem o wybór narzędzia ETL do pracy z Big Data. Stosowane wcześniej rozwiązanie Informatica BDM nie przypadło nam do gustu ze względu na ograniczoną funkcjonalność. Jego użycie zostało zredukowane do frameworka do uruchamiania poleceń Spark-Submit. Na rynku nie było zbyt wielu analogów, które w zasadzie byłyby w stanie obsłużyć taką ilość danych, z jaką mamy do czynienia na co dzień. Ostatecznie wybraliśmy Ab Initio. Podczas pilotażowych demonstracji produkt wykazał bardzo dużą prędkość przetwarzania danych. W języku rosyjskim prawie nie ma informacji o Ab Initio, dlatego postanowiliśmy porozmawiać o naszych doświadczeniach z Habré.

Ab Initio posiada wiele klasycznych i nietypowych przekształceń, których kod można rozszerzyć za pomocą własnego języka PDL. Dla małej firmy tak potężne narzędzie będzie prawdopodobnie przesadą, a większość jego możliwości może być droga i niewykorzystana. Ale jeśli twoja skala jest zbliżona do skali Sberowa, Ab Initio może być dla ciebie interesujące.

Pomaga biznesowi gromadzić wiedzę globalnie i rozwijać ekosystem, a programiście doskonalić swoje umiejętności w ETL, doskonalić swoją wiedzę w powłoce, zapewnia możliwość opanowania języka PDL, daje wizualny obraz procesów ładowania i upraszcza rozwój ze względu na bogactwo elementów funkcjonalnych.

W tym poście opowiem o możliwościach Ab Initio oraz przedstawię charakterystykę porównawczą jego współpracy z Hive i GreenPlum.

  • Opis frameworku MDW i prace nad jego dostosowaniem do GreenPlum
  • Porównanie wydajności Ab Initio pomiędzy Hive i GreenPlum
  • Praca Ab Initio z GreenPlum w trybie czasu zbliżonego do rzeczywistego


Funkcjonalność tego produktu jest bardzo szeroka i wymaga dużo czasu na naukę. Jednak przy odpowiednich umiejętnościach pracy i odpowiednich ustawieniach wydajności efekty przetwarzania danych są naprawdę imponujące. Korzystanie z Ab Initio dla programisty może zapewnić ciekawe doświadczenie. To nowe podejście do programowania ETL, hybryda pomiędzy środowiskiem wizualnym i tworzeniem plików do pobrania w języku przypominającym skrypt.

Firmy rozwijają swoje ekosystemy, a to narzędzie przydaje się bardziej niż kiedykolwiek. Dzięki Ab Initio możesz gromadzić wiedzę na temat swojego obecnego biznesu i wykorzystywać ją do rozwijania starych i otwierania nowych biznesów. Alternatywy dla Ab Initio obejmują wizualne środowiska programistyczne Informatica BDM i niewizualne środowiska programistyczne Apache Spark.

Opis Ab Initio

Ab Initio, podobnie jak inne narzędzia ETL, jest zbiorem produktów.

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Ab Initio GDE (Graphical Development Environment) to środowisko dla programisty, w którym konfiguruje on transformacje danych i łączy je z przepływami danych w postaci strzałek. W tym przypadku taki zbiór przekształceń nazywany jest wykresem:

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Połączenia wejściowe i wyjściowe elementów funkcjonalnych są portami i zawierają pola obliczone w ramach transformacji. Kilka wykresów połączonych przepływami w postaci strzałek w kolejności ich wykonania nazywa się planem.

Elementów funkcjonalnych jest kilkaset, a to dużo. Wiele z nich ma charakter wysoce wyspecjalizowany. Możliwości klasycznych transformacji w Ab Initio są szersze niż w innych narzędziach ETL. Na przykład Join ma wiele wyników. Oprócz wyniku łączenia zbiorów danych można uzyskać rekordy wyjściowe wejściowych zbiorów danych, których kluczy nie udało się połączyć. Możesz także uzyskać odrzucenia, błędy i dziennik operacji transformacji, który można odczytać w tej samej kolumnie co plik tekstowy i przetworzyć z innymi transformacjami:

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Lub możesz na przykład zmaterializować odbiornik danych w postaci tabeli i odczytać z niego dane w tej samej kolumnie.

Istnieją oryginalne transformacje. Na przykład transformacja Scan ma funkcjonalność podobną do funkcji analitycznych. Istnieją transformacje o oczywistych nazwach: Utwórz dane, Czytaj Excela, Normalizuj, Sortuj w grupach, Uruchom program, Uruchom SQL, Łącz z bazą danych itp. Wykresy mogą wykorzystywać parametry czasu wykonywania, w tym możliwość przekazywania parametrów z lub do system operacyjny. Pliki z gotowym zestawem parametrów przekazywanych do grafu nazywane są zestawami parametrów (psets).

Zgodnie z oczekiwaniami Ab Initio GDE ma własne repozytorium o nazwie EME (Enterprise Meta Environment). Programiści mają możliwość pracy z lokalnymi wersjami kodu i sprawdzania swoich osiągnięć w centralnym repozytorium.

Możliwe jest, w trakcie lub po wykonaniu wykresu, kliknięcie dowolnego przepływu łączącego transformację i obejrzenie danych, które przeszły pomiędzy tymi transformacjami:

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Można także kliknąć na dowolny strumień i zobaczyć szczegóły śledzenia – w ilu równoleżnikach zadziałała transformacja, ile linii i bajtów zostało załadowanych do którego z równoległych:

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Można podzielić wykonanie grafu na fazy i zaznaczyć, że niektóre przekształcenia należy wykonać najpierw (w fazie zerowej), kolejne w pierwszej fazie, kolejne w drugiej fazie itd.

Dla każdej transformacji można wybrać tzw. układ (w którym zostanie ona wykonana): bez paraleli lub w równoległych wątkach, których ilość można określić. Jednocześnie pliki tymczasowe, które Ab Initio tworzy podczas wykonywania transformacji, można umieścić zarówno w systemie plików serwera, jak i w HDFS.

W każdej transformacji, w oparciu o domyślny szablon, można stworzyć własny skrypt w języku PDL, który działa trochę jak powłoka.

Dzięki PDL możesz rozszerzyć funkcjonalność transformacji, a w szczególności możesz dynamicznie (w czasie wykonywania) generować dowolne fragmenty kodu w zależności od parametrów runtime.

Ab Initio posiada również dobrze rozwiniętą integrację z systemem operacyjnym poprzez powłokę. W szczególności Sberbank używa Linuksa ksh. Możesz wymieniać zmienne z powłoką i używać ich jako parametrów wykresu. Możesz wywołać wykonywanie wykresów Ab Initio z poziomu powłoki i administrować Ab Initio.

Oprócz Ab Initio GDE w dostawie znajduje się wiele innych produktów. Istnieje własny system współpracy, który twierdzi, że można go nazwać systemem operacyjnym. Istnieje Sterowanie>Centrum, w którym możesz planować i monitorować przepływ pobierania. Istnieją produkty umożliwiające programowanie na bardziej prymitywnym poziomie, niż pozwala na to Ab Initio GDE.

Opis frameworku MDW i prace nad jego dostosowaniem do GreenPlum

Wraz ze swoimi produktami dostawca dostarcza produkt MDW (Metadata Driven Warehouse), będący konfiguratorem grafów zaprojektowanym z myślą o pomocy w typowych zadaniach zapełniania hurtowni lub skarbców danych.

Zawiera niestandardowe (specyficzne dla projektu) parsery metadanych i gotowe generatory kodu.

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum
Jako dane wejściowe MDW otrzymuje model danych, plik konfiguracyjny do skonfigurowania połączenia z bazą danych (Oracle, Teradata lub Hive) i kilka innych ustawień. Na przykład część specyficzna dla projektu wdraża model w bazie danych. Gotowa do użycia część produktu generuje dla nich wykresy i pliki konfiguracyjne, ładując dane do tabel modeli. W tym przypadku tworzone są wykresy (i psety) dla kilku trybów inicjalizacji i przyrostowej pracy nad aktualizacją jednostek.

W przypadku Hive i RDBMS generowane są różne wykresy dla inicjalizacji i przyrostowych aktualizacji danych.

W przypadku Hive przychodzące dane delta są łączone poprzez Ab Initio Join z danymi, które znajdowały się w tabeli przed aktualizacją. Moduły ładujące dane w MDW (zarówno w Hive, jak i RDBMS) nie tylko wstawiają nowe dane z delty, ale także zamykają okresy istotności danych, których klucze podstawowe otrzymały deltę. Dodatkowo trzeba przepisać niezmienioną część danych. Należy to jednak zrobić, ponieważ Hive nie wykonuje operacji usuwania ani aktualizacji.

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

W przypadku RDBMS wykresy przyrostowej aktualizacji danych wyglądają bardziej optymalnie, ponieważ RDBMS mają realne możliwości aktualizacji.

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Otrzymana delta jest ładowana do tabeli pośredniej w bazie danych. Następnie delta jest łączona z danymi, które znajdowały się w tabeli przed aktualizacją. Odbywa się to za pomocą języka SQL przy użyciu wygenerowanego zapytania SQL. Następnie za pomocą poleceń SQL usuń+insert nowe dane z delty wstawiane są do tabeli docelowej i zamykane są okresy istotności danych, których klucze podstawowe otrzymały deltę.
Nie ma potrzeby przepisywania niezmienionych danych.

Doszliśmy więc do wniosku, że w przypadku Hive, MDW musi przejść do przepisania całej tabeli, ponieważ Hive nie ma funkcji aktualizacji. I nie ma nic lepszego niż całkowite przepisanie danych podczas aktualizacji. W przypadku RDBMS natomiast twórcy produktu uznali za konieczne powierzenie łączenia i aktualizacji tabel obsłudze języka SQL.

Na potrzeby projektu w Sberbank stworzyliśmy nową, wielokrotnego użytku implementację modułu ładującego bazę danych dla GreenPlum. Dokonano tego w oparciu o wersję wygenerowaną przez MDW dla Teradata. To Teradata, a nie Oracle, była najbliższa i najlepsza w tej kwestii, ponieważ... jest również systemem MPP. Metody pracy, a także składnia Teradaty i GreenPlum okazały się podobne.

Przykłady różnic krytycznych dla MDW pomiędzy różnymi RDBMS są następujące. W GreenPlum, w przeciwieństwie do Teradaty, tworząc tabele trzeba napisać klauzulę

distributed by

Teradata pisze:

delete <table> all

, a w GreenPlum piszą

delete from <table>

W Oracle w celach optymalizacyjnych piszą

delete from t where rowid in (<соединение t с дельтой>)

, a Teradata i GreenPlum piszą

delete from t where exists (select * from delta where delta.pk=t.pk)

Zauważamy również, że aby Ab Initio mogło współpracować z GreenPlum, konieczna była instalacja klienta GreenPlum na wszystkich węzłach klastra Ab Initio. Dzieje się tak, ponieważ połączyliśmy się z GreenPlum jednocześnie ze wszystkich węzłów w naszym klastrze. A żeby odczyt z GreenPlum był równoległy i każdy równoległy wątek Ab Initio mógł odczytać swoją porcję danych z GreenPlum, musieliśmy w sekcji „gdzie” zapytań SQL umieścić zrozumiałą dla Ab Initio konstrukcję

where ABLOCAL()

i określić wartość tej konstrukcji poprzez podanie odczytu parametrów z bazy transformacji

ablocal_expr=«string_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))»

, który kompiluje się do czegoś takiego

mod(sk,10)=3

, tj. musisz poprosić GreenPlum o jawny filtr dla każdej partycji. W przypadku innych baz danych (Teradata, Oracle) Ab Initio może automatycznie wykonać tę równoległość.

Porównanie wydajności Ab Initio pomiędzy Hive i GreenPlum

Sberbank przeprowadził eksperyment, aby porównać wydajność wykresów generowanych przez MDW w odniesieniu do Hive i GreenPlum. W ramach eksperymentu w przypadku Hive znajdowało się 5 węzłów w tym samym klastrze co Ab Initio, a w przypadku GreenPlum były to 4 węzły w oddzielnym klastrze. Te. Hive miał pewną przewagę sprzętową nad GreenPlum.

Rozważaliśmy dwie pary wykresów wykonujących to samo zadanie aktualizacji danych w Hive i GreenPlum. Jednocześnie uruchomiono wykresy wygenerowane przez konfigurator MDW:

  • ładowanie początkowe + przyrostowe ładowanie losowo generowanych danych do tabeli Hive
  • ładowanie początkowe + ładowanie przyrostowe losowo generowanych danych do tej samej tabeli GreenPlum

W obu przypadkach (Hive i GreenPlum) uruchomiono przesyłanie do 10 równoległych wątków w tym samym klastrze Ab Initio. Ab Initio zapisywał dane pośrednie do obliczeń w HDFS (w zakresie Ab Initio zastosowano układ MFS wykorzystujący HDFS). W obu przypadkach jedna linia losowo wygenerowanych danych zajmowała 200 bajtów.

Wynik był taki:

Ul:

Początkowe ładowanie w Hive

Wstawiono wiersze
6 000 000
60 000 000
600 000 000

Czas inicjalizacji
pliki do pobrania w ciągu kilku sekund
41
203
1 601

Ładowanie przyrostowe w gałęzi Hive

Liczba rzędów dostępnych w
tabela docelowa na początku eksperymentu
6 000 000
60 000 000
600 000 000

Liczba zastosowanych linii delta
tabela docelowa podczas eksperymentu
6 000 000
6 000 000
6 000 000

Czas trwania przyrostu
pliki do pobrania w ciągu kilku sekund
88
299
2 541

Zielona śliwka:

Wstępne ładowanie w GreenPlum

Wstawiono wiersze
6 000 000
60 000 000
600 000 000

Czas inicjalizacji
pliki do pobrania w ciągu kilku sekund
72
360
3 631

Przyrostowe ładowanie w GreenPlum

Liczba rzędów dostępnych w
tabela docelowa na początku eksperymentu
6 000 000
60 000 000
600 000 000

Liczba zastosowanych linii delta
tabela docelowa podczas eksperymentu
6 000 000
6 000 000
6 000 000

Czas trwania przyrostu
pliki do pobrania w ciągu kilku sekund
159
199
321

Widzimy, że prędkość początkowego ładowania zarówno w Hive, jak i GreenPlum zależy liniowo od ilości danych i ze względu na lepszy sprzęt jest nieco większa w przypadku Hive niż w przypadku GreenPlum.

Ładowanie przyrostowe w Hive zależy również liniowo od ilości wcześniej załadowanych danych dostępnych w tabeli docelowej i przebiega dość powoli w miarę wzrostu wolumenu. Jest to spowodowane koniecznością całkowitego przepisania tabeli docelowej. Oznacza to, że stosowanie małych zmian w dużych tabelach nie jest dobrym przypadkiem użycia dla programu Hive.

Ładowanie przyrostowe w GreenPlum słabo zależy od ilości wcześniej załadowanych danych dostępnych w tabeli docelowej i przebiega dość szybko. Stało się tak dzięki SQL Joins i architekturze GreenPlum, która umożliwia operację usuwania.

Zatem GreenPlum dodaje deltę za pomocą metody usuwania+wstawiania, ale Hive nie wykonuje operacji usuwania ani aktualizacji, więc cała tablica danych musiała zostać całkowicie przepisana podczas aktualizacji przyrostowej. Porównanie komórek wyróżnionych pogrubioną czcionką jest najbardziej odkrywcze, ponieważ odpowiada najczęstszej opcji pobierania wymagającego dużej ilości zasobów. Widzimy, że GreenPlum pokonał Hive w tym teście 8 razy.

Praca Ab Initio z GreenPlum w trybie czasu zbliżonego do rzeczywistego

W tym eksperymencie przetestujemy zdolność Ab Initio do aktualizowania tabeli GreenPlum losowo wygenerowanymi porcjami danych w czasie zbliżonym do rzeczywistego. Rozważmy tabelę GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, z którą będziemy pracować.

Do pracy z nim wykorzystamy trzy wykresy Ab Initio:

1) Graph Create_test_data.mp – tworzy pliki danych w formacie HDFS zawierające 10 6 000 wierszy w 000 równoległych wątkach. Dane są losowe, ich struktura jest zorganizowana tak, aby można było je wstawić do naszej tabeli

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

2) Graph mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – MDW wygenerował wykres inicjując wstawianie danych do naszej tabeli w 10 równoległych wątkach (wykorzystywane są dane testowe wygenerowane przez wykres (1))

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

3) Wykres mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – wykres wygenerowany przez MDW w celu przyrostowej aktualizacji naszej tabeli w 10 równoległych wątkach z wykorzystaniem części świeżo otrzymanych danych (delta) wygenerowanych przez wykres (1)

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum

Uruchommy poniższy skrypt w trybie NRT:

  • wygenerować 6 000 000 linii testowych
  • wykonaj wstępne ładowanie, wstaw 6 000 000 wierszy testowych do pustej tabeli
  • powtórz pobieranie przyrostowe 5 razy
    • wygenerować 6 000 000 linii testowych
    • wykonaj przyrostowe wstawienie 6 000 000 wierszy testowych do tabeli (w tym przypadku czas ważności valid_to_ts jest ustawiony na stare dane i wstawiane są nowsze dane z tym samym kluczem podstawowym)

Scenariusz ten emuluje tryb rzeczywistego działania pewnego systemu biznesowego – dość duża porcja nowych danych pojawia się w czasie rzeczywistym i jest od razu przelewana do GreenPlum.

Przyjrzyjmy się teraz dziennikowi skryptu:

Uruchom Create_test_data.input.pset o 2020-06-04 11:49:11
Zakończ tworzenie_test_data.input.pset o 2020-06-04 11:49:37
Rozpocznij mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:49:37
Zakończ mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:50:42
Uruchom Create_test_data.input.pset o 2020-06-04 11:50:42
Zakończ tworzenie_test_data.input.pset o 2020-06-04 11:51:06
Uruchom mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:51:06
Zakończ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:53:41
Uruchom Create_test_data.input.pset o 2020-06-04 11:53:41
Zakończ tworzenie_test_data.input.pset o 2020-06-04 11:54:04
Uruchom mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:54:04
Zakończ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:56:51
Uruchom Create_test_data.input.pset o 2020-06-04 11:56:51
Zakończ tworzenie_test_data.input.pset o 2020-06-04 11:57:14
Uruchom mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:57:14
Zakończ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 11:59:55
Uruchom Create_test_data.input.pset o 2020-06-04 11:59:55
Zakończ tworzenie_test_data.input.pset o 2020-06-04 12:00:23
Uruchom mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 12:00:23
Zakończ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 12:03:23
Uruchom Create_test_data.input.pset o 2020-06-04 12:03:23
Zakończ tworzenie_test_data.input.pset o 2020-06-04 12:03:49
Uruchom mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 12:03:49
Zakończ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset o 2020-06-04 12:06:46

Okazuje się, że to zdjęcie:

Wykres
Czas zacząć
Czas ukończenia
Długość

Utwórz_test_dane.input.pset
04.06.2020 11: 49: 11
04.06.2020 11: 49: 37
00:00:26

mdw_load.day_one.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 49: 37
04.06.2020 11: 50: 42
00:01:05

Utwórz_test_dane.input.pset
04.06.2020 11: 50: 42
04.06.2020 11: 51: 06
00:00:24

mdw_load.regular.prąd.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 51: 06
04.06.2020 11: 53: 41
00:02:35

Utwórz_test_dane.input.pset
04.06.2020 11: 53: 41
04.06.2020 11: 54: 04
00:00:23

mdw_load.regular.prąd.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 54: 04
04.06.2020 11: 56: 51
00:02:47

Utwórz_test_dane.input.pset
04.06.2020 11: 56: 51
04.06.2020 11: 57: 14
00:00:23

mdw_load.regular.prąd.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 57: 14
04.06.2020 11: 59: 55
00:02:41

Utwórz_test_dane.input.pset
04.06.2020 11: 59: 55
04.06.2020 12: 00: 23
00:00:28

mdw_load.regular.prąd.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 00: 23
04.06.2020 12: 03: 23
00:03:00

Utwórz_test_dane.input.pset
04.06.2020 12: 03: 23
04.06.2020 12: 03: 49
00:00:26

mdw_load.regular.prąd.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 03: 49
04.06.2020 12: 06: 46
00:02:57

Widzimy, że 6 000 000 linii przyrostowych jest przetwarzanych w ciągu 3 minut, czyli dość szybko.
Okazało się, że dane w tabeli docelowej mają następujący rozkład:

select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;

Kiedy masz łuski Sbera. Używanie Ab Initio z Hive i GreenPlum
Możesz zobaczyć zgodność wprowadzonych danych z czasem uruchomienia wykresów.
Oznacza to, że możesz uruchamiać przyrostowe ładowanie danych do GreenPlum w Ab Initio z bardzo dużą częstotliwością i obserwować dużą prędkość wstawiania tych danych do GreenPlum. Oczywiście nie będzie możliwości uruchomienia raz na sekundę, gdyż Ab Initio, jak każde narzędzie ETL, wymaga czasu na „uruchomienie” po uruchomieniu.

wniosek

Ab Initio jest obecnie używany w Sbierbanku do budowy ujednoliconej warstwy danych semantycznych (ESS). Projekt ten polega na zbudowaniu ujednoliconej wersji stanu różnych podmiotów biznesu bankowego. Informacje pochodzą z różnych źródeł, których repliki przygotowywane są na platformie Hadoop. Na podstawie potrzeb biznesowych przygotowywany jest model danych i opisywany przekształcenia danych. Ab Initio ładuje informacje do ESN, a pobrane dane są nie tylko interesujące dla samej firmy, ale służą także jako źródło do budowania hurtowni danych. Jednocześnie funkcjonalność produktu pozwala na wykorzystanie różnych systemów jako odbiornika (Hive, Greenplum, Teradata, Oracle), co pozwala na łatwe przygotowanie danych dla firmy w różnych wymaganych przez nią formatach.

Możliwości Ab Initio są szerokie, na przykład dołączony framework MDW umożliwia natychmiastowe budowanie danych technicznych i biznesowych. Dla programistów Ab Initio umożliwia nie wymyślanie koła na nowo, ale wykorzystanie wielu istniejących komponentów funkcjonalnych, które w istocie są bibliotekami potrzebnymi podczas pracy z danymi.

Autor jest ekspertem środowiska zawodowego Sberbank SberProfi DWH/BigData. Społeczność zawodowa SberProfi DWH/BigData odpowiada za rozwój kompetencji w takich obszarach jak ekosystem Hadoop, Teradata, Oracle DB, GreenPlum, a także narzędzia BI Qlik, SAP BO, Tableau itp.

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

Dodaj komentarz