„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

Podobne dokumenty