Plan wykładu • Bazy operacyjne i analityczne Bazy danych Wykład 14: Hurtownie danych • Architektura hurtowni danych • Projektowanie hurtowni danych Małgorzata Krętowska, Agnieszka Oniśko Wydział Informatyki PB Bazy danych (studia dzienne) Rodzaje baz Bazy operacyjne: wspomaganie bieżącego funkcjonowania firmy. OLTP (On-Line Transactions Processing) Bazy analityczne: wyciąganie z danych informacji o wzorcach i trendach w biznesie z myślą o wspomaganiu podejmowania decyzji w firmie. OLAP (On-Line Analytical Processing) Hurtownie danych 2 Rodzaje baz OLTP -bieżąca działalność przedsiębiorstwa -duża liczba prostych zapytań (fakty) -dodawanie, usuwanie i modyfikacja danych -natychmiastowy dostęp do aktualnych informacji OLAP -analizy, raporty -niewielka liczba skomplikowanych zapytań (podsumowania) -odczytywanie informacji i ich cykliczne uzupełnianie -dane mogą być dostępne z opóźnieniem Cechy hurtowni danych -Zorientowana tematycznie Hurtownia danych (data warehouse) - zintegrowana perspektywa, udostępniająca najważniejsze informacje gromadzone przez jednostkę organizacyjną lub: Hurtownia danych to zbiór zintegrowanych, nieulotnych, ukierunkowanych baz danych, wykorzystywanych w systemach wspomagania decyzji (B. Inmon, 1996). Zadanie hurtowni danych: zamiana bezładnych danych na użyteczne informacje -Nieulotna: po załadowaniu dane będą tylko odczytywane -Wielowersyjna-czasowo: dane pochodzą z okresu kilku/kilkunastu lat. Istotnym elementem danych jest czas. Cele hurtowni danych Odkrywanie wiedzy (KDD) Wydobywanie wiedzy, eksploracja danych, drążenie danych (data mining) - dziedzina hurtowni danych związana z wykorzystaniem zaawansowanych metod matematycznych, mających na celu wykrycie tendencji zmian w danych. Przetwarzanie analityczne danych (OLAP) Wspomaganie podejmowania decyzji (DSS) Archiwizacja -statystyczna analiza wielowymiarowa -uczenie maszynowe (ang. machine learning) KDD: Knowledge Discovery in Databases Systemy wspomagania decyzji CRM CRM (ang. Customer Relationship Management): zarządzanie kontaktami z klientami Cele biznesowe: pozyskiwanie nowych klientów, zatrzymanie najlepszych klientów, zwiększenie sprzedaży Dane pacjenta Decyzja o diagnozie CRM: rozwiązania programowe i organizacyjne mające na celu zmniejszenie ryzyka utraty klientów: -gromadzenie informacji o klientach -usprawnienie kontaktów z klientami Model decyzyjny -wsparcie techniczne akcji marketingowych Architektura hurtowni danych Integracja danych Hurtownia danych Architektura hurtowni danych Przekształcenie danych Hurtownia danych Interfejs Źródła danych Źródła danych Użytkownicy końcowi ODS (ang. Operational Data Store): magazyny danych operacyjnych, stanowią warstwę pośrednią, w której dane są już zintegrowane. Zwykle ODS są częściej aktualizowane, niż właściwa hurtownia danych. Architektura hurtowni tematycznych Hurtownie tematyczne Rodzaje implementacji Architektura scentralizowana: fizyczna hurtownia centralna (i ew. ODS). Architektura federacyjna: hurtownia centralna jest wirtualna (perspektywy nie zawsze zmaterializowane), pobiera dane z ODS. Hurtownia danych Architektura warstwowa: fizyczna hurtownia centralna, kolejne warstwy fizycznych hurtowni tematycznych. Źródła danych ODS (ang. Operational Data Store): magazyny danych operacyjnych, stanowią warstwę pośrednią, w której dane są już zintegrowane. Zwykle ODS są częściej aktualizowane, niż właściwa hurtownia danych. Architektura scentralizowana Architektura federacyjna Hurtownie tematyczne Hurtownie tematyczne Hurtownia danych Centralna hurtownia przechowuje dane (zmaterializowana) Źródła danych ODS Hurtownie tematyczne: zazwyczaj zmaterializowane w celu zwiększenia wydajności Źródła danych ODS: mogą być zmaterializowane Architektura warstwowa ODS Centralna hurtownia jest wirtualna (stanowi tylko wspólny model logiczny i pojęciowy danych) Hurtownie tematyczne: zazwyczaj zmaterializowane w celu zwiększenia wydajności ODS: przechowują dane (są zawsze zmaterializowane) Projektowanie hurtowni danych Hurtownie tematyczne Bazy operacyjne: “Po co przechowywać miesięczne salda kont bankowych, skoro można je wyliczyć?” Hurtownia danych Coraz wyższe stopnie agregacji danych. Dane z kolejnych warstw są obliczane na podstawie Źródła danych poprzednich. Ze względu na wydajność, wszystkie warstwy są zmaterializowane. Bazy analityczne: “Dlaczego nie wyliczyć raz i nie przechowywać miesięcznych stanów kont, skoro 90% wykonywanych analiz wymaga tak przygotowanych danych?” Przygotowanie danych Agregacje - wstępne wyliczenie pewnych miar przydatnych w późniejszych analizach Podział na partycje - podział tabel na części tak, aby zmniejszyć rozmiar danych, które będzie trzeba przeczytać w trakcie analizy Rodzaje danych Wielkości analizowane (fakty) - dane ilościowe opisujące pewne fakty: np. sprzedaż, zyski, obroty Wielkości klasyfikujące (wymiary) - dane klasyfikujące opisywane fakty wg okoliczności ich zaistnienia, np. czas, miejsce, osoba Model wielowymiarowy Schemat gwiazda Baza zawiera fakty opisane przez wymiary i określające wartość miar. Schemat gwiazdy - rodzaj organizacji danych, projektowany pod kątem szybkości dostępu do danych. Upraszcza nawigację wśród danych. Fakt - pojedyncze zdarzenie będące podstawą analiz (np. sprzedaż). Fakty opisane są przez wymiary i miary. Struktura ułatwia przeprowadzanie analiz danych. Składa się z: Wymiar - cecha opisująca dany fakt, pozwalając powiązać go z innymi pojęciami modelu przedsiębiorstwa (np. klient, data, miejsce, produkt). Wymiary są opisane atrybutami. 1. Tabel opisujących wymiary 2. Tabeli faktów (zawiera również klucze obce z tabel wymiarów) klucz A klucz A klucz C klucz B Atrybut - cecha wymiaru, przechowująca dodatkowe informacje na temat faktu (np. wymiar data może mieć atrybuty: miesiąc, kwartał, rok; wymiar klient może mieć atrybuty: nazwisko, region). Miara - wartość liczbowa przyporządkowana do danego faktu (np. wartość sprzedaży, liczba sztuk). klucz B Tabele wymiarów Tabela faktów Klient Sprzedaż nazwisko Marka Produkt id_klienta id_daty Tabele wymiarów Model płatka śniegu Schemat gwiazda - przykład Data klucz C Sprzedaż id_produktu id_marki grupa_prod nazwa kwartał id_klienta adres id_klienta opis id_producenta rok id_daty grupa_Data kl id_daty data_wprowadzenia id_produktu id_marki id_sklepu producent miesiąc Sklep id_sklepu miasto region kierownik id_produktu Produkt id_sklepu ilość kwota id_produktu grupa_prod opis Tabela faktów telefon Miary: ilość, kwota Atrybuty: miesiąc, kwartał, rok ilosc kwota Tabela faktów Producent id_producenta nazwa Sklep id_sklepu id_miasta Miasto id_miasta Region marka nazwa id_regionu producent id_regionu nazwa data_wprowadzenia Kostki danych: przykład Kostki danych Kostka danych: tabela, w której krawędziami są wymiary, a zawartością komórek – miary. sklep1 produkt czas klient Zawartość komórki: zagregowana miara produkt1 100 produkt2 180 produkt3 150 produkt4 10 produkt5 20 produkt6 120 produkt7 50 suma 630 Agregacje sklep2 100 sklep3 0 suma 250 czas Agregacje Agregacje to operacje zamieniające zbiór wartości miar opisujących fakty, na pojedynczą wartość. Podstawowa operacja tworząca kostki danych. • Suma Hurtownia danych • Liczba rekordów • Średnia • Minimum, maksimum, mediana • Specjalne (na podstawie składowanych procedur) Nie zawsze potrzebujemy danych opisanych z pełną dostępną dokładnością. Agregacja wartości może dotyczyć pomijania pewnych wymiarów lub atrybutów w hierarchii. GROUP BY miesiąc HAVING SUM(kwota)>500; Hurtownia danych (lub hurtownie tematyczne) mogą przechowywać zmaterializowane podkostki danych i korzystać z nich podczas analiz. Agregacje - przykład Operacje w hurtowniach danych SELECT miesiąc, SUM(kwota) FROM tablica_faktów Dane: fakty sprzedaży (50 mln. rekordów, miara: wartość), klienci identyfikowani kodem pocztowym (3000 różnych kodów), towary (60 grup, 800 nazw indywidualnych), czas: 3 lata (1000 dni), sklepy (18 sztuk). - Model gwiazdy: tablice z (łącznie) trochę ponad 50 mln. rekordów. - Kostka danych: 3000*800*1000*18 = 43 200 000 000 komórek. Wersja zagregowana: ignorujemy wymiar klientów, towary rozpatrujemy tylko w grupach (60 grup), czas rozpatrujemy w skali miesięcy. - Kostka danych: 60*36*18 = 38 880 komórek (sumy wartości). Powyższa agregacja nie pozwala na wygenerowanie wszystkich tych raportów, które mogły być tworzone oryginalnie, ale za to dla pozostałych raportów może działać o 3 rzędy wielkości szybciej. - Integracja danych - Ekstrakcja -Śledzenie zmian/Aktualizacja Integracja danych Źródła danych: - Relacyjne bazy danych (np. systemy transakcyjne) - Dane z przestarzałych systemów w przedsiębiorstwie - Pliki tekstowe, arkusze kalkulacyjne, urządzenia rejestrujące itp. Czyszczeniem i ujednolicaniem danych źródłowych od strony technicznej zajmują się programy typu ETL (Extraction, Transformation, Load). Integracja danych - Selekcja informacji (pominięcie danych nieistotnych z punktu widzenia założonego modelu pojęciowego hurtowni). - Usuwanie redundancji w danych źródłowych. - Ustalenie reguł poprawności i kontroli jakości danych trafiających do hurtowni (np. minimalny współczynnik kompletności danych). Integracja danych Integracja danych na poziomie pojęciowym to ustalenie wspólnego języka przekładającego terminy biznesowe modelu pojęciowego na obiekty występujące po stronie źródeł. Np. kto to jest „klient”? Czy wszystkie bazy źródłowe rozumieją to pojecie w ten sam sposób? Jak przekształcić „klienta” pochodzącego z bazy danych oddziału zagranicznego na „klienta” według definicji naszej hurtowni? Jak dopasować zestawy cech opisujących klientów w różnych systemach źródłowych? Np. „fakt sprzedaży” w jednym systemie identyfikowany jest z wystawieniem faktury, a w innym – z wydaniem towaru z magazynu. Ekstrakcja Proces ekstrakcji polega na wybraniu informacji, które mają trafić do hurtowni, a następnie pozyskaniu tych informacji z baz źródłowych. Może to wymagać skomplikowanych zabiegów związanych np. ze śledzeniem zmian danych w czasie. Przykładowa architektura: pośrednia baza danych cyklicznie odpytuje źródło za pomocą SQL i gromadzi informacje poddawane następnie transformacji i ładowaniu do hurtowni. Zapytanie SQL (baza pośrednia): SELECT ...dane_klienta... FROM klienci WHERE data_ostatniej_zmiany > ... Śledzenie zmian Real-time Data Warehousing - Czasem dane mają jawnie podaną datę wprowadzenia do systemów źródłowych (lub możemy taką informację dodać). Alternatywnie możemy zapamiętać tylko informację, czy dany rekord został zarchiwizowany. -Odświeżanie danych zwykle w cyklu dobowym. -Jeśli możemy modyfikować systemy źródłowe oraz ich technologia na to pozwala - instalujemy wyzwalacze. Efektem ich działania może być aktywne powiadamianie hurtowni o zmianach, lub powstawanie tablicy różnic. Są to tablice, w których źródłowa baza danych zapisuje dodawane, usuwane i zmieniane rekordy (źródła z aktywnością wewnętrzną). -Hurtownia danych to przedsięwzięcie nie tylko informatyczne, ale też organizacyjne (ustalenie procedur i instrukcji postępowania, schematów replikacji danych itp.). -Śledzenie dziennika: Kontrola operacji w bazie danych poprzez śledzenie dziennika aktywności (np. przetwarzanych zapytań) bazy danych. -Real-Time Data Warehousing: połączenie typowej hurtowni danych z możliwością bieżącego odświeżania danych (np. w cyklach godzinnych czy minutowych). Literatura Ch. Todman. Projektowanie hurtowni danych. WNT, Warszawa 2003. M. Jarke, M. Lenzerini, Y. Vassiliou, P. Vassiliadis. Hurtownie danych. Podstawa organizacji i funkcjonowania, WSiP, Warszawa 2003. V. Poe, P. Klauer, S. Brobst. Tworzenie hurtowni danych. WNT, Warszawa 2000. Wykład: http://www.jakubw.pl/zajecia/hur/index.html