Proces ekstrakcji, transformacji i ładowania danych () Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Inteligentne Systemy Wspomagania Decyzji Studia magisterskie, semestr I Semestr letni 2007/08
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Systemy OLAP Język MDX Proces ekstrakcji, transformacji i ładowania danych () Analiza i eksploracja danych
Plan wykładu 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
Plan wykładu 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
(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. powinien mieć swoje odbicie w metadanych hurtowni danych.
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). Informacje sa transformowane, integrowane, czyszczone i ładowane do hurtowni 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).
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).
Plan wykładu 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
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), stworzone oprogramowanie, narzędzia generowania zapytań za pomoca różnych języków, przeważnie pochodnych SQL.
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 sa 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.
Z procesem ekstrakcji można powiazać niektóre formy czyszczenia i transformacji danych: Ujednolicanie danych: uzgadnianie różnych formatów danych, kodowania i wartości, na podstawie zdefiniowanych wcześniej odwzorowań, Weryfikacji danych: wykrywanie danych potencjalnie sprzecznych w celu ich usunięcia lub poprawienia, Filtrowanie danych: wybór tych danych, które spełniaja wymagania stawiane przez hurtownię danych.
Plan wykładu 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 Według Inmona 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.
Rodzaje i przyczyny konfliktów: 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),
Rodzaje i przyczyny konfliktów: 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.
Dopasowanie obiektów polega na zweryfikowaniu, czy dane obiekty w bazach źródłowych odnosza się do tego samego elementu świata rzeczywistego. dopasowanie za pomoca klucza, funkcje identyczności (funkcje rozmyte).
Czyszczenie danych: Zależy nam na analizowaniu danych i podejmowaniu decyzji potrzeba dobrych jakościowo danych, Najczęściej mamy do czynienia z brudnymi danymi: duże prawdopodobieństwo błędów i anomalii w danych.
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, Sprzeczne dane na temat tego samego obiektu, wynikajace z pomyłek podczas wprowadzania danych.
Brudne dane: Niezgodność wartości pola i jego opisu (np. pole name może zawierać nazwę instytucji, jak też nazwisko osoby), Brakujace wartości, które zgodnie ze schematem hurtowni danych powinny być wypełnione, Pola wypełniane opcjonalnie i pola wypełniane obligatoryjnie, Wprowadzone wielokrotnie te same informacje, jakie moga powstać w ramach jednego źródła danych albo gdy dwa źródła podaja te same informacje dotyczace jednego obiektu rzeczywistego, ale opatrzone różnym kluczem.
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 czyszczace 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), Wykorzystanie dodatkowej wiedzy, np. adresy pocztowe do określania nazw miast, znajomość regularności wyrażeń,
Techniki czyszczenia danych: Przykład Racjonalizacja danych, czyli przekształcenie nieczytelnych danych do rozpoznawalnych oznaczeń (PHX323RFD110A4 Papier do drukarek laserowych, format A4), Identyfikacja duplikatów i deduplikacja, Grupowanie (ang. householding), 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?
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 Odkrywanie reguł i relacji poprzez analizę danych. Rozszerzanie baz danych o dodatkowe informacje, np. geograficzne, itp.,
Plan wykładu 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.
Plan wykładu 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.
Plan wykładu 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 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.
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Systemy OLAP Język MDX Proces ekstrakcji, transformacji i ładowania danych () Analiza i eksploracja danych