ETL – wymiana danych Michał Jabłonka 2007-01-12
Plan prezentacji Wstęp do zagadnienia wymiany danych między systemami informatycznymi ETL – wprowadzenie ETL – najczęstsze problemy Próby implementacji własnego narzędzia ETL Wyniki komercyjnych narzędzi ETL EAI – jako uzupełnienie rozwiązań ETL
Wymiana danych pomiędzy systemami informatycznymi Obszary biznesu zainteresowane wymianą danych Wszystko w jednym systemie , czy architektura rozproszona ? Koszty głównym argumentem Problem utrzymania i eksploatacji systemów
ETL - wprowadzenie ETL = Extract, transform, and load Extract – wyładowanie danych z systemów źródłowych Transform – przekształcenie danych do wymaganej postaci Load – załadowanie danych do systemu docelowego
ETL - wprowadzenie
ETL - wprowadzenie Extract Transform Load selekcja atrybutów dekodowanie wartości wyliczanie nowych atrybutów złączenia danych z różnych systemów agregacja danych transpozycja Load
Extract – problemy Podłączenie do źródła Szybkość wyładowania danych Zapewnienie kompletności wyładowanych danych Zapewnienie spójności czasowej wyładowanych danych Mechanizmy automatycznej obsługi błędów (nie chodzi o błędy w danych)
Transform – problemy Uniwersalny model danych Narzędzia do skomplikowanych transformacji Czasochłonność operacji Mechanizm wycofywania zmian Punkty kontrolne
Load - problemy Podłączenie do odbiorcy Czasochłonność ładowania – ograniczenia sprzętowe (n .. 1) Problem spójności danych Wycofywanie zmian Mechanizmy automatycznej obsługi błędów (nie chodzi o błędy w danych) -
Własny ETL Najprostszy ETL dla baz Oracle Wersja ulepszona E – spool lub przekierowanie stdout do pliku T – skrypty SED , AWK L – SQLLoader , insert into table (bardzo mało wydajne) Wersja ulepszona E – program w C++ lub Java komunikujący się z Oracle poprzez OCI, wyładowania przyrostowe T – wczytanie do bazy Oracle (bez audytu , noarchivelog) dedykowanej dla ETL-a – funkcje agregujące, analityczne L – SQLLoader w trybie direct load, aplikowanie przyrostów PL/SQL
Narzędzia komercyjne Bogata biblioteka connectorów Własny scheduler Designer Metadane – impact analysis Monitoring Raporty Olbrzymia wydajność Olbrzymi koszt
Rynek ETL
Wyniki narzędzi ETL Środowisko testowe Zadanie testowe SunSolaris 16CPU (8x2 core), 32 GB RAM, Macierz dyskowa Symetrix, OS - Solaris 9 Zadanie testowe Plik z danymi z transakcjami finansowymi (data, kontoA, kontoB, waluta, kwota, id_transakcji) 30 milionów rekordów dziennie (10GB). Należy zbudować agregaty dla każdego z kontynentów: trunc(data), kontoB, waluta, sum(kwota) i załadować je do bazy Oracle
Wyniki ETL – zadanie uproszczone Najprostszy własny ETL E – 4 h T – L – 1,5 h Wersja ulepszona E – 1,5 h L – 1h Możliwe ulepszenia: partycjonowanie, wątki.
EAI – transfery on-line EAI = Enterprise Application Integration Transfery on-line Transakcyjność Małe wolumeny danych – pojedyncze rekordy Zapewnienie spójności danych pomiędzy wszystkimi aplikacjami Tryb pracy synchroniczny i asynchroniczny
Dziękuje za uwagę