Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Hurtownie danych a bazy danych Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill,

Podobne prezentacje


Prezentacja na temat: "1 Hurtownie danych a bazy danych Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill,"— Zapis prezentacji:

1 1 Hurtownie danych a bazy danych Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka i slidey). 2.Lech Banachowski, Krzysztof Stencel, Systemy zarzadzania bazami danych, Wyd. PJWSTK, 2007.

2 2 Wprowadzenie v Firmy i organizacje muszą dokonywać analizy aktualnych i historycznych danych aby zidentyfikować użyteczne wzorce i trendy w celu wspomagania strategii rozwojowych ich firmy lub organizacji. v Analiza jest często złożona, ma charakter interakcyjny i odkrywczy, dotyczy bardzo dużych zbiorów danych tworzonych w wyniku integracji danych pochodzących z różnych części firmy; analizowane dane nie zmieniają się (tylko przybywa ich w czasie). –Takie przetwarzanie danych nazywa się On-Line Analytical Processing (OLAP). –Poprzednio rozważaliśmy On-line Transaction Processing (OLTP) - transakcje złożone z krótkich zapytań i modyfikacji.

3 3 Przykładowe pytania istotne dla osób podejmujących decyzje v Które produkty przynoszą firmie najwięcej zysku? v Którzy klienci przynoszą najwięcej zysku? Co mają ze sobą wspólnego? Jak często korzystają z usług bezpośredniej pomocy telefonicznej? v W których regionach kraju firma osiąga największe zyski, z jakiego rodzaju działalności te zyski pochodzą? v Jakie usługi są najbardziej pożądane dla klientów firmy? v Kiedy powinno się wprowadzić na rynek nowe produkty? v Które produkty powinno się wycofać z rynku? v Którzy dostawcy są najmniej pewni?

4 4 v Hurtownia danych: Zintegrowane dane pochodzące z wielu źródeł: –Ładowanie nowych danych z wielu źródeł. –Integracja semantyczna (np. uzgodnienie walut, miar, formatów). v OLAP: –Złożone zapytania i perspektywy SQL. –Zapytania podobne do operacji na arkuszach kalkulacyjnych i na wielowymiarowych danych. –Zapytania interakcyjne i online. v Data Mining: Eksploracyjne wyszukiwanie interesujących trendów i anomalii. Trzy komponenty

5 5 Hurtownia danych v Zintegrowane dane obejmujące długie okresy czasu, często rozszerzone o informacje sumaryczne. v Rozmiar w gigabajtach i terabajtach. v Oczekuje się szybkiej odpowiedzi na złożone zapytania – dlatego jest konieczne wcześniejsze przetworzenie danych. v Modyfikacje danych praktycznie nie występują. ZEWNĘTRZNE ŹR Ơ DŁA DANYCH EXTRACT TRANSFORM LOAD REFRESH HURTOWNIA DANYCH Repozytorium metadanych WSPOMAGA OLAP DATA MINING

6 6 Podejście v Projektując hurtownię danych stosujemy inne podejście niż przy projektowaniu baz operacyjnych. Zamiast: –Po co przechowywać miesięczne salda kont bankowych, skoro można je wyliczyć mając zapis ciągu wykonanych na nim operacji? v stawiamy pytanie: –Czemu nie wyliczyć raz i nie przechowywać miesięcznych stanów kont, skoro 90% wykonywanych analiz wymaga właśnie tak przygotowanych danych? v Dobrze zaprojektowane wstępne przetworzenie danych może istotnie przyśpieszyć czas wykonywania 90% analiz!

7 7 Metody stosowane w hurtowni danych aby zmniejszyć złożoność obliczeń v Agregacje - wstępne wyliczenie pewnych miar przydatnych w późniejszych analizach. v Podział na partycje - podział tabel na części tak by zmniejszyć rozmiar danych, które trzeba będzie przeczytać w trakcie wykonywania analiz ewentualnie tak aby przetwarzać dane równolegle.

