160 likes | 312 Views
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
E N D
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 • Extract • Transform • 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 • 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
Wyniki narzędzi ETL • Środowisko 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 • T – • 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