OLAP i hurtownie danych c.d. Przypomnienie OLAP -narzędzia analizy danych Hurtownie danych -duże bazy danych zorientowane tematycznie, nieulotne, zmienne w czasie, wspierjące procesy podejmowania decyzji Anna Pankowska - I&E 2
Hurtownie danych a OLAP Anna Pankowska - I&E 3 Implementacja i pielęgnacja Ekstrakcja danych Czyszczenie danych Transformacja danych Ładowanie danych Monitorowanie zmian Odświeżanie danych Metadane i ich repozytorium Anna Pankowska - I&E 4
Implementacja i pielęgnacja Ekstrakcja Czyszczenie Transformacja Ładowanie Monitorowanie Odświeżanie Pobieranie danych ze źródeł danych - bramki, standardowe interfejsy, procedury własne - identyfikacja pól w tabelach źródłowych, z których czerpane będą dane Anna Pankowska - I&E 5 Implementacja i pielęgnacja Ekstrakcja Czyszczenie Transformacja Ładowanie Monitorowanie Odświeżanie Zapewnienie poprawnościijakości danych w hurtowni - detekcja i korekcja błędów: niekompletne dane błędne dane informacje niezrozumiałe niekonsekwencja w danych konflikty strukturalne Anna Pankowska - I&E 6
Implementacja i pielęgnacja Ekstrakcja Czyszczenie Transformacja Ładowanie Monitorowanie Odświeżanie Konwersja danych z formatu wykorzystywanego w źródle do formatu wykorzystywanego w hurtowni - analiza tematyczna danych - ustalenie wspólnego formatu danych - rozdzielanie i łączenie kolumn, konwersja typów, agregaty - określenie zbioru reguł sterujących tą transformacją Anna Pankowska - I&E 7 Implementacja i pielęgnacja Ekstrakcja Czyszczenie Transformacja Ładowanie Monitorowanie Odświeżanie Integracja i umieszczanie nowych danych w hurtowni - sprawdzanie ograniczeń integralnościowych, sortowanie, podsumowywanie, budowaine indeksów, itp. - problemy: wstrzymanie ładowania, wznowienie, ładowanie sekwencyjne/równoległe Anna Pankowska - I&E 8
Implementacja i pielęgnacja Ekstrakcja Czyszczenie Transformacja Ładowanie Monitorowanie Odświeżanie Monitorowanie zmian zachodzących w źródłach danych - mechanizm wyzwalaczy (triggers) - analiza pliku logu - procedury własne - polling (zapytania do źródeł) Anna Pankowska - I&E 9 Implementacja i pielęgnacja Ekstrakcja Czyszczenie Transformacja Ładowanie Monitorowanie Odświeżanie Propagowanie zmian zachodzących w źródłach do - kiedy odświeżać: nabieżąco, periodycznie, zależnie od źródła -jakodświeżać: ladowanie pełne, odświeżanie inkrementalne - mechanizm pielęgnacji replik: transfer danych, transfer transakcji Anna Pankowska - I&E 10
Metadane Dane o danych Integralna część hurtowni danych Określają znaczenie i kontekst informacji zawartej w hurtowni Jakie dane są dostępne, gdzie zlokalizowane, w jaki sposób dostępne Anna Pankowska - I&E 11 Metadane Metadane fizyczne Metadane logiczne Metadane operacyjne Metadane historyczne Metadane administracyjne Metadane personalizacyjne Anna Pankowska - I&E 12
Operacje w modelu wielowymierowym Agregacja Pivoting wyznaczanie punktu centralnego wskazanie miary, która nas interesuje, i wybranie 2 wymiarów, w których ma być prezentowana Roll up zwijanie dla wskazanego wymiaru następuje nawigacja wzdłuż hierarchii w górę,w celu prezentacji większych agregatów Drill down rozwijanie nawigacja w dół wzdłuż hierarchii danego wymiaru w celu rozbicia agregatu a agregaty składowe Anna Pankowska - I&E 13 Operacje w modelu wielowymierowym Slice_and_dice wycinanie następuje projekcja danych na wybranym podzbiorze wymiarów dla wybranych wartości innych wymiarów Rotating obracanie umożliwia prezentowanie danych w różnych układach Ranking wybór pierwszych n elementów Anna Pankowska - I&E 14
Operacje w modelu wielowymierowym Anna Pankowska - I&E 15 Przykład TOWARY DNI # Data NrDnia NrTygodnia NrMca Kwartal Rok SPRZEDAZ # idtow # idkli # Data wartosc koszt # idtow Producent Marka KLIENCI # idkli Miasto Wojewodztwo StanCywilny Plec Anna Pankowska - I&E 16
Operatory ROLLUP i CUBE polecenie ROLLUP jest rozszerzeniem klauzuli GROUP BY, które pozwala wyliczać podsumowania częściowe i ogólne; konstruuje pół-kostki danych select idtow, idkli, sum(wartosc) suma from sprzedaz group by idtow, idkli with rollup Anna Pankowska - I&E 17 Operatory ROLLUP i CUBE idtow idkli suma ----------- ----------- --------- 11 101 60000.0 11 201 32000.0 11 NULL 92000.0 12 102 20000.0 12 202 22000.0 12 NULL 42000.0 21 103 35000.0 21 203 36000.0 21 205 36000.0 21 NULL 107000.0 22 101 120000.0 22 201 58000.0 22 204 60000.0 22 NULL 238000.0 31 205 31000.0 31 NULL 31000.0 NULL NULL 510000.0 Anna Pankowska - I&E 18
Operatory ROLLUP i CUBE operator CUBE tworzy podsumowania dla wszystkich możliwych kombinacji grupowania kolumn. W terminologii analiz wielowymiarowych CUBE generuje podsumowania częściowe i ogólne tabeli faktów dla wszystkich możliwych wymiarów select idtow, idkli, sum(wartosc) suma from sprzedaz group by idtow, idkli with cube Anna Pankowska - I&E 19 Operatory ROLLUP i CUBE idtow idkli suma ----------- ----------- ------------ 11 101 60000.0 11 201 32000.0 11 NULL 92000.0 12 102 20000.0 12 202 22000.0 12 NULL 42000.0 21 103 35000.0 21 203 36000.0 21 205 36000.0 21 NULL 107000.0 22 101 120000.0 22 201 58000.0 22 204 60000.0 22 NULL 238000.0 31 205 31000.0 31 NULL 31000.0 c.d. idtow idkli suma ----------- ----------- ------------ NULL NULL 510000.0 NULL 101 180000.0 NULL 102 20000.0 NULL 103 35000.0 NULL 201 90000.0 NULL 202 22000.0 NULL 203 36000.0 NULL 204 60000.0 NULL 205 67000.0 Anna Pankowska - I&E 20
Operatory ROLLUP i CUBE puste wartości kolumn w przypadku zapytań z funkcjami ROLLUP i CUBE mogą oznaczać operacje podsumowania lub standardową wartość pustą kolumny, np.: select plec, sum(wartosc) 'suma' from sprzedaz s, klienci k where s.idkli = k.idkli group by plec with rollup wartość pusta podsumowanie plec suma ---- --------- NULL 67000.0 K 173000.0 M 270000.0 NULL 510000.0 Anna Pankowska - I&E 21 GROUPING funkcja GROUPING pozwala rozróżnić wiersze z wartościami pustymi od wierszy podsumowań;jeżeli wartość pusta oznacza podsumowanie, funkcja ta zwraca wartość 1, w przeciwnym przypadku 0 Anna Pankowska - I&E 22
GROUPING przykład select plec, sum(wartosc) 'suma', grouping(plec) 'p' from sprzedaz s, klienci k where s.idkli = k.idkli group by plec with rollup plec suma p ---- ----------- ---- NULL 67000.0 0 K 173000.0 0 M 270000.0 0 NULL 510000.0 1 Anna Pankowska - I&E 23 GROUPING przykład 2 select case when (grouping(plec)=1) then 'ALL' else isnull(plec, '?') end as plec, sum(wartosc) 'suma' from sprzedaz s, klienci k where s.idkli = k.idkli group by plec with rollup plec suma ---- ---------? 67000.0 K 173000.0 M 270000.0 ALL 510000.0 Anna Pankowska - I&E 24