8 8 v Dane w hurtowni danych grupuje się według tematów, np. –finanse, –produkty, –pracownicy, –klienci, –sprzedaż. v Typowym pytaniem zadawanym przy analizie danych jest: –Jakie są dane o... w rozbiciu na... ? np. u dane o sprzedaży tegorocznej i ubiegłorocznej w rozbiciu na produkty i miesiące roku; u dane o zyskach w rozbiciu na regiony kraju i rodzaj działalności; u dane o obrotach w rozbiciu na poszczególnych klientów i sektory rynku. Tematy

9 9 Wielowymiarowy model danych v Mając ustalony temat, wyróżniamy dla niego dwa rodzaje danych: – wielkości analizowane ( fakty, miary ) - dane ilościowe opisujące pewne fakty: sprzedaż, zyski, obroty, – wielkości klasyfikujące ( wymiary ) - dane klasyfikujące opisywane fakty wg okoliczności ich zaistnienia - czas, miejsce, osoba itp. v Stąd wynika, że każdy fakt istnieje w wielowymiarowej przestrzeni np. fakt pojedynczej sprzedaży istnieje w wielowymiarowej przestrzeni, w której poszczególne wymiary to: – czas, – struktura sprzedaży, – struktura klientów, – struktura produktów itp.

10 10 Wielowymiarowa kostka v Kolekcja liczbowych miar, które zależą od szeregu wymiarów. –Np. miara Sprzedaż, wymiary: Produkt (klucz: pid ), Miejsce (klucz: mid ) i Czas (klucz: cid ) cid pid pid cidmid sprzedaż mid Przekrój kostki mid=1 :

11 11 v W naturalny sposób obrazują drogę przejścia od danych szczegółowych do coraz bardziej ogólnych. v Dla wymiaru czasu: – dzień -> miesiąc -> kwartał -> rok; dzień -> tydzień -> rok v Dla wymiaru geograficznego: – miasto -> województwo -> kraj; oddział -> kraj v Dla wymiaru produktów: – opakowanie -> produkt -> grupa produktów v Hierarchie nie muszą być jednoznaczne np. jeden oddział firmy może obsługiwać dwa województwa, oraz jednocześnie może istnieć województwo z dwoma oddziałami. Hierarchie wymiarów

12 12 Schemat gwiazda W schemacie tym mamy jedną tabelę faktów w środku układu i zbiór tabel wymiarów, każda z nich opisuje jeden wymiar. Identyfikatory wartości wymiarów stanowią klucze obce w tabeli faktów. Przykład: tabela faktów sprzedaży w podziale względem wymiarów struktury sprzedaży, czasu, wymiaru geograficznego i wymiaru produktów.

13 13 Tabele wymiarów mogą posłużyć do znajdowania odpowiedzi na pytania dotyczące klasyfikacji danych bez sięgania w ogóle do tabeli faktów, np. –Na jakie regiony geograficzne zostały podzielone dane? –Jakie województwa zawiera dany makroregion? –Ile pozycji będzie zawierał raport w rozbiciu na oddziały firmy? v Gdzie zapisywać wyniki operacji agregujących (podsumowujących)? –Albo używać tego samego zestawu tabel dodając w każdej tabeli wymiaru atrybut poziomu agregacji danych względem którego są agregowane wartości analizowane, –albo zapisywać wyniki agregacji w osobnych tabelach. Tabele w hurtowni danych (c.d.)

14 14 Wielowymiarowe tablice - MOLAP v Reprezentacja kostki wielowymiarowej za pomocą wielowymiarowej tablicy ( wielowymiarowego arkusza kalkulacyjnego ). Przy dużej liczbie elementów trzeba przechowywać zawartość tej tablicy na dysku i tylko częściami sprowadzać do pamięci wewnętrznej w celu wykonania obliczeń. v Każdą tabelę wymiaru można też reprezentować za pomocą tablicy i ze względu na niewielki jej rozmiar i częste użycie można ją przechowywać w pamięci wewnętrznej.

15 15 Operacje v pivoting ( zestawienie krzyżowe ) – wskazanie do analizy: miary np. sprzedaży oraz dwóch wymiarów np. miasta i roku oraz przypisaniu wartościom tych wymiarów pewnej agregacji wartości wybranej miary np. sumarycznej sprzedaży w danym mieście w danym roku.

