Proces ekstrakcji, transformacji i ładowania danych (Proces ETL) Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2008/09 Studia uzupełniajace magisterskie
Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL) Systemy OLAP I Systemy OLAP II Systemy OLAP III
1 Proces ekstrakcji, transformacji i ładowania 2 Ekstrakcja danych 3 Transformacja i integracja danych 4 Ładowanie danych 5 Odświeżanie hurtowni danych 6 Podsumowanie
1 Proces ekstrakcji, transformacji i ładowania 2 Ekstrakcja danych 3 Transformacja i integracja danych 4 Ładowanie danych 5 Odświeżanie hurtowni danych 6 Podsumowanie
Proces ETL Proces ETL (ang. extraction-transformation-load) składa się z: ekstrakcji danych, transformacji i integracji danych, ładowania danych. Dodatkowym zagadnieniem mocno zwiazanym z procesem ETL jest odświeżanie hurtowni danych. Proces ETL powinien mieć swoje odbicie w metadanych hurtowni danych.
Architektura hurtowni danych
Fizyczne struktury hurtowni danych: Zcentralizowana Sfederowana Warstwowa
Zcentralizowana struktura hurtowni danych
Sfederowana struktura hurtowni danych
Warstwowa struktura hurtowni danych
Systemy mediacyjne: tradycyjne podejście do integracji heterogenicznych baz danych, niepotrzebny proces magazynowania danych, dane bieżace (również bardziej aktualne), potrzeba tłumaczenia zapytań do systemów heterogenicznych, zakłócanie procesów operacyjnych, wirtualna odmiana hurtowni danych.
Zadania narzędzi ETL: ekstrakcja (dostęp do różnorodnych źródeł danych), analiza i kontrola jakości danych (w tym czyszczenie danych), transformacje (np. pomiędzy formatami danych, językami), ładowanie (wprowadzanie danych do hurtowni), szybki transfer danych (ważne dla bardzo dużych hurtowni danych), odświeżanie danych, analiza i zarzadzanie metadanymi (podczas zarzadzania procesem magazynowania danych).
1 Proces ekstrakcji, transformacji i ładowania 2 Ekstrakcja danych 3 Transformacja i integracja danych 4 Ładowanie danych 5 Odświeżanie hurtowni danych 6 Podsumowanie
Tworzenie i korzystanie z hurtowni danych wymaga dostępu do danych z wielu różnorodnych źródeł informacji: systemów baz danych (relacyjnych, obiektowych, hierarchicznych, sieciowych, itp.), źródeł zewnętrznych (uzyskanych od innych przedsiębiorstw, z wyników badań ankietowych, specjalnych serwisów), plików standardowych typów (np. MS Excel), innych dokumentów (.doc, XML, WWW). Ekstrakcja danych z zewnętrznych źródeł odbywa się poprzez programy pośredniczace (gateways) i standardowe interfejsy (ODBC, JDBC, dostarczane przez dostawców systemów baz danych).
Źródła danych: Dane pochodza z systemów pracujacych na różnym sprzęcie: mainframe, maszyny wieloprocesorowe, komputery PC, komputery zewnętrznych usługodawców, Dane pochodza z różnych systemów operacyjnych: Windows, Unix, Linux systemy kodowania znaków: ASCII, EBCDIC, itp., Dane pochodza z różnego oprogramowania: MS Excel, pliki tekstowe, relacyjne bazy danych, sieciowe i hierarchiczne systemy baz danych (COBOL), systemy spadkowe, Dane pochodza z firm zewnętrznych (np.: dane geograficzne, dane marketingowe) i zewnętrznych serwisów (np.: kursy walut, kursy giełdowe). Dane pochodza z systemów operacyjnych, których model danych jest inny niż model danych analitycznych, Dane pochodza z systemów o różnej strukturze logicznej, W danych pojawiaja się konflikty (stad potrzeba integracji).
Ekstrakcja pożadanych informacji: Przykład Do hurtowni danych chcemy składować informacje na temat sprzedaży. Co to jest jednak sprzedaż? Brak jednoznaczności typowych określeń! moment złożenia zamówienia przez klienta, wysłanie zamówienia do klienta, wystawienie faktury dotyczacej zamówienia. W operacyjnej bazie danych może nie być relacji sprzedaż, w zamian może istnieć relacja zamówienie z atrybutem stan zamówienia
Monitorowanie zmian w źródłach danych Ekstrakcja dotyczy tylko danych, które zostały zmienione lub zostały wstawione do bazy danych, Monitorowanie zmian jest bezpośrednio zwiazane z problem odświeżania hurtowni danych, Metody zewnętrzne i inwazyjne, Różne mechanizmy wykrywania zmian jeden produkt może mieć zaimplementowanych wiele mechanizmów (np. RDBMS sa często źródłami aktywnymi, odpytywanymi i z dziennikiem).
Monitorowanie zmian w źródłach danych Źródła z mechanizmem migawek: np. plik, brak mechanizmów selekcji, porównywany jest aktualny stan źródła z poprzednim; znalezione, istotne zmiany propagowane sa dalej, Źródła specjalne: przestarzałe systemy spadkowe, które należy obsłużyć w dedykowany sposób (czasami w systemach takich można tworzyć tzw. pliki różnic), Źródła z dziennikiem: rejestrowane s a wszystkie akcje w ramach źródła danych (SZBD itp.),
Monitorowanie zmian w źródłach danych Źródła odpytywane: udostępniaja interfejs obsługi zapytań; źródła sa odpytywane i wynik zapytania jest porównywalny z poprzednim (część zmian może nie zostać wykryta w danym odstępie czasu dane zostały zapisane i usunięte). Źródła powielane: systemy wyposażone w system replikacji, Źródła informujace: systemy wyposażone w mechanizm wyzwalaczy, Źródła z aktywnościa wewnętrzna: podobnie jak wyżej, jednak wynik działania wyzwalacza nie jest widziany poza systemem, tworzone sa np. pliki różnic.
1 Proces ekstrakcji, transformacji i ładowania 2 Ekstrakcja danych 3 Transformacja i integracja danych 4 Ładowanie danych 5 Odświeżanie hurtowni danych 6 Podsumowanie
Transformacja i integracja danych Proces integracji jest najważniejszym aspektem hurtowni danych. Transformacja i integracja danych stanowi ok. 80% wysiłków w projektach wdrażania hurtowni danych. Polega na usuwaniu sprzeczności i nadmiarowych informacji z danych napływajacych do hurtowni z otoczenia operacyjnego, uwspólnieniu tych informacji oraz utworzeniu jednolitego obrazu danych gromadzonych przez instytucję. Integracja dotyczy zarówno integracji schematów, jak i samych danych.
Poziomy integracji Poziom schematu, Poziom relacji, Poziom krotki, Poziom wartości atrybutów.
Integracja schematów: Informacjami wejściowymi do procesu integracji jest zbiór schematów źródłowych, a wynikiem pojedynczy docelowy schemat, reprezentujacy jednolita, strukturalna reprezentację schematów wejściowych, Wynikiem procesu integracji jest również specyfikacja odwzorowania schematów źródłowych do schematu docelowego.
Konflikty i brudne dane: Konflikty różnorodności pojawiaja się, gdy schematy źródłowe wykorzystuja różne modele danych, Konflikty typów pojawiaja się, gdy ta sama informacja w oddzielnych systemach jest zapisana w różnych typach (numer konta bankowego może być zapisany jako String albo jako Numeric) Konflikty dziedzin pojawiaja się, gdy informacja jest zapisana za pomoca różnych dziedzin (np. płeć: M, F, male, female, 1, 0), Konflikty dat pojawiaja się, gdy daty trzymane sa w różnych formatach (np. dd-mm-yyyy oraz mm-dd-yyyy), Konflikty pól znakowych pojawiaja się, gdy pola te sa różnych rozmiarów (np. pole adresu może być ograniczone do 20 lub 50 znaków),
Konflikty i brudne dane: Konflikty nazewnictwa pojawiaja się, gdy różne schematy używaja różnej terminologii odnośnie tych samych danych (metadane opisujace dane źródłowe moga być niedostateczne): homonimy te same nazwy, używane do różnych pojęć (np. typy zamków), synonimy różne nazwy odnosza się do tego samego pojęcia (np. sex i gender), Konflikty semantyczne pojawiaja się, gdy pewne podobne pojęcia ze świata rzeczywistego sa modelowane na różnym poziomie abstrakcji (np. co to jest sprzedaż?), Konflikty strukturalne pojawiaja się, gdy te same pojęcia reprezentowane sa za pomoca różnych konstrukcji.
Konflikty i brudne dane: Różne formaty danych tych samych pól (np. informacja o nazwie województwa w polu adresu może być podana jako skrót lub pełna nazwa), Pola tekstowe moga ukrywać ważne informacje, np. nazwisko osoby odpowiedzialnej za kontakty dodane do pola adresu instytucji, Niezgodność wartości pola i jego opisu (np. pole name może zawierać nazwę instytucji, jak też nazwisko osoby), Sprzeczne dane na temat tego samego obiektu, wynikajace z pomyłek podczas wprowadzania danych, Niespójna informacja na temat tego samego obiektu ze świata rzeczywistego, Informacja dotyczaca tego samego obiektu, ale opatrzona różnymi kluczami głównymi, Brakujace wartości.
Czyszczenie danych: Zależy nam na analizowaniu danych i podejmowaniu decyzji potrzeba dobrych jakościowo danych.
Techniki czyszczenia danych: Funkcje konwersji i normalizacji przekształcajace i standaryzujace formaty danych (format daty dd/mm/rrrr, duże litery), Parsowanie pól tekstowych w celu identyfikacji i izolacji elementów i struktur danych: Standaryzacja (Jan Kowalski, magister mgr Jan Kowalski), Transformacja (podział tekstu na rekordy {tytuł = mgr, imię = Jan, nazwisko = Kowalski}), Funkcje czyszcz ace specjalnego zastosowania przeznaczone do czyszczenia poszczególnych typów pól z wykorzystaniem słowników ( ul. na ulica, bazy danych farmaceutycznych, bazy danych geograficznych i korekta danych adresowych, baza danych imion),
Techniki czyszczenia danych: Czyszczenie oparte na regułach, zbudowane przy użyciu zbioru reguł biznesowych określajacych warunki dopasowania wartości z różnych źródeł; proste reguły przekształcenia, np.: zastap gender poprzez sex Wykorzystanie dodatkowej wiedzy, np. adresy pocztowe do określania nazw miast, znajomość regularności wyrażeń, Rozszerzanie baz danych o dodatkowe informacje, np. geograficzne, itp., Odkrywanie reguł i relacji poprzez analizę danych. Racjonalizacja danych, czyli przekształcenie nieczytelnych danych do rozpoznawalnych oznaczeń (PHX323RFD110A4 Papier do drukarek laserowych, format A4),
Techniki czyszczenia danych: Identyfikacja duplikatów i deduplikacja, Grupowanie (ang. householding), Przykład Tim Jones 123 Main Street Marlboro MA 12234 T. Jones 123 Main St. Marlborogh MA 12234 Timothy Jones 321 Maine Street Marlborog AM 12234 Jones, Timothy 123 Maine Ave Marlborough MA 13324 Z każda krotka zwiazana jest sprzedaż o wartości ok. $500 Czy to jest jedna osoba?
1 Proces ekstrakcji, transformacji i ładowania 2 Ekstrakcja danych 3 Transformacja i integracja danych 4 Ładowanie danych 5 Odświeżanie hurtowni danych 6 Podsumowanie
Ładowanie danych: Po wydobyciu, oczyszczeniu i przekształceniu dane zostaja przesłane do hurtowni danych, Ładowanie danych składa się z następujacych procesów: sprawdzania ograniczeń integralnościowych, sortowania, agregowania i indeksowania danych, Klasycznie wykorzystywane jest ładowanie wsadowe, Należy zapewnić administratorowi możliwość monitorowania statusu, przerwania ładowania, zawieszenia, wznowienia i ponownego rozpoczęcia ładowania bez utraty spójności danych.
Ładowanie danych dotyczy: Bardzo dużej ilości danych, Może zajać bardzo dużo czasu, Może być traktowane jako jedna, pojedyncza ale bardzo długa transakcja; należy używać punktów kontrolnych w celu uniknięcia, w razie błędu, ponownego ładowania tak dużej ilości danych do hurtowni danych.
1 Proces ekstrakcji, transformacji i ładowania 2 Ekstrakcja danych 3 Transformacja i integracja danych 4 Ładowanie danych 5 Odświeżanie hurtowni danych 6 Podsumowanie
Odświeżanie hurtowni danych Odświeżanie hurtowni danych oznacza wprowadzanie uaktualnień ze źródeł danych do danych składowanych w hurtowni danych, Odświeżanie ma podobna strukturę jak proces ETL, Dostęp do świeżych danych jest jedna z kluczowych własności decydujacych o sukcesie hurtowni danych, Wymagania zwiazane z dziedzina zastosowań (np. świeżość danych, czas obliczania perspektyw i odpowiedzi na zapytania, dokładność danych), Ograniczenia zwiazane ze źródłami danych (np. okna dyspozycyjności, częstotliwość zmian), Ograniczenia systemowe hurtowni danych (np. wielkość dostępnego miejsca).
Główne trudności odświeżania hurtowni danych Ilość danych przechowywana w hurtowniach danych jest bardzo duża i rośnie z czasem, odświeżanie jest propagowane, co zwielokrotnia liczbę danych, Odświeżanie hurtowni danych wymaga uruchomienia wielu transakcji o różnym stopniu złożoności, niektóre bardzo złożone co osłabia wydajność procesu, Odświeżania odbywa się równolegle z obsługa zapytań, Dostępność źródeł danych.
Główne zagadnienia odświeżania hurtowni danych Wykrywanie zmian w źródłach danych, Obliczanie i ekstrakcja zmian, Zapamiętywanie zmian. Zdolność do ładowania danych udostępnianie danych źródłowych w sposób zrozumiały dla systemu docelowego. Monitorowanie zmian wykrywanie zmian, które maja znaczenia z punktu widzenia hurtowni danych. Przekazywanie aktualizacji perspektywom zmaterializowanym.
Rodzaje odświeżania hurtowni danych Okresowe, Natychmiastowe, Na ż adanie (określone przez wykorzystanie, typ danych lub typ źródła danych).
Główne różnice pomiędzy procesem ładowania i odświeżania danych Proces odświeżania może być asynchroniczny, Ładowanie danych wymaga zazwyczaj długiego dostępu do źródeł danych, Proces odświeżania powinien być dużo szybszy, Proces odświeżania dotyczy mniejszej ilości danych.
1 Proces ekstrakcji, transformacji i ładowania 2 Ekstrakcja danych 3 Transformacja i integracja danych 4 Ładowanie danych 5 Odświeżanie hurtowni danych 6 Podsumowanie
Podsumowanie Proces ETL jest elementem strategicznym w projektach hurtowni danych, Najważniejsze pojęcia: ekstrakcja, transformacja i integracja, ładowanie danych, odświeżanie hurtowni danych oraz metadane, Ciekawa, ciagle młoda dziedzina i technologia, Wiele ciekawych zagadnień badawczych i technologicznych.
Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL) Systemy OLAP I Systemy OLAP II Systemy OLAP III