„Hurtownie danych Oracle i DB2” zadanie współfinansowane przez
Transkrypt
„Hurtownie danych Oracle i DB2” zadanie współfinansowane przez
„Hurtownie danych Oracle i DB2” zadanie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. „Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych” Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 Projekt współfinansowany przez Unię Europejską www.kapitalludzki.p.lodz.pl w ramach Europejskiego Funduszu Społecznego Hurtownie danych 2 Wstęp Wstęp -Dlaczego Chaos zawsze wygrywa z Porządkiem? - Ponieważ jest lepiej zorganizowany. Terry Pratchett Nagromadzenie danych to nie jest jeszcze nauka Galileusz Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 1 Schemat Schemat bazy bazy danych danych Hurtownie danych 3 Hurtownie danych 4 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Dlaczego? Dlaczego? „Człowiek, który potrafi czytać ale nie ma książek, nie ma przewagi nad tymi, którzy w ogóle nie umieją czytać” Mark Twain - 1900 „Człowiek który posiada dane ale nie potrafi ich zobaczyć, nie ma przewagi nad tymi, którzy w ogóle nie mają danych” Bob Lokken (CEO Knosys Inc.) - 2000 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Dlaczego? Hurtownie danych 5 Szybsze podejmowanie lepszych decyzji Zwiększenie przewagi konkurencyjnej Usprawnienie procesów biznesowych Poprawa obsługi klientów Rozwiązania e-business Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych Wnioski Wnioski zz danych danych 6 Celem działania nie jest raport lecz decyzja, a złe decyzje są kosztowne. Dane nie są informacją! Aby dostrzec znaczenie danych, należy najpierw zobaczyć te dane. Jeden obraz z właściwą informacją jest więcej wart niż dowolna ilość wierszy i kolumn danych. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 Hurtownie danych 7 Terminologia Terminologia • ETL (extraction, transformation, loading) – Ekstrakcja danych – Transformacja danych – Ładowanie danych • Hurtownia danych – Wydzielona baza danych – Zawiera dane historyczne i bieżące • Data Mart - Składnica danych – Ściśle związana z mniejszą grupą użytkowników – Tematycznie dostosowana, zoptymalizowana dla ich potrzeb • OLAP (On-Line Analytical Processing) – Przetwarzanie danych wielowymiarowych – Krótki czas odpowiedzi na dowolne zapytanie Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych Zysk z podjęcia dobrej dezyzji Koszt podjęcia złej decyzji Waga Waga podejmowanych podejmowanych decyzji decyzji 8 Zarząd Kierownicy Pracownicy operacyjni Ilość podejmowanych decyzji Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4 Hurtownie danych 9 Wprowadzenie Wprowadzenie Modelem przetwarzania nazywamy sposób w jaki użytkownik korzysta z bazy danych. Modele przetwarzania: - przetwarzanie operacyjne (transakcyjne) - przetwarzanie analityczne Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych Przetwarzanie Przetwarzanie operacyjne operacyjne 10 • OLTP - OnLine Transaction Processing przetwarzanie transakcji w trybie on-line • Celem jest wspomaganie bieżącej obsługi działalności danej firmy, dla dobrze zdefiniowanych procesów (np.: obsługa sprzedaży) • Oparty na transakcjach, które operują na niewielkiej części danych przechowywanych w bazie danych Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5 Hurtownie danych 11 Przetwarzanie Przetwarzanie operacyjne operacyjne • Dostarcza rozwiązań dla problemów: efektywnego i bezpiecznego przechowywania danych, optymalizacji dostępu do danych, dostępności danych, zarządzania współbieżnością • Podstawowym kryterium oceny efektywności działania systemu OLTP jest liczba transakcji na sekundę Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 12 Przetwarzanie Przetwarzanie analityczne analityczne • OLAP - OnLine Analytical Processing przetwarzanie analityczne w trybie on-line • Celem jest przeprowadzanie analizy danych i wspomaganie decyzji. Posiadanie danych opisujących działanie przedsiębiorstwa w dłuższym przedziale czasu pozwala na analizę trendów, anomalii, poszukiwanie wzorców zachowań klientów, itp. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 Hurtownie danych Zalety Zalety przeprowadzania przeprowadzania analizy analizy danych danych 13 • Zrozumienie zachowania się klientów i zapotrzebowania na produkt, pozwala efektywnie kierować kampaniami reklamowymi • Zarządzanie zapasami umożliwia producentom posiadanie właściwych produktów we właściwym miejscu i czasie • Analiza rentowności pokazuje firmom, którzy klienci są dochodowi, a którzy nie Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 14 Przetwarzanie Przetwarzanie operacyjne operacyjne aa analityczne analityczne Dlaczego potrzebnych informacji nie da się uzyskiwać bezpośrednio z transakcyjnych systemów przetwarzania danych? Dane w aplikacjach operacyjnych są: - ukierunkowane na aplikacje operacyjne, a nie analityczne rozproszone po wielu aplikacjach operacyjnych przechowywane w mało czytelnej postaci Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 Hurtownie danych 15 Definicja Definicja hurtowni hurtowni danych danych Hurtownie danych są bardzo dużymi bazami danych, w których gromadzi się dane pochodzące z wielu heterogenicznych źródeł: scentralizowanych lub rozproszonych baz relacyjnych, relacyjno-obiektowych, obiektowych oraz ze źródeł innych niż bazy danych (np.: pliki tekstowe). Jest to zbiór technologii, których celem jest wspieranie menadżerów i umożliwienie podejmowania im szybszych i lepszych decyzji. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 16 Cechy Cechy hurtowni hurtowni danych danych Hurtownia danych powinna być: - zorientowana tematycznie - nieulotna (trwała) - wielowersyjna czasowo - zintegrowana Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8 Zapytania Zapytania wybierające wybierające 17 Hurtownie danych Grupowanie Wyznaczenie funkcji agregującej dla grupy (dla każdej osoby) SELECT IdOsoby, SUM(Brutto) AS Razem FROM Zarobki GROUP BY IdOsoby; Wyznaczenie funkcji agregującej dla całej tabeli (wszystkie osoby) SELECT SUM(Brutto) AS Razem FROM Zarobki; Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Hurtownie danych Zapytania Zapytania wybierające wybierające Funkcje Funkcje agregujące agregujące AVG SUM MAX MIN wartość średnia suma maksimum minimum n∑ x 2 − (∑ x ) 2 STDDEV odchylenie standardowe VARIANCE wariacja n( n − 1) n∑ x 2 − (∑ x ) 2 n(n − 1) COUNT zlicz Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9 Hurtownie danych Grupowanie Grupowanie ii numerowanie numerowanie rekordów rekordów w w grupie grupie 19 SELECT DECODE(ROWNUM-min_sno,0,a.iddzialu,NULL) iddzialu, DECODE(ROWNUM-min_sno,0,1,rownum+1-min_sno) sno, a.idosoby, nazwisko FROM (SELECT * FROM osoby ORDER BY iddzialu, idosoby ) a, ( SELECT iddzialu, MIN(ROWNUM) min_sno FROM ( SELECT * FROM osoby ORDER BY iddzialu, idosoby IDDZIALU SNO IDOSOBY NAZWISKO ) ---------- ---------- ---------- --------------GROUP BY iddzialu 1 1 1 KOWALSKI )b 2 2 NOWAK WHERE a.iddzialu = b.iddzialu; 3 10 NOWIK 2 3 4 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 1 2 3 1 2 3 4 1 2 4 NOWACKI 6 KOW 7 JAKOW 3 KOWALIK 8 ADAMIAK 9 KOWALSKI 11 XXX 5 WILK 12 YY Hurtownie danych GROUP GROUP BY BY ROLLUP/CUBE ROLLUP/CUBE 20 Dodatkowe podsumowania dla działów SELECT IdDzialu, Osoby.IdOsoby, SUM(Brutto) AS Razem FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby GROUP BY ROLLUP (IdDzialu, Osoby.IdOsoby); Dodatkowe podsumowania dla działów po sumach pracowników SELECT IdDzialu, Osoby.IdOsoby, SUM(Brutto) AS Razem FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby GROUP BY CUBE (IdDzialu, Osoby.IdOsoby); Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10 Hurtownie danych SUM(BRUTTO)... SUM(BRUTTO)... GROUP GROUP BY BY ROLLUP ROLLUP NAZWA NAZWISKO Dyrekcja Kowalski 21 RAZEM 2109 Dyrekcja 2109 Handlowy Nowicki 2109 Handlowy 2109 Techniczny Kow 222 Techniczny Kowalczyk 777 Techniczny 999 Administracja Janik 555 Administracja Nowak 1332 Administracja 1887 7104 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego NAZWA NAZWISKO Hurtownie danych RAZEM 22 7104 Kow 222 Janik 555 Nowak SUM(BRUTTO)... GROUP GROUP BY BY 1332 SUM(BRUTTO)... Nowicki 2109 Kowalski 2109 Kowalczyk Dyrekcja Dyrekcja 777 2109 Kowalski Handlowy Handlowy CUBE CUBE 2109 2109 Nowicki Techniczny 2109 999 Techniczny Kow 222 Techniczny Kowalczyk 777 Administracja 1887 Administracja Janik 555 Projekt współfinansowany przez Unię Europejską Administracja Nowak w ramach Europejskiego Funduszu Społecznego 1332 11 Hurtownie danych 23 GROUP GROUP BY BY GROUPING GROUPING SETS SETS Dodatkowe podsumowania dla działów po sumach pracowników (nie są powtarzane podsumowania dla wewnętrznej grupy) SELECT IdDzialu, Osoby.IdOsoby, SUM(Brutto) AS Razem FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby GROUP BY GROUPING SETS (IdDzialu, Osoby.IdOsoby); Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego SUM(BRUTTO)... SUM(BRUTTO)... GROUP GROUP BY BY GROUPING GROUPING SETS SETS NAZWA NAZWISKO Hurtownie danych 24 RAZEM Administracja 1887 Dyrekcja 2109 Handlowy 2109 Techniczny 999 Janik 555 Kow 222 Kowalczyk 777 Kowalski 2109 Nowak 1332 Nowicki 2109 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12 Hurtownie danych 25 GROUP GROUP BY BY GROUPING GROUPING SETS SETS Dodatkowe podsumowania dla działów po sumach pracowników (nie są powtarzane podsumowania dla wewnętrznej grupy) SELECT Nazwa, Nazwisko, SUM(Brutto) FROM Dzialy JOIN Osoby USING(IdDzialu) JOIN Zarobki USING(IdOsoby) GROUP BY GROUPING SETS (Nazwa, Nazwisko, IdOsoby); Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych RANK RANK () () 26 oblicza ranking każdego wiersza zwracanego przez zapytanie zgodnie z klauzulą ORDER BY(jeśli dwie pozycje mają taką samą wartość następny rank jest o zwiększany o liczbę powtórzeń – pozycje równe traktowane są tak samo) SELECT IdDzialu, Nazwisko, Brutto, RANK() OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC ) "Rank" FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby; SELECT RANK(250) WITHIN GROUP (ORDER BY Brutto DESC) "Powyżej 250" FROM Zarobki; SELECT RANK(250) WITHIN GROUP (ORDER BY Brutto ASC) "Poniżej 250" FROM Zarobki; NULLS LAST NULLS FIRST Sposób umieszczenia wartości NULL na liście Liczba wypłat powyżej/poniżej progu Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13 Hurtownie danych DENSE_RANK DENSE_RANK () () 27 oblicza ranking każdego wiersza zwracanego przez zapytanie zgodnie z klauzulą ORDER BY (jeśli dwie pozycje mają taką samą wartość następny rank jest o 1 większy – pozycje równe traktowane są tak samo) SELECT IdDzialu, Nazwisko, Brutto, DENSE_RANK() OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC ) "Rank" FROM Osoby JOIN Zarobki ON Osoby.IdOsoby=Zarobki.IdOsoby; NULLS LAST NULLS FIRST SELECT DENSE_RANK(250) WITHIN GROUP (ORDER BY Brutto DESC) "Powyżej 250" FROM Zarobki; Sposób umieszczenia wartości NULL na liście Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Okienkowanie Okienkowanie funkcji funkcji agregujących agregujących Hurtownie danych SELECT IdOsoby, Brutto FROM Zarobki ORDER BY IdOsoby; IDOSOBY BRUTTO 1 111 1 333 1 666 1 999 IDOSOBY AGREGATE 2 444 1 111 2 888 1 444 3 222 1 1110 4 555 1 2109 5 777 2 2553 2 3441 3 3663 4 4218 5 4995 28 SELECT IdOsoby, SUM(Brutto) OVER (ORDER BY IdOsoby ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) Agregate FROM Zarobki; Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 Okienkowanie Okienkowanie funkcji funkcji agregujących agregujących 29 Hurtownie danych SELECT IdOsoby, Brutto FROM Zarobki ORDER BY IdOsoby; IDOSOBY AGREGATE 1 111 1 444 1 1110 1 2109 2 444 2 1332 3 222 4 555 5 777 IDOSOBY BRUTTO 1 111 1 333 1 666 1 999 2 444 2 888 3 222 4 555 5 777 SELECT IdOsoby, SUM(Brutto) OVER (PARTITION BY IdOsoby ORDER BY IdOsoby ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) Agregate FROM Zarobki; Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Okienkowanie Okienkowanie funkcji funkcji agregujących agregujących Hurtownie danych 30 SELECT IdDzialu, Nazwisko, SUM(Brutto), AVG(SUM(Brutto)) OVER () "Srednia wszystkich", AVG(SUM(Brutto)) OVER (PARTITION BY IdDzialu) "Srednia sumy dla Dzialu", RATIO_TO_REPORT(SUM(Brutto)) OVER () "Procent z całosci", RATIO_TO_REPORT(SUM(Brutto)) OVER (PARTITION BY IdDzialu) "Procent w Dziale" FROM Osoby JOIN Zarobki USING (IdOsoby) GROUP BY idDzialu, Nazwisko, IdOsoby; IdDzialu Nazwisko 1 2 2 2 3 3 3 4 5 Kowalski Janik Nowak Zieliński Kow Kowalczyk Pawlak Nowicki Kowal SUM Srednia Srednia sumy (Brutto) wszystkich dla Dzialu 2664 1603,33 2664 1776 1603,33 1591 1998 1603,33 1591 999 1603,33 1591 1443 1603,33 1258 2220 1603,33 1258 111 1603,33 1258 Projekt współfinansowany przez Unię Europejską 1998 w ramach Europejskiego 1603,33 1998 Funduszu Społecznego 1221 1603,33 1221 Procent z całosci 0,184 0,123 0,138 0,069 0,1 0,153 0,007 0,138 0,084 Procent w dziale 1 0,372 0,418 0,209 0,382 0,588 0,029 1 1 15 31 Hurtownie danych ROW_NUMBER() ROW_NUMBER() ,, NTILE() NTILE() SELECT IdDzialu, Nazwisko, Brutto, ROW_NUMBER() OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC) "NUMER", NTILE(4) OVER (PARTITION BY IdDzialu ORDER BY Brutto DESC) "Zakresowy rozkład " FROM Osoby JOIN Zarobki ON IDDZIALU NAZWISKO BRUTTO Osoby.IdOsoby=Zarobki.IdOsoby; 1 Kowalski 999 1 Zakresowy rozkład 1 1 Kowalski 666 2 1 1 Kowalski 555 3 2 1 Kowalski 333 4 3 1 Kowalski 111 5 4 2 Zieliński 999 1 1 2 Janik 999 2 1 2 Nowak 888 3 2 2 Nowak 666 4 2 2 Janik 555 5 3 2 Nowak 444 6 3 2 Janik 222 7 4 3 Kow 888 1 1 777 2 1 777 3 2 Projekt współfinansowany przez Unię Europejską 3 Kowalczyk w ramach Europejskiego Funduszu Społecznego 3 Kowalczyk NUMER Hurtownie danych Raportowanie Raportowanie 32 SET PAGES 33 TTITLE 'Tytuł|Druga Linia' BTITLE 'STOPKA|DRUGA LINIA' BREAK ON Osoba SKIP 1 ON REPORT PAGE COMPUTE SUM AVG OF Brutto ON Osoba COMPUTE SUM OF Brutto ON REPORT COLUMN Osoba format A25 heading 'Nazwisko|Imię' justify left COLUMN Wzrost format 90.99 heading 'Wysokość' justify right COLUMN BRUTTO format 999999.00 heading 'Zarobki' justify center SELECT Nazwisko || ' ' || Imie AS Osoba, Wzrost, Brutto FROM Osoby JOIN Zarobki ON Osoby.Idosoby=Zarobki.IdOsoby; CLEAR BREAKS CLEAR COMPUTES CLEAR COLUMNS Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 Hierarchia Hierarchia (nie (nie obsługuje obsługuje grafów grafów cyklicznych) cyklicznych) Hurtownie danych 33 BREAK ON LEVEL SKIP 1 SELECT LEVEL, Idosoby, Stanowisko, IdSzefa FROM Osoby CONNECT BY PRIOR IdOsoby=IdSzefa START WITH IdSzefa IS NULL ORDER BY LEVEL; Przy odwrotnym połączeniu zwrócony zostanie tylko jeden rekord IdSzefa= PRIOR IdOsoby równoważne!! SELECT LEVEL, Idosoby, Stanowisko, IdSzefa FROM Osoby CONNECT BY PRIOR IdSzefa=IdOsoby START WITH IdSzefa IS NULL ORDER BY LEVEL; Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hierarchia Hierarchia zz formatowaniem formatowaniem Hurtownie danych 34 SELECT LEVEL, '|' || SUBSTR('----------------',1,2* LEVEL) || Nazwisko AS Kto FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa; Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 Hurtownie danych 35 Hurtownie danych 36 Hierarchia Hierarchia zz formatowaniem formatowaniem Uzupełnij do długości znakami SELECT LEVEL, RPAD('|', 2*LEVEL, '-') || Nazwisko AS Kto ,IdSzefa FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa; Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hierarchia Hierarchia zz sumowaniem sumowaniem SELECT LEVEL , SUM (Brutto) FROM Osoby JOIN Zarobki ON Zarobki.IdOsoby=Osoby.IdOsoby START WITH IdSzefa IS NULL CONNECT BY PRIOR Osoby.IdOsoby = IdSzefa GROUP BY LEVEL; LEVEL 1 2 4 3 SUM(BRUTTO) 2664 17205 129870 91575 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Hierarchia Hierarchia zz poziomem poziomem wyższym wyższym Hurtownie danych 37 SELECT LEVEL , Nazwisko, IdSzefa, PRIOR Nazwisko AS Szef FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa; LEVEL NAZWISKO 1 Kowalski 2 Nowak 3 Janik 4 Kowalski 4 Kowal 4 Jasiński 4 Bury 4 Wilk 4 Raczyński 4 Lew 3 Pawlak 3 Gawlik Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Kow IDSZEFA SZEF 1 2 4 4 4 4 4 4 4 2 2 1 Kowalski Nowak Janik Janik Janik Janik Janik Janik Janik Nowak Nowak Kowalski Hurtownie danych Hierarchia Hierarchia zz poziomem poziomem wyższym wyższym 38 SELECT Poziom, Prac, Osoby.IdSzefa, Osoby.Nazwisko AS Szef FROM Osoby RIGHT JOIN (SELECT LEVEL AS Poziom, Nazwisko AS Prac, IdSzefa FROM Osoby START WITH IdSzefa IS NULL CONNECT BY PRIOR IdOsoby = IdSzefa) xxx ON Osoby.IdOsoby=xxx.IdSzefa; LEVEL NAZWISKO 1 Kowalski 2 Nowak 3 Janik 4 Kowalski 4 Kowal 4 Jasiński 4 Bury 4 Wilk 4 Projekt współfinansowany przez UnięRaczyński Europejską w ramach Europejskiego Funduszu Społecznego 4 Lew IDSZEFA SZEF 1 2 4 4 4 4 4 4 4 Kowalski Nowak Janik Janik Janik Janik Janik Janik Janik 19 Hurtownie danych Hierarchia Hierarchia liczba liczba podwładnych podwładnych 39 SELECT RPAD('|',2*LEVEL,'*') || Nazwisko || ' ' || Imie as To musi być Szef, zapytanie ( SELECT COUNT(o2.idosoby) jednowierszowe FROM Osoby o2 START WITH o2.IdSzefa = o1.IdOsoby CONNECT BY PRIOR o2.IdOsoby = o2.IdSzefa ) ilu Szef ILU |*Kowalski Jan 35 FROM Osoby o1 |***Nowak Karol 19 START WITH o1.IdSzefa IS NULL |*****Janik Paweł 13 CONNECT BY PRIOR o1.IdOsoby = o1.IdSzefa; |*******Kowalski Piotr 0 ... 0 |*****Gawlik Paweł 0 |***Kow Piotr 12 |*****Kowalczyk Jarosław 4 |*******Adamczyk Konrad 0 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego .... 0 Hurtownie danych Hierarchia Hierarchia liczba liczba podwładnych podwładnych –– razem razem zz szefem szefem SELECT RPAD('|',2*LEVEL,'*') || Nazwisko || ' ' || Imie as Szef, ( SELECT COUNT(o2.idosoby) FROM Osoby o2 START WITH o2. IdOsoby = o1.IdOsoby CONNECT BY PRIOR o2.IdOsoby = o2.IdSzefa SZEF ) ilu |*Kowalski Jan FROM Osoby o1 |***Nowak Karol START WITH o1.IdSzefa IS NULL |*****Janik Paweł CONNECT BY PRIOR o1.IdOsoby = o1.IdSzefa; |*******Kowalski Piotr 40 ILU 36 20 14 1 ... 1 |*****Gawlik Paweł 1 |***Kow Piotr 13 |*****Kowalczyk Jarosław 5 |*******Adamczyk Konrad 1 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego .... 1 20 Hurtownie danych 41 Hierarchia Hierarchia suma suma zarobków zarobków podwładnych podwładnych –– razem razem zz szefem szefem SELECT RPAD('|',2*LEVEL,'*') || Nazwisko || ' ' || Imie as Szef, ( SELECT SUM(Brutto) FROM Osoby o2 JOIN Zarobki ON o2.IdOsoby = zarobki.IdOsoby START WITH o2.IdSzefa = o1.IdOsoby CONNECT BY PRIOR o2.IdOsoby = o2.IdSzefa SZEF ) Razem |*Kowalski Jan FROM Osoby o1 |***Nowak Karol START WITH o1.IdSzefa IS NULL |*****Janik Paweł CONNECT BY PRIOR o1.IdOsoby = o1.IdSzefa; ILU 281163 23310 23310 |*******Kowalski Piotr 4773 ... |*****Gawlik Paweł (null) |***Kow Piotr 22089 |*****Kowalczyk Jarosław 3108 |*******Adamczyk Konrad 777 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego .... Dlaczego? Dlaczego? Hurtownie danych 42 „Człowiek, który potrafi czytać ale nie ma książek, nie ma przewagi nad tymi, którzy w ogóle nie umieją czytać” Mark Twain - 1900 „Człowiek który posiada dane ale nie potrafi ich zobaczyć, nie ma przewagi nad tymi, którzy w ogóle nie mają danych” Bob Lokken (CEO Knosys Inc.) - 2000 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21 Hurtownie danych 43 Dlaczego? Dlaczego? Szybsze podejmowanie lepszych decyzji Zwiększenie przewagi konkurencyjnej Usprawnienie procesów biznesowych Poprawa obsługi klientów Rozwiązania e-business Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 44 Wnioski Wnioski zz danych danych Celem działania nie jest raport lecz decyzja, a złe decyzje są kosztowne. Dane nie są informacją! Aby dostrzec znaczenie danych, należy najpierw zobaczyć te dane. Jeden obraz z właściwą informacją jest więcej wart niż dowolna ilość wierszy i kolumn danych. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22 Hurtownie danych 45 Hurtownie danych 46 Business Business Intelligence Intelligence (BI) (BI) BI – klucz do uwolnienia wiedzy h Dostęp i h Łatwy dostęp do różnych źródeł danych Analiza i Narzędzia h Dystrybucja i Aktywny h do eksploracji danych i bierny dostęp do informacji W ramach organizacji i poza nią i Pracownicy, dostawcy, klienci, partnerzy, ... Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Terminologia Terminologia • ETL (extraction, transformation, loading) – Ekstrakcja danych – Transformacja danych – Ładowanie danych • Hurtownia danych – Wydzielona baza danych – Zawiera dane historyczne i bieżące • Data Mart - Składnica danych – Ściśle związana z mniejszą grupą użytkowników – Tematycznie dostosowana, zoptymalizowana dla ich potrzeb • OLAP (On-Line Analytical Processing) – Przetwarzanie danych wielowymiarowych – Krótki czas odpowiedzi na dowolne zapytanie Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23 47 Hurtownie danych Czym Czym jest jest Business Business Intelligence? Intelligence? • Narzędzia i techniki wspomagające proces podejmowania decyzji • Business Intelligence pozwala zrozumieć dane – – – – – Co się wydarzyło? Co się aktualnie dzieje? Dlaczego? Co się stanie? Co chciałbym, aby się stało? ERP CRM SCM TPP inne Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 48 Hurtownie danych Potencjał Potencjał BI BI r Za Poziom strategiczny d zą Ki er ow nic y Pracow n icy oper acyjn i Ilość podejmowanych decyzji Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24 Hurtownie danych 49 Wprowadzenie Wprowadzenie Modelem przetwarzania nazywamy sposób w jaki użytkownik korzysta z bazy danych. Modele przetwarzania: - przetwarzanie operacyjne - przetwarzanie analityczne Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 50 Przetwarzanie Przetwarzanie operacyjne operacyjne (1) (1) • OLTP - OnLine Transaction Processing przetwarzanie transakcji w trybie on-line • Celem jest wspomaganie bieżącej obsługi działalności danej firmy, dla dobrze zdefiniowanych procesów (np.: obsługa sprzedaży) • Oparty na transakcjach, które operują na niewielkiej części danych przechowywanych w bazie danych Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 25 Hurtownie danych 51 Przetwarzanie Przetwarzanie operacyjne operacyjne (2) (2) • Dostarcza rozwiązań dla problemów: efektywnego i bezpiecznego przechowywania danych, optymalizacji dostępu do danych, dostępności danych, zarządzania współbieżnością • Podstawowym kryterium oceny efektywności działania systemu OLTP jest liczba transakcji na sekundę Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 52 Przetwarzanie Przetwarzanie analityczne analityczne • OLAP - OnLine Analytical Processing przetwarzanie analityczne w trybie on-line • Celem jest przeprowadzanie analizy danych i wspomaganie decyzji. Posiadanie danych opisujących działanie przedsiębiorstwa w dłuższym przedziale czasu pozwala na analizę trendów, anomalii, poszukiwanie wzorców zachowań klientów, itp. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 26 Hurtownie danych 53 Zalety Zalety przeprowadzania przeprowadzania analizy analizy danych danych • Zrozumienie zachowania się klientów i zapotrzebowania na produkt, pozwala efektywnie kierować kampaniami reklamowymi • Zarządzanie zapasami umożliwia producentom posiadanie właściwych produktów we właściwym miejscu i czasie • Analiza rentowności pokazuje firmom, którzy klienci są dochodowi, a którzy nie Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 54 Przetwarzanie Przetwarzanie operacyjne operacyjne aa analityczne analityczne Dlaczego potrzebnych informacji nie da się uzyskiwać bezpośrednio z operacyjnych systemów przetwarzania danych? Dane w aplikacjach operacyjnych są: - ukierunkowane na aplikacje operacyjne a nie analityczne - rozproszone po wielu aplikacjach operacyjnych - przechowywane w mało czytelnej postaci Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 27 Hurtownie danych 55 Definicja Definicja hurtowni hurtowni danych danych Hurtownie danych są bardzo dużymi bazami danych, w których gromadzi się dane pochodzące z wielu heterogenicznych źródeł: scentralizowanych lub rozproszonych baz relacyjnych, relacyjno-obiektowych, obiektowych oraz ze źródeł innych niż bazy danych (np.: pliki tekstowe). Jest to zbiór technologii, których celem jest wspieranie menadżerów i umożliwienie podejmowania im szybszych i lepszych decyzji. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 56 Cechy Cechy hurtowni hurtowni danych danych Hurtownia danych powinna być: - zorientowana tematycznie - nieulotna (trwała) - wielowersyjna czasowo - zintegrowana Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 28 Hurtownie danych 57 Hurtownie danych 58 Architektura Architektura logiczna logiczna hurtowni hurtowni danych danych Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Konwerter Konwerter Zadaniem konwertera jest transformowanie danych z formatu wykorzystywanego w źródle, do formatu wykorzystywanego w hurtowni danych. Etapy konwersji danych: - ekstrakcja danych - czyszczenie danych - ładowanie danych - odświeżanie danych Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 29 Hurtownie danych 59 Etapy Etapy konwersji konwersji danych danych (1) (1) • Ekstrakcja danych – odbywa się przez bramki (gateways) lub standardowe interfejsy (ODBC, JDBC, Oracle Open Connect, Informix Enterprise Gateway, itd.) • Czyszczenie danych – ma na celu zapewnienie jakości i poprawności danych. Metody czyszczenia: konwersja i normalizacja, czyszczenie specjalne, czyszczenie oparte na regułach. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 60 Etapy Etapy konwersji konwersji danych danych (2) (2) • Ładowanie danych – tym procesem zarządza moduł integratora. Najczęściej odbywa się to w trybie wsadowym. Dodatkowe przetwarzanie, np.: sortowanie danych, budowanie indeksów • Odświeżanie danych – proces propagowania zmian zachodzących w źródłach danych do hurtowni. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 30 Hurtownie danych 61 Repozytorium Repozytorium metadanych metadanych Jest to składnik hurtowni danych, w którym przechowywane są informacje wspomagające zarządzanie hurtownią. (Przykład narzędzia do zarządzania metadanymi: IBM DataGuide) Zawiera ono zazwyczaj metadane: fizyczne; logiczne; operacyjne; historyczne; administracyjne; personalizacyjne Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 62 Wielowymiarowy Wielowymiarowy model model danych danych Podstawowym modelem logicznym dla OLAP jest wielowymiarowy model danych (MDD model - multidimensional data model). Dane są postrzegane przez użytkowników w postaci wielowymiarowej perspektywy. Obiektem analizy w modelu MDD jest zbiór miar numerycznych (faktów). Wartość każdej miary zależy od zbioru wymiarów. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 31 Hurtownie danych 63 Schemat Schemat przetwarzania przetwarzania w w technologii technologii OLAP OLAP (ONLINE (ONLINE ANALYTICAL ANALYTICAL PROCESSING) PROCESSING) Oczyszczanie Synchronizacja Baza A Przesyłanie Ekstrakcja Baza B … … Hurtownia Danych Integracja Baza X Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 64 OLAP OLAP – – Analizy Analizy wspierające wspierające proces proces podejmowania podejmowania decyzji decyzji biznesowych biznesowych Oddział Poznań Kraków Gdańsk ROR Produkt Kredyt 69,059,440 PLN 8,755 szt. 7,888 PLN Depozyt Rach. Inwest. Inne Q1 Q2 Q3 Q4 Czas Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 32 Hurtownie danych 65 Hurtownie danych 66 Analiza Analiza przekrojów przekrojów Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Analiza Analiza przekrojów przekrojów Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 33 Hurtownie danych 67 Analysis Analysis Services Services -- Wymiary Wymiary • • • Wspólne/prywatne Regularne/nieregularne Hierarchia drzewiasta (relacja rodzic – potomek) – Dane w węzłach • O dużej liczbie elementów (grupowanie) – Wymiary o liczbie potomków większej niż 64k • • • Atrybuty Wiele hierarchii Własne formuły podsumowujące Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 68 Struktura Struktura hurtowni hurtowni danych danych • Problem wielowymiarowości • Dwie podstawowe struktury Model gwiazdy - tablica faktów Model płatka śniegu - hierarchia wymiaru Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 34 Hurtownie danych 69 Hurtownie danych 70 Schemat Schemat pojęciowy pojęciowy hurtowni hurtowni -- schemat schemat gwiazdy gwiazdy Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Schemat Schemat pojęciowy pojęciowy hurtowni hurtowni -- schemat schemat płatka płatka śniegu śniegu Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 35 Hurtownie danych 71 Modele Modele przechowywania przechowywania dla dla hurtowni hurtowni danych danych • ROLAP - Relational OLAP - hurtownie wykorzystujące model relacyjny • MOLAP - Multidimensional OLAP - hurtownie wykorzystujące wielowymiarowy model danych • HOLAP - Hybrid OLAP - hurtownie łączące w sobie cechy MOLAP i ROLAP Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Hurtownie danych 72 Efektywność Efektywność hurtowni hurtowni danych danych W celu poprawy efektywności działania hurtowni danych stosuje się wiele technik: - materializowanie agregatów - przetwarzanie równoległe - partycjonowanie danych - indeksowanie danych Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 36 „Hurtownie danych Oracle i DB2” zadanie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. „Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych” Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 Projekt współfinansowany przez Unię Europejską www.kapitalludzki.p.lodz.pl w ramach Europejskiego Funduszu Społecznego 37