16 16 Operacje v drill-down – rozwijanie – rozwinięcie danego wymiaru do kolejnego elementu tego wymiaru – np. mając wyniki sprzedaży w rozbiciu na lata, chcemy poznać wyniki sprzedaży w rozbiciu na miesiące. Operacją odwrotną jest roll-up - zwijanie od rozbicia na bardziej szczegółowe elementy wymiaru do bardziej ogólnych. v slice-and-dice – wycinanie – operacja projekcji na wybrany podzbiór wymiarów dla wybranych wartości innych wymiarów np. dane o sprzedaży poszczególnych produktów (projekcja na wymiar produktów) w ubiegłym roku (selekcja na wymiarze czasu).

17 17 IMPLEMENTACJA HURTOWNI DANYCH W ORACLE Histogramy Dystrybucja wartości w kolumnie obliczana za pomocą instrukcji ANYLYZE TABLE: ANALYZE TABLE Sprzeda ż COMPUTE STATISTICS FOR COLUMNS Wartość_sprzeda ż y SIZE 10 ; -- liczba przedziałów, na które dzieli się wartości sprzedaży. Histogramy są używane przez optymalizator zapytań. Można je odczytać z USER_HISTOGRAMS i USER_TAB_COLUMNS.

18 18 Równoległe obliczenia Tworząc tabelę możemy określić jej stopień zrównoleglenia: CREATE TABLE XXX(....) PARALLEL (DEGREE 8); -- stopień zrównoleglenia zapytań dla tej tabeli Proces przyjmujący w serwerze bazy danych zgłoszenie użytkownika stara się przyporządkować do obsługi zapytania z tą tabelą liczbę procesów serwera równą temu stopniowi. Zrównolegleniu może ulec ładowanie danych do tabeli.

19 19 Obiekty z partycjami (partycjonowane) Na różnych stacjach dyskowych - zrównoleglenie we/wy dyskowego CREATE Klienci( Id NUMBER(5) PRIMARY KEY, Kraj CHAR(2),......) PARTITION BY RANGE (Kraj) -- klucz partycji: najlepiej aby nie ulegał modyfikacji (PARTITION p1 VALUES LESS THAN ('C') TABLESPACE Data01; PARTITION p2 VALUES LESS THAN ('I') TABLESPACE Data02;... PARTITION p19 VALUES LESS THAN MAXVALUE TABLESPACE Data19);

20 20 Indeksy bitmapowe NazwiskoPłećStanowisko KruszewskaMDyrektor JankowskiMSprzedawca MalinowskiMSprzedawca GazdaKKasjer WiśniewskiMKasjer BojanowskaKSprzedawca Indeks na Płeć Indeks na Stanowisko Nr wiersza M K D S K SELECT Nazwisko FROM Osoby WHERE ( Płeć = 'K' AND Stanowisko ='K') OR ( Płeć = 'M' AND Stanowisko = 'D') sprowadza się do wykonania trzech operacji na wektorach bitowych: ([000101] AND [000110]) OR ([111010] AND [100000]) = [100100] dając jako wynik zapytania pierwszą i czwartą osobę (miejsca jedynek w wektorze) CREATE BITMAP INDEX Ind_P_Os ON Osoby(Płeć); CREATE BITMAP INDEX Ind_P_Os ON Osoby(Stanowisko);

21 21 Implementacja indeksu bitmapowego Dwie pomocnicze struktury danych: v jedna, która w oparciu o wartość atrybutu pozwala szybko wyznaczyć przypisany jej wektor bitów (np. struktura danych B+ drzewa); v druga, która w oparciu o numer wiersza (pozycję jedynki w wektorze bitów) pozwala szybko wyznaczyć ten wiersz (np. tablica lub B+ drzewo).

