Bazy danych

advertisement
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
Download