Hurtownie danych
Model fizyczny danych.
Elementy infrastruktury.
1
marcin.mazurek@wat.edu.pl
Treść wykładu
Mechanizmy zwiększania efektywności
zapytań
Model fizyczny hurtowni danych
Model fizyczny hurtowni danych
Repozytorium główne
Datamarty
Elementy infrastruktury sprzętowej
hurtowni danych
marcin.mazurek@wat.edu.pl
2
Model fizyczny
Model przestrzeni tabel
Rozłożenie plików danych na dyskach
Podział tabel na partycje
Podział tabel na partycje
Definicje indeksów
Definicje widoków zmaterializowanych
oraz agregatów
Parametry systemu zarządzania bazą
danych
Skrypty zakładające bazę danych
marcin.mazurek@wat.edu.pl
3
Mechanizmy zwiększenia
wydajności zapytań
Partycjonowanie tabel
Indeksowanie -
Indeksy bitmapowe
Indeksy oparte o B-drzewa
Perspektywy zmaterializowane (ang. materialized view)
Rozpraszanie przestrzenie tabel
Wskazówki dla optymalizatora zapytań
Preagregacja danych
Struktury wielowymiarowe
In-memory OLAP
Zapytania równoległe
marcin.mazurek@wat.edu.pl
4
Partycjonowanie
Partycjonowanie – podział rekordów
tabeli na rozłączne części (partycje),
możliwe do rozlokowania w różnych
przestrzeniach tabel
Atrybut partycjonujący – atrybut, w
oparciu o który wyznaczana jest
oparciu o który wyznaczana jest
przynależność do partycji
Zalety
Zrównoleglenie operacji manipulacji
danych
Operacje SQL dotyczące różnych partycji
mogą być
zrównoleglane
Zapytania mogą być kierowane
bezpośrednio do partycji
Zmniejszenie skutków awarii –
odtwarzana jest partycja na uszkodzonym
dysku, a nie cała tabela
marcin.mazurek@wat.edu.pl
5
Partycjonowanie danych
Partycjonowanie zakresowe - rekordy podzielone są
na partycje według wartości wybranej kolumny – klucz
podziału
Partycjonowanie haszowe – rekordy rozdzielane są na
Partycjonowanie haszowe – rekordy rozdzielane są na
partycje według wartości funkcji haszującej dla wybranej
kolumny
Partycjonowanie wg. listy
Partycjonowanie dwupoziomowe
Partycjonowanie dwupoziomowe zakresowo-haszowe
Partycjonowanie dwupoziomowe zakresowo-listowe
marcin.mazurek@wat.edu.pl
6
Indeksowanie: B-drzewa
B- drzewo (ang. b-tree) jest drzewem z korzeniem o poniższych właściwościach
Każdy węzeł x ma następujące pola
n[x] kluczy pamiętanych w porządku niemalejącym
n [x] +1 wskaźników do synów (jeżeli nie jest liściem)
Wszystkie liście leżą na rej samej głębokości
Istnieją dolne i górne granice ograniczenia na liczbę kluczy w danym węźle ,
Istnieją dolne i górne granice ograniczenia na liczbę kluczy w danym węźle ,
związane z minimalny stopniem B-drzewa t :
Każdy węzeł rożny od korzenia musi mieć t-1 kluczy
Każdy węzeł może zawierać co najwyżej 2t-1 kluczy
marcin.mazurek@wat.edu.pl
7
B-drzewa
Liczba dostępów jest do dysku jest
proporcjonalna do wysokości drzewa h.
1
log
n
h
+
≤
Współczynnik rozgałęzienia dobierany tak,
aby węzeł mieścił się w pamięci operacyjnej
marcin.mazurek@wat.edu.pl
8
1
log
2
t
n
h
+
≤
Indeksy bitmapowe
Mapa bitowa
niewielki rozmiar,
szybkie przetwarzanie
Możliwość wykonania
wybranych operacji
Kolor
Typ
ID
Kolor
Typ
ID
C
z
e
rw
o
n
y
N
ie
b
ie
s
k
i
S
re
b
rn
y
C
z
a
rn
y
S
e
d
a
n
K
o
m
b
i
S
U
V
H
a
tc
h
b
a
1 Czerwony Sedan
1
1
0
0
0
1
0 0 0
wybranych operacji
bezpośrednio na indeksie
Mały rozmiar dla atrybutów dla
małej krotności
Kompresja i kodowanie map
bitowych dla atrybutów o
dużej liczbie możliwych do
przyjęcia wartości
marcin.mazurek@wat.edu.pl
9
1 Czerwony Sedan
1
1
0
0
0
1
0 0 0
2 Niebieski Kombi
2
0
1
0
0
0
1
0 0
3 Czerwony SUV
3
1
0
0
0
0 0
1
0
4 Srebrny
Hatchback
4
0 0
1
0
0 0 0
1
5 Srebrny
Kombi
5
0 0
1
0
0
1
0 0
6 Czerwony Kombi
6
1
0
0
0
0
1
0 0
7 Czarny
SUV
7
0 0
0
1
0 0
1
0
Indeksy bitmapowe
Kolor
Typ
ID
C
z
e
rw
o
n
y
N
ie
b
ie
s
k
i
S
re
b
rn
y
C
z
a
rn
y
S
e
d
a
n
K
o
m
b
i
S
U
V
H
a
tc
h
b
a
c
k
marcin.mazurek@wat.edu.pl
10
ID
Kolor
Typ
1 Czerwony
Sedan
1
1
0
0
0
1
0
0
0
2 Niebieski
Kombi
2
0
1
0
0
0
1
0
0
3 Czerwony
SUV
3
1
0
0
0
0
0
1
0
4 Srebrny
Hatchback
4
0
0
1
0
0
0
0
1
5 Srebrny
Kombi
5
0
0
1
0
0
1
0
0
6 Czerwony
Kombi
6
1
0
0
0
0
1
0
0
7 Czarny
SUV
7
0
0
0
1
0
0
1
0
Indeks połączeniowy
Indeks bitmapowy
Indeks B-drzewo
marcin.mazurek@wat.edu.pl
11
Ź
ródło: R.Wrembel Hurtowni danych w oparciu o Oracle 9i/10g, PLOUG 2005,
Zrównoleglanie operacji
Wykonanie operacji przy wykorzystaniu więcej niż jednego procesu
realizowanego na oddzielnych procesorach
marcin.mazurek@wat.edu.pl
12
Plan wykonania zapytań
Optymalizator zapytań
Regułowy
Kosztowy – statystyki schematu
bazy danych
Wskazówki dla optymalizatora
Wskazówki dla optymalizatora
(ang. hints)
Sposób złączenia
Nested loops
Hash join
Sort join
Wykorzystanie indeksu, full scan
Tryb optymalizacji
All rows
First 100 rows
marcin.mazurek@wat.edu.pl
13
Perspektywy zmaterializowane
Perspektywa, której
zawartość jest fizycznie
składowana w bazie
danych
CREATE MATERIALIZED VIEW
BUILD IMMEDIATE
REFRESH COMPLETE
ENABLE QUERY REWRITE
AS SELECT SUM()
danych
Odświeżanie danych:
Przyrostowe lub
całościowe
Natychmiastowe
Na żądanie
Po zatwierdzeniu transakcji
Według interwału
Przepisywanie zapytań (ang.
query rewriting)
marcin.mazurek@wat.edu.pl
14
AS SELECT SUM()
FROM …
GROUP BY …
Datamarty
Technologie realizacji
Relacyjna baza danych (ROLAP)
Zdenormalizowane tabele (model gwiazdy)
Każda relacyjna baza danych
Każda relacyjna baza danych
Oprogramowanie analityczne udostępnia „wirtualną kostkę
danych”
Struktury wielowymiarowe (ang. multidimensional
databases)
Oracle Hupyrion Essbase
SAS MDDB (SAS OLAP)
Microsoft Analysis Services
Cognos
marcin.mazurek@wat.edu.pl
15
ROLAP
marcin.mazurek@wat.edu.pl
16
http://www.businessobjects.com
MOLAP
Dedykowana
struktura
(wielowymiarowa
tablica indeksowana
marcin.mazurek@wat.edu.pl
17
tablica indeksowana
wartościami
atrybutów)
Tablica rzadka -
kompresja (1%-3%)
ROLAP vs MOLAP
Baza danych relacyjna
Łatwość aktualizacji
danych (korekty)
Ograniczenie liczby
elementów infrastruktury
Struktury wielowymiarowe
Mniejsze
zapotrzebowanie na
przestrzeń dyskową –
efektywne
elementów infrastruktury
(możliwość
współdzielenia serwera
bazy danych)
Krótszy czas
wykonywanie procesów
zasilenia danych
efektywne
przechowywanie danych
Stały, krótszy czas
odpowiedzi.
marcin.mazurek@wat.edu.pl
18
Infrastruktura sprzętowa -
elementy
Serwer bazy danych
Serwer aplikacji
Macierz dyskowa
System backupu
Serwer przetwarzania
analityczno-raportowego
Serwer ETL
marcin.mazurek@wat.edu.pl
19
Infrastruktura sprzętowa –
serwer bazy danych
Serwer bazy danych
Repozytorium główne
Obszar tymczasowy stage
kopie danych z systemów źródłowych
„lustra” – odbicie tabel z hurtowni danych
„lustra” – odbicie tabel z hurtowni danych
Metadane
Agregaty
Wymiarowanie przestrzeni dyskowej:
Oszacowanie rocznego przyrostu danych
Okres inicjalnego ładowania danych
Oszacowanie rozmiaru przestrzeni tymczasowej – w zależności od
sposobu ładowania danych
marcin.mazurek@wat.edu.pl
20
Serwer aplikacji
Serwer aplikacji (aplikacje WWW)
Aplikacja metadanych
Aplikacje analityczno-raportowe
Aplikacje analityczno-raportowe
Aplikacja administratora (obsługa błędów)
marcin.mazurek@wat.edu.pl
21
System backupu i odtwarzania
Kopia zapasowa
Replikacja danych
Zasoby dyskowe
Zasoby dyskowe
Biblioteki taśmowe
Ś
rodowisko zapasowe w odległej
lokalizacji
marcin.mazurek@wat.edu.pl
22
Klaster wydajnościowo-
niezawodnościowy
Dedykowane serwery - zagwarantowanie minimalnego
poziomu wydajności dla grupy procesów (zapytania)
Możliwość przejęcia obciążenia z uszkodzonego
serwera
serwera
Wirtualizacja - możliwość dynamicznej zmiany
parametrów sprzętowych serwerów
Technologie
Oracle RAC (Real Application Cluster)
Microsoft SQL Server Cluster
marcin.mazurek@wat.edu.pl
23