22 22 Optymalizacja "star query" Jedna duża tabela faktów i wiele drobnych tabeli wymiarów (zastosowanie indeksów bitmapowych). Zapytanie: SELECT * FROM Sprzedaż, Miejsce, Towar, Czas WHERE Sprzedaż.Id_miejsca = Miejsce.Id AND Sprzedaż.Id_towaru = Towar.Id AND Sprzedaż.Id_czasu = Czas.Id AND Miejsce.Miasto IN ('WAW','KRA','RAD') AND Towar.Kategoria = 'OPROGRAMOWANIE' AND Czas.Rok > 1996 jest transformowane na: SELECT * FROM Sprzedaż WHERE Sprzedaż.Id_miejsca IN (SELECT Miasto.Id FROM Miasto WHERE Miejsce.Miasto. IN ('WAW','KRA','RAD')) AND Sprzedaż.Id_towaru IN (SELECT Towar.Id FROM Towar WHERE Towar.Kategoria = 'OPROGRAMOWANIE') AND Sprzedaż.Id_czasu IN (SELECT Czas.Id FROM Czas WHERE Czas.Rok > 1996) Najpierw: oblicza się podzapytania, następnie stosuje się indeksy bitmapowe i operacje na wektorach bitów aby znaleźć fakty spełniające jednocześnie wszystkie trzy warunki IN.

23 23 Perspektywy zmaterializowane ( migawki ) Po zaprojektowaniu tabel faktów i wymiarów następnie projektuje się perspektywy zmaterializowane określające wymagane agregacje danych z powyższych tabel. Na perspektywie zmaterializowanej można zakładać indeksy, więc ma ona te same własności co tabela. CREATE MATERIALIZED VIEW Sprzedaz_mv ENABLE QUERY REWRITE AS SELECT s.Nazwa_sklepu, SUM(f.Wielkosc) AS Suma FROM Sklep s, Sprzedaz f WHERE f.IdSklepu = s.IdSklepu GROUP BY s.Nazwa_sklepu; ENABLE QUERY REWRITE - zapytania pisane w terminach tabel faktów i wymiarów są przekształcane przez optymalizator do zapytań korzystających z perspektyw zmaterializowanych.

24 24 Odświeżanie zawartości perspektywy zmaterializowanej COMPLETE – przez powtórne wykonanie zapytania. FAST – skorzystanie z dzienników zapisujących zmiany w tabelach bazowych (MATERIALIZED VIEW LOG). ON DEMAND – przez wykonanie explicite instrukcji odświeżającej (DBMS_MVIEW.REFRESH). ON COMMIT – automatycznie po każdym COMMIT dotyczącym tabel bazowych.

25 25 Grupowanie ROLLUP v SELECT Czas.rok, Miejsce.miasto, Towar.kategoria, SUM(Sprzedaż.wartość)AS "W sumie" FROM Sprzedaż NATURAL JOIN Miejsce NATURAL JOIN Towar NATURAL JOIN Czas GROUP BY ROLLUP(Czas.Rok, Miejsce.Miasto, Towar.Kategoria); v ROK MIASTO KATEGORIA W sumie Warszawa Komputery Warszawa Telewizory Warszawa * * * Warszawa Komputery * * *

26 26 Grupowanie CUBE v ROLLUP + * Warszawa Komputery * Warszawa * * * Komputery * Komputery

27 27 Funkcje analityczne nazwa_funkcji_grupowej ( argument,...) OVER ( klauzula_okna ) Dla każdego wynikowego wiersza zapytania określamy zbiór powiązanych z nim wierszy - nazywany oknem tego wiersza. Definiuje się go za pomocą tzw. klauzuli okna.

28 28 Klauzula okna v PARTITION BY wyrażenie,... określa podział całego zbioru wynikowego wierszy na grupy ; jeśli zostanie opuszczona, cały zbiór wynikowych wierszy stanowi jedną grupę. Wiersze wchodzące w skład okna są zawsze ograniczone (zawarte) do jednej grupy. v ORDER BY wyrażenie,... określa porządek wierszy w ramach podziału określonego w grupie przez podklauzulę PARTITION BY. v ROWS specyfikacja_okna specyfikuje okno poprzez określenie liczby wierszy; v RANGE specyfikacja_okna specyfikuje okno poprzez określenie zakresu wierszy.

29 29 PARTITION BY v PARTITION jest podobne do GROUP BY z tym, że wartości podsumowujące są załączane do każdego wiersza w grupie, a nie tylko raz dla całej grupy. Oknem wiersza jest jego grupa. v SELECT e.Ename, e.Sal, SUM(e.Sal) OVER (PARTITION BY e.Deptno) AS Suma, Round(100*e.Sal/(SUM(e.Sal) OVER (PARTITION BY e.Deptno))) AS Proc_zarob FROM Emp e ORDER BY e.Deptno, e.Ename; v ENAME SAL SUMA PROC_ZAROB CLARK KING MILLER ADAMS FORD ………………

30 30 RANGE Dla każdego pracownika wyznacz liczbę pracowników, których zarobki są co najwyżej 50zł mniejsze i co najwyżej 150zł większe od zarobków tego pracownika. W tym przypadku okno obliczeniowe dla danego pracownika o zarobkach e.Sal nie zależy od departamentu i obejmuje wszystkich pracowników, których zarobki są w przedziale [e.Sal-50, e.Sal+150]. (Jest określona tylko jedna grupa - zbiór wszystkich wierszy.)

31 31 v SELECT e.Ename, e.Sal, COUNT(*) OVER (ORDER BY e.Sal RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS Licznik FROM Emp e; v Oto wyniki: ENAME SAL LICZNIK SMITH JAMES ADAMS WARD MARTIN MILLER TURNER ALLEN ………..

32 32 ROWS Dla każdego pracownika podaj numer jego kierownika, datę zatrudnienia, zarobki oraz średnią wartość zarobków pracowników zatrudnionych bezpośrednio przed i po zatrudnieniu tego pracownika (włącznie z tym pracownikiem) wśród pracowników tego kierownika. SELECT mgr, ename, hiredate, sal, AVG(sal) OVER (PARTITION BY mgr ORDER BY hiredate ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS ave FROM Emp;

33 33 ODM - Oracle Data Mining Oracle rozpoczął w wersji 10g wprowadzanie pojęć i algorytmów data-miningowych na razie głównie przy pomocy pakietu DBMS_DATA_MINING (jeszcze nie na poziomie SQL i specjalnych obiektów zapisywanych w bazie danych). Centralne pojęcie to model określający parametry, algorytm data-miningowy i wprowadzone dane uczące. Dane do analizy – zbiór punktów w przestrzeni wielowymiarowej - są dostarczane w jednej tabeli. Wiersze są nazywane przypadkami (cases). Kolumna ID przypadku dostarcza jednoznacznego identyfikatora np. CUSTOMER ID w tabeli klientów. Kolumny są nazywane atrybutami. Np. model regresji może przewidzieć poziom dochodów klienta (atrybut typu target ) w oparciu o datę urodzenia i płeć (atrybuty typu predictors ).

34 34 Parametry procedury CREATE_MODEL model_name -- nazwa modelu mining_function -- stała reprezentująca rodzaj problemu eksploracji danych np. klasyfikacja, clustering, regresja data_table_name -- nazwa tabeli z danymi uczącymi model case_id_column_name target_column_name -- NULL dla modeli deskryptywnych, nie NULL dla modeli predyktywnych settings_table_name -- ustawienia dla funkcji i algorytmu (np. nazwa algorytmu eksploracyjnego)

35 35 Procedura APPLY (model) Stosuje podany model eksploracyjny do podanych danych i generuje wyniki w tablicy APPLY. Operacja APPLY jest też nazywana scoring. Dla modeli predyktywnych, operacja APPLY generuje wynik w kolumnie docelowej. Dla modeli deskryptywnych jak clustering, operacja APPLY przyporządkowuje każdemu przypadkowi prawdopodobieństwo należenia do klastra. DBMS_DATA_MINING.APPLY ( model_name IN VARCHAR2, data_table_name IN VARCHAR2, case_id_column_name IN VARCHAR2, result_table_name IN VARCHAR2, -- schemat tworzonej przez APPLY tabeli zależy od algorytmu );


Pobierz ppt "1 Hurtownie danych a bazy danych Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill,"

Podobne prezentacje


Reklamy Google