Hurtownie danych Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach. http://zajecia.jakubw.pl/hur UZASADNIENIE BIZNESOWE Po co nam hurtownia danych? Jakie mogą być efekty analiz? - Wzrost sprzedaży, zwiększenie udziału w rynku itp. - Środek: analiza zachowania klientów, lokalizacja słabych punktów, śledzenie trendów. - Narzędzie: analiza gromadzonych danych (rozproszonych, niejednorodnych) - budowa hurtowni danych. Jakimi danymi dysponujemy? Które dane powinniśmy gromadzić w hurtowni? Ze względów technicznych gromadzimy tylko to, co niezbędne. 1
DECYZJE PROJEKTOWE: perspektywa pojęciowa Hurtownia Ekstrakcja, czyszczenie, integracja Źródła danych Model pojęciowy: związki między pojęciami związanymi z działalnością przedsiębiorstwa, np.: - Kto to jest klient i co o nim wiemy? - Jak opisywana jest sprzedaż w różnych oddziałach firmy? - Co pod pojęciem fakt sprzedaży chciałby rozumieć analityk? - Czy model wielowymiarowy danych może nam pomóc w tworzeniu raportów biznesowych? MODEL WIELOWYMIAROWY Baza zawiera fakty opisane przez wymiary i określające wartość miar. Fakt - pojedyncze zdarzenie będące podstawą analiz (np. sprzedaż). Fakty opisane są przez wymiary i miary. Wymiar - cecha opisująca dany fakt, pozwalająca powiązać go z innymi pojęciami modelu przedsiębiorstwa (np. klient, data, miejsce, produkt). Wymiary są opisane atrybutami. 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). 2
MODEL GWIAZDY Fakty i wymiary są często w systemach relacyjnych modelowane w postaci gwiazdy. Tablice wymiarów Data id_daty miesiąc kwartał rok Klient id_klienta nazwisko adres grupa_kl Tablica faktów Sprzedaż id_klienta id_daty id_produktu id_sklepu ilość kwota Sklep id_sklepu miasto region kierownik telefon Produkt id_produktu grupa_prod opis data_wprowadzenia marka producent Atrybuty Miary Uwaga: nie wszystkie informacje będą potrzebne - część można pominąć MODEL PŁATKA ŚNIEGU Normalizacja schematu gwiazdy poprzez modelowanie atrybutów za pomocą kolejnych tablic prowadzi do modelu płatka śniegu. Tablica faktów Sprzedaż id_klienta id_daty id_produktu id_sklepu ilość kwota Produkt id_produktu id_grupy_prod id_marki data_wprowadzenia Tablice wymiarów Sklep id_sklepu id_miasta Miasto id_miasta id_regionu nazwa Grupa_prod id_grupy_prod nazwa_grupy_prod Marka id_marki id_producenta nazwa_marki Region id_regionu nazwa Uwaga: model płatka śniegu odtwarza hierarchię wymiarów. Producent id_producenta nazwa_producenta kraj_producenta 3
AGREGACJE Agregacje to operacje zamieniające zbiór wartości (przeważnie liczbowych) miar opisujących fakty, na pojedynczą wartość. Podstawowa operacja tworząca kostki danych. Przykłady: Suma Liczba rekordów Średnia Minimum, maksimum, mediana Dodatkowy warunek (np. HAVING) Specjalne (stored procedures) SELECT miesiąc, SUM(kwota) FROM tablica_faktów GROUP BY miesiąc HAVING SUM(kwota)>500 KOSTKI DANYCH Dane (np. schemat gwiazdy) Kostka wielowymiarowa danych produkt czas Kostka danych: tabela, w której krawędziami są wymiary, a zawartością komórek miary. klient 230$ Zawartość komórki: zagregowana miara 4
KOSTKI DANYCH miasto sklep Nagłówki wierszy i kolumn kostki zawierają wartości wymiarów (atrybutów) sprzedaż wartość czas produkt Komórki zawierają zagregowane (po wymiarach) wartości miar miasto_1 miasto_2 miasto_1 miasto_2 skl_1 skl_2 skl_3 suma skl_1 skl_1 skl_2 skl_2 skl_3 skl_3 suma suma skl_1 skl_1 skl_2 skl_2 skl_3 skl_3 suma suma prod_1 27 12 50 89 prod_1 prod_1 27 27 12 12 50 50 89 89 prod_1 prod_1 27 27 12 12 50 50 89 89 prod_2 0 0 0 0 23 23 23 23 prod_2 prod_2 0 0 23 23 prod_2 prod_2 0 0 0 0 23 23 23 23 prod_3 prod_3 146 146 237 237 12 12 395 395 prod_3 146 237 12 395 prod_3 prod_3 146 146 237 237 12 12 395 395 prod_4 prod_4 76 76 45 45 1 1 122 122 prod_4 76 45 1 122 122 prod_4 prod_4 76 76 45 45 1 1 122 prod_5 prod_5 0 0 8 8 5 5 13 13 prod_5 prod_5 0 0 8 8 5 5 13 13 prod_5 0 8 5 13 suma suma 249 249 302 302 91 91 642 642 suma suma 249 249 302 302 91 91 642 642 suma 249 302 91 642 czas W kostkach bywają też przechowywane pomocnicze podsumowania MODEL PUNKTOWY Przed stworzeniem logicznego modelu danych (gwiazda, płatek śniegu) należy uzgodnić model pojęciowy. Przykładowa technika modelowania: model punktowy. Region Towar Grupa towarów Magazyn Sprzedaż Dostawa do magazynu Czas Kwartał Transport - Fakty reprezentowane są punktami - Wymiary reprezentowane są przez nazwy - Podobnie reprezentujemy kolejne poziomy hierarchii - Model może obejmować wiele (konstelację) faktów, korzystających częściowo ze wspólnej hierarchii wymiarów 5
MODEL PUNKTOWY W modelu punktowym zapisujemy ponadto informacje na temat: - Nazw atrybutów - Typów danych - Więzów integralności - Retrospekcji (zmienności wartości atrybutów w czasie) - Częstości odświeżania - Pochodzenia danych (źródło, transformacje) - Metadanych biznesowych Retrospekcja może być: - prawdziwa zapisujemy wszelkie zmiany wartości wraz z dokładnym czasem - fałszywa nowe wartości zastępują stare - trwała nie przewidujemy zmiany wartości. POZIOMY AGREGACJI DANYCH 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. Hurtownia danych (lub hurtownie tematyczne) mogą przechowywać zmaterializowane podkostki danych i korzystać z nich podczas analiz. 6
PRZYKŁAD: POZIOMY AGREGACJI 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, 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. OPTYMALIZACJA AGREGACJI Problem: Które wymiary możemy pominąć? Jak agregować dane (sum, min, max, avg, count)? Które atrybuty hierarchii agregujemy, a które pozostawiamy? Ile powinno powstać zmaterializowanych kostek pomocniczych? Jak optymalnie obliczać konkretne zapytanie? Cel: np. minimalizacja średniego czasu przetwarzania zadawanych w praktyce zapytań OLAP. gwiazda czas, klient, towar, sklep kostka czas, klient, towar czas, klient, sklep czas, towar, sklep klient, towar, sklep czas, klient czas, sklep klient, sklep towar, sklep czas, towar klient, towar czas sklep towar klient Zwykle nie możemy zmaterializować wszystkich podkostek, musimy wybrać takie, z których później najłatwiej będzie generować raporty. 7
NAWIGATOR PO AGREGACJACH Skąd wiadomo, które zapytania są często wykonywane? Nawigator po agregacjach Informacje o zadawanych zapytaniach OLAP są gromadzone jako metadane w specjalnej bazie (repozytorium). Mogą być wykorzystane do optymalizacji zapytań (np. materializacji niektórych agregacji). Metadane hurtowni zawierają też wiele innych informacji, np. opis pojęciowy i logiczny danych, informacje o źródłach i ich integracji, dziennik aktualizacji itd. NAWIGATOR PO AGREGACJACH Nawigator po agregacjach wspomaga też przeglądanie danych i przygotowywanie raportów. Programy z tej rodziny zapewniają wygodny wgląd w wielowymiarowy model danych. Nawigator po agregacjach Raport skl_1 skl_2 skl_3 suma prod_1 27 12 50 89 prod_2 0 0 23 23 prod_3 146 237 12 395 prod_4 76 45 1 122 prod_5 0 8 5 13 suma 249 302 91 642 8
NAWIGACJA PO AGREGACJACH Najczęściej wykonywane operacje OLAP - terminologia: Agregacja, konsolidacja, zwijanie (aggregation, consolidation, roll-up) - przejście na bardziej ogólny poziom wymiaru, - wybór operacji agregującej (np. suma, średnia, zestawienie procentowe). dni miesiące Rozwijanie (roll-down, drill-down, drill through) - operacja odwrotna do agregacji: przeglądanie szczegółowych danych dotyczących danego podsumowania sprzedaż w regionach poszczególne sklepy NAWIGACJA PO AGREGACJACH Najczęściej wykonywane operacje OLAP - terminologia: Selekcja (slicing) - wycinanie fragmentu danych poprzez określenie warunków na wartościach wymiarów, - wynikiem jest podkostka, np. dwuwymiarowy plaster (slice), odpowiadająca danym spełniającym warunki. miasto_1 miasto_1miasto_2 miasto_2 miasto_1 miasto_1 skl_1 skl_1miasto_2 miasto_2 skl_2 skl_2skl_3 skl_3suma suma skl_1 skl_2 skl_3 suma skl_1 skl_2 skl_3 suma prod_1 prod_1 skl_1 skl_1skl_2 skl_2 27 27 skl_3 skl_3 12 12 50 suma 50 suma warunek: 89 89 prod_1 27 12 50 89 prod_1 3 12 70... prod_1 prod_2 27 0 0 12 prod_2 0 0 50 23 23 89 data =... prod_1 27 12 50 89 23 23 prod_2 0 0 23 23 prod_2 0 9 23... prod_2 prod_2 prod_3 prod_3 0 0 146 146 0 0 237 237 23 12 23 12 23 395 395 prod_3 prod_3 146 237 12 395 prod_4 prod_4 146 76 76 237 45 45 12 1 1 395 prod_3 7 2 12... prod_3 146 237 12 395 122 122 prod_4 prod_4 76 45 1 122 prod_5 prod_5 76 0 0 45 8 8 1 5 122 5 122 prod_4 0 15 1... prod_4 76 45 1 13 13 prod_5 prod_5 0 8 5 13 prod_5 suma suma 0 0 249 249 8 8 302 302 5 5 91 13 91 13 prod_5 0 8 5... 642 642 suma suma 249 249 302 302 91 91 642 642 suma 249 302 91 642 suma............ 9
NAWIGACJA PO AGREGACJACH Najczęściej wykonywane operacje OLAP - terminologia: Filtrowanie (screening, selection, filtering) - filtrowanie danych wchodzących w skład agregacji, np. poprzez ograniczenie wartości miar lub atrybutów wymiarów skl_1 skl_2 skl_3 suma prod_1 27 12 50 89 prod_2 0 0 23 23 prod_3 146 237 12 395 prod_4 76 45 1 122 prod_5 0 8 5 13 suma 249 302 91 642 warunek: tylko sklepy mające obrót powyżej 4 mln. oraz sumujemy tylko fakty sprzedaży o wartości powyżej 20. skl_1 - skl_3 suma prod_1 3-70... prod_2 0-23... prod_3 7-12... prod_4 0-1... prod_5 0-5... suma... -...... NAWIGACJA PO AGREGACJACH Najczęściej wykonywane operacje OLAP - terminologia: Zawężanie (scoping) - ograniczenie danych branych pod uwagę w dalszej analizie, - podobne do filtrowania, jednak realizowane na wcześniejszym poziomie operacyjnym, - działa jak automatyczne dodanie warunków do wszystkich dalszych operacji na kostkach danych. warunek: tylko sklepy mające obrót powyżej 4 mln. oraz tylko pierwsze dwa kwartały 2000 roku 10
NAWIGACJA PO AGREGACJACH Najczęściej wykonywane operacje OLAP - terminologia: Obracanie (pivot, rotate) - zamiana miejscami kolumn i wierszy tabeli, - przeniesienie pewnego wymiaru z kolumn do wierszy (lub odwrotnie), - zamiana pewnego wymiaru (lub atrybutu) na inny, nieużywany. prod_1 prod_2 prod_3 prod_4 prod_5 suma 2002 2003 skl_1 skl_2 skl_1 27 12 92 0 0 23 146 237 12 76 45 7 0 8 5......... skl_1 50 21 12 1 0... prod_1 prod_2 2002 prod_3 prod_4 prod_5 prod_1 prod_2 2003 prod_3 prod_4 prod_5 suma skl_1 skl_2 27 12 0 0 146 237 76 45 0 8 92 50 23 21 12 12 7 1 5 0...... 11