adattarhazak_olap_rendszerek_(la-04).

Download Report

Transcript adattarhazak_olap_rendszerek_(la-04).

Adattárházak:
OLTP, OLAP,
ROLAP, MOLAP rendszerek
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
A rendszerekről röviden
OLTP (On-line Transactional Processing) rendszerek:
Olyan relációs adatbázis-rendszerek, amelyek az üzemszerű működés támogatását szolgálják.
Például: számlavezető rendszer, értékesítési rendszer
OLAP (On-line Analytical Processing) rendszerek:
Olyan relációs vagy multidimenzionális adatbázis-rendszerek, amelyek az elemzések, jelentések
elkészítését támogatják.
Például: vezetői információs rendszer, döntéstámogató rendszer, jelentéskészítő rendszer
ROLAP (Relational OLAP) rendszerek:
alapja relációs adatbázis
OLAP rendszerek
MOLAP (Relational OLAP) rendszerek:
alapja multidimenziós adatbázis
2
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
A rendszerek összehasonlítása
OLTP
OLAP
Orientáció
Adatmódosítások/Lekérdezések
Elemzések/Jelentések
Felhasználói műveletek
DML/DQL
DQL
Műveletek által érintett
adatmennyiség
Adatok szemcsézettsége
egy/néhány rekord
több száz/ezer/millió rekord
elemi
aggregált
Normalizáltság
normalizált (3NF/BCNF)
denormalizált (2NF)
Átfogott időszak
aktuális
történeti
Adatok integráltsága
nem integrált
(csak az adott rendszer adatai)
MB-GB
integrált
Tárolt adatmennyiség
nagyságrendje
GB-TB
3
Adattárházak: Bevezetés
Az idő dimenzió
Az OLAP rendszerekből kinyert információk szinte mindig valamilyen időszakra/időszakokra
vonatkoznak
Időszakokat tartalmazó dimenzió szükségessége
Az idő dimenzió tartalma előre meghatározható, üzemeltetésszerű, rendszeres töltése nem
szükséges.
Természetesen ez alól kivétel, amikor új időszakot kell nyitni. Például amikor az idő dimenzió a
2005-2010 évi időszakot tartalmazza, és tudjuk, hogy nemsokára szükség lesz a 2011 évi
időszakokra, kiegészítjük azt ezzel az intervallummal.


Az idő dimenzió általában az alábbi szintekkel rendelkezik:
év > negyedév > hónap (> nap)
és/vagy
év > hét (> nap)
4
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
A rendszerek összehasonlítása
ROLAP
MOLAP
Adatbázis típusa
Relációs
Multidimenzionális
Építőelemek
Ténytáblák, dimenziótáblák
Adatkockák, dimenziók
Adatok szemcsézettsége
Jellemzően aggregált, de lehet
elemi is
Kisebb
Jellemzően csak aggregált
SQL műveletek:
csoportfüggvények, analitikus
függvények
Lefúrás, felgörgetés, szeletelés,
részkocka képzése
Tárhely igény
Műveletek
Nagyobb
5
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Normalizáltság
Az OLTP rendszerekben az adatok normalizált állapotban tárolódnak, így biztosítva az adatok integritását illetve
az adatbázis anomáliák (beszúrási, módosítási, törlési) megelőzését.
COUNTRY_ID
COUNTRY_ISO_CODE
COUNTRY_NAME
52790
52776
52789
52784
52780
52777
52779
52778
52788
52786
52775
52773
52783
52782
52781
52774
52785
52791
52787
52772
52771
52769
52770
US
DE
GB
NL
IE
DK
FR
ES
TR
PL
BR
AR
MY
JP
IN
AU
NZ
ZA
SA
CA
CN
SG
IT
United States of America
Germany
United Kingdom
The Netherlands
Ireland
Denmark
France
Spain
Turkey
Poland
Brazil
Argentina
Malaysia
Japan
India
Australia
New Zealand
South Africa
Saudi Arabia
Canada
China
Singapore
Italy
COUNTRY_NAME_HIST
COUNTRY_SUBREGION_ID
52797
52799
52799
52799
52799
52799
52799
52799
52799
52795
52798
52798
52793
52793
52793
52794
52794
52792
52796
52797
52793
52793
52799
COUNTRY_SUBREGION_ID COUNTRY_SUBREGION
COUNTRY_REGION_ID
52799
Western Europe
52803
52797
Northern America 52801
52798
Southern America 52801
52792
Africa
52800
52795
52794
52796
Eastern Europe
Australia
Middle East
52803
52805
52804
COUNTRY_REGION_ID COUNTRY_REGION
52803
52801
52804
52802
52805
52800
Europe
Americas
Middle East
Asia
Oceania
Africa
6
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Normalizáltság
Az OLAP rendszerekben az adatok denormalizált állapotban tárolódnak, ezáltal az adatok tárolása redundáns
lesz.
COUNTRY_ID
52790
52776
52789
52784
52780
52777
52779
52778
52788
52786
52775
52773
52783
52782
52781
52774
52785
52791
52787
52772
52771
52769
52770
COUNTRY_ISO_CODE
US
DE
GB
NL
IE
DK
FR
ES
TR
PL
BR
AR
MY
JP
IN
AU
NZ
ZA
SA
CA
CN
SG
IT
COUNTRY_NAME
United States of America
Germany
United Kingdom
The Netherlands
Ireland
Denmark
France
Spain
Turkey
Poland
Brazil
Argentina
Malaysia
Japan
India
Australia
New Zealand
South Africa
Saudi Arabia
Canada
China
Singapore
Italy
COUNTRY_NAME_HIST
COUNTRY_SUBREGION_ID
COUNTRY_SUBREGION COUNTRY_REGION_ID
COUNTRY_REGION
52797
52799
52799
52799
52799
52799
52799
52799
52799
52795
52798
52798
52793
52793
52793
52794
52794
52792
52796
52797
52793
52793
52799
Northern America 52801
Western Europe 52803
Western Europe 52803
Western Europe 52803
Western Europe 52803
Western Europe 52803
Western Europe 52803
Western Europe 52803
Western Europe 52803
Eastern Europe 52803
Southern America 52801
Southern America 52801
Asia
52802
Asia
52802
Asia
52802
Australia
52805
Australia
52805
Africa
52800
Middle East
52804
Northern America 52801
Asia
52802
Asia
52802
Western Europe 52803
Americas
Europe
Europe
Europe
Europe
Europe
Europe
Europe
Europe
Europe
Americas
Americas
Asia
Asia
Asia
Oceania
Oceania
Africa
Middle East
Americas
Asia
Asia
Europe
7
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Normalizáltság
Az OLTP – OLAP struktúraváltás szkriptje az alábbi:
select c.*, csr.country_subregion, cr.*
from country c, country_subregion csr, country_region cr
where c.country_subregion_id = csr.country_subregion_id
and csr.country_region_id = cr.country_region_id;
Az OLAP – OLTP transzformációé pedig ez:
create table country as
select c.country_id, c.country_iso_code, c.country_name, c.country_name_hist, c.country_subregion_id
from countries c;
create table country_subregion as
select distinct c.country_subregion_id, c.country_subregion, c.country_region_id
from countries c;
create table country_region as
select distinct c.country_region_id, c.country_region
from countries c;
8
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
ROLAP rendszerek felépítése



A tény- illetve dimenziótáblák háromféle struktúrába rendeződhetnek, azaz egy ROLAP rendszer felépítését
tekintve háromféle lehet:
csillag (Star): egy ténytábla van és ahhoz közvetlenül kapcsolódnak a dimenziótáblák
hópehely (Snowflake): egy ténytábla van, de van olyan dimenziótábla, ami egy másik dimenziótáblához
kapcsolódik
csillagkép (Galaxy): több ténytábla van és a dimenziótáblák egyszerre több ténytáblához ténytáblához
kapcsolódhatnak
Csillag séma
Dimenziótábla
Dimenziótábla
Hópehely séma
Dimenziótábla
Ténytábla
Dimenziótábla
Dimenziótábla
Csillagkép séma
Dimenziótábla
Ténytábla
Dimenziótábla
Dimenziótábla
Dimenziótábla
Ténytábla
Dimenziótábla
Dimenziótábla
Ténytábla
Dimenziótábla
Dimenziótábla
Dimenziótábla
9
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
ROLAP rendszerek felépítése


A ROLAP rendszerek építőelemei:
Dimenziótáblák: egy vagy több hierarchiát tartalmaznak, amelyek szintekre bontódnak
Ténytáblák: dimenzióazonosítókból és tényadatokból épülnek fel
Dimenziótábla
dimenzió-azonosító
hierarchia 1
szint n
…
szint 1
hierarchia 2
szint m
…
szint 1
…
hierarchia p
szint o
…
szint 1
Ténytábla
dimenzió-azonosító 1
…
dimenzió-azonosító q
tényadat 1
…
tényadat r
10
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
ROLAP rendszerek felépítése



Dimenziótáblák alkotóelemei:
dimenzió-azonosító: elsődleges kulcs (egyedi)
hierarchiák: legalább egy, de lehet több is (pl.: ügyfél dimenzió esetén: típus, életkor, cím)
szintek: minden hierarchia szintekből épül fel, az elemi szinttől akár a teljes összegzettségig (pl.:
ügyfél dimenzió cím hierarchia esetén: ügyfél > település > megye > ország > összes)
A legalsó szint minden hierarchiában ugyanazokból az elemekből áll.
Amennyiben a legfelső szint minden hierarchiánál a teljes összegzettség, úgy (értelemszerűen)
ez is azonos és csak egy elemből áll.
Dimenzió-azonosítóból pontosan annyi van, mint a legalsó (azaz elemi) szint elemeiből.
A dimenziótáblák tekinthetők fa struktúrájú objektumoknak is.
Ebből az aspektusból a hierarchiák legalsó szintjei a levelek, a legfelső szint/szintek pedig a
gyökér/gyökerek. A közbülső szintek alkotják a csomópontokat.
11
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
ROLAP rendszerek felépítése
gyökér szint
csomóponti
szintek
levél szint
12
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
ROLAP dimenziótábla (dimenzióként megjelenítve)
13
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
ROLAP rendszerek felépítése


Ténytáblák alkotóelemei:
dimenzió-azonosítók: idegen kulcsok, kapcsolómezők a dimenziókhoz
tényadatok: más szóval mértékek, mérőszámok, ezek maguk a megjelenítendő mennyiségek
A tényadat minden esetben valamilyen aggregátum, például: összeg, átlag, minimum, maximum,
szórás, számosság.
A végfelhasználó amit lát, az nem más, mint a dimenziókombinációk és a hozzájuk tartozó
tényadatok.
14
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Műveletek a ROLAP struktúrákon
Csoportosítások (csoportfüggvények alkalmazásával):
select t.CALENDAR_YEAR_NAME, t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR, sum(c.UNIT_COST)
from costs c, times t
where c.TIMES = t.DIMENSION_KEY
group by t.CALENDAR_YEAR_NAME, t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR
order by 1,2,3;
CALENDAR_YEAR_NAME
QUARTER_OF_YEAR
MONTH_OF_YEAR
SUM(C.UNIT_COST)
1998
1
1
267075,27
1998
1998
1998
1998
1
1
2
2
2
3
4
5
223557,36
168231,81
139356,61
151632,71
…
2001
2001
2001
2001
2001
…
…
3
3
4
4
4
…
8
9
10
11
12
375737,07
298819,95
305243,79
290580,86
450160,26
15
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Műveletek a ROLAP struktúrákon
Szűrések (feltételek alkalmazásával):
select t.CALENDAR_YEAR_NAME, t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR, sum(c.UNIT_COST)
from costs c, times t
where c.TIMES = t.DIMENSION_KEY
and t.CALENDAR_YEAR_NAME = ‘1999’
group by t.CALENDAR_YEAR_NAME, t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR
order by 1,2,3;
CALENDAR_YEAR_NAME
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
QUARTER_OF_YEAR
MONTH_OF_YEAR
1
1
1
2
2
2
3
3
3
4
4
4
SUM(C.UNIT_COST)
1
2
3
4
5
6
7
8
9
10
11
12
218920,74
214401,62
133037,95
113051,94
123442,13
116762,91
130807,69
130646,56
125848,42
107763,99
106420,43
226298,69
16
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Műveletek a ROLAP struktúrákon
Dimenzió(k) elhagyása:
Tételezzük fel, hogy a következő dimenziók léteznek: PRODUCTS, PROMOTIONS, TIMES, CHANNELS
Amennyiben így van, az előbbi oldalakon bemutatott lekérdezések dimenziószűkítést alkalmaznak.
Az összes dimenziót tartalmazó lekérdezés a következőképpen festene:
select p.CATEGORY_DESCRIPTION, pm.CATEGORY_DESCRIPTION, t.QUARTER_OF_YEAR, ch.CLASS_DESCRIPTION,
sum(c.UNIT_COST)
from costs c, products p, promotions pm, times t, channels ch
where c.TIMES = t.DIMENSION_KEY
and c.PRODUCTS = p.DIMENSION_KEY
and c.PROMOTIONS = pm.DIMENSION_KEY
and c.CHANNELS = ch.DIMENSION_KEY
group by p.CATEGORY_DESCRIPTION, pm.CATEGORY_DESCRIPTION, t.QUARTER_OF_YEAR, ch.CLASS_DESCRIPTION
order by 1,2,3;
17
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Műveletek a ROLAP struktúrákon



További lehetőségek:
rollup
cube
analitikus függvények
Példa a rollup-ra:
select t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR, sum(c.UNIT_COST)
from costs c, times t
where c.TIMES = t.DIMENSION_KEY
and t.CALENDAR_YEAR_NAME = ‘1999’
group by rollup(t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR)
order by 1,2;
Példa a cube-ra:
select t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR, sum(c.UNIT_COST)
from costs c, times t
where c.TIMES = t.DIMENSION_KEY
and t.CALENDAR_YEAR_NAME = ‘1999’
group by cube(t.QUARTER_OF_YEAR, t.MONTH_OF_YEAR)
order by 1,2;
18
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
ROLAP ténytábla (adatkockaként megjelenítve)
19
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
MOLAP rendszerek felépítése




A MOLAP rendszerek felépítése nagyon hasonló a ROLAP rendszerekéhez az alábbi
különbségekkel:
Dimenziótáblák helyett dimenziókból, ténytáblák helyett adatkocká(k)ból épülnek fel.
A séma, amiben megvalósítják ezeket, nem relációs, hanem multidimenzionális, ezért más
eszközökkel lehet kezelni/karbantartani az ilyen rendszereket/struktúrákat.
A MOLAP struktúrákban a tényadatok az adatkocka egy-egy cellájában tartózkodnak, minden
dimenziókombinációhoz tartozik egy (vagy több) tényadat akár null tartalommal is, ebből adódóan
ugyanolyan szemcsézettség esetén egy adatkocka helyigénye nagyobb, mint egy ténytábláé.
Ezért
a MOLAP struktúrák jellemzően durvább szemcsézettségűek.
A MOLAP struktúrákat relációs struktúrákból, ROLAP vagy OLTP struktúrákból származtatják,
tehát az alapjuk (előzményük) minden esetben relációs.
20
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
MOLAP struktúrák felépítése
adatkocka
tényadat
dimenzió
2500
aggregáltság
szintek
dimenzió
21
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Műveletek a MOLAP struktúrákon
felgörgetés
felgörgetés
lefúrás
lefúrás
szeletelés
22
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Műveletek a MOLAP struktúrákon
részkocka
képzése
dimenzió
elhagyása


Egyéb műveletek:
átfúrás (MOLAP struktúrából ROLAP struktúrába)
keresztülfúrás (egyik adatkockából egy másikba)
23
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
MOLAP műveletek  ROLAP műveletek
lefúrás  csoportosítás finomítása
felgörgetés  összevontabb csoportosítás
szeletelés  szűrés egy dimenziónál egy konkrét értékre
részkocka képzése  szűrés
dimenzió elhagyása  dimenziók szűkítése
24
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Az adattárház felépítése
Az adattárházak olyan endszerek, amelyek a forrásrendszerek jellemzően OLTP adatait olyan
struktúrába rendezik át, amely megfelel az OLAP rendszerekkel szemben támasztott
követelményeknek.
Ennek érdekében réteges felépítésű. Ez azt jelenti, hogy az adatok integrálása, historizálása,
szerkezetváltása, az adatok tisztítása, integritásának/konzisztenciájának ellenőrzése, illetve a
különböző üzleti információk kinyeréséhez szükséges logika (transzformációk, kalkulációk)
felhasználása ugyanazon adatbázis (az adattárház adatbázisa) különböző sémáiban valósul meg.
A következő oldalon lévő ábrán egy lehetséges felépítés látható.
Fontos azonban megjegyezni, hogy a legalsó és a legfelső réteg funkcionalitása minden
adattárháznál megegyezik.


Minden egyes szint (legalább) az alábbi komponenseket tartalmazza:
adatobjektumok: táblák, nézetek, szekvenciák, stb.
mappingek: olyan tárolt eljárások, amelyek a forrásobjektumok mezőit leképezik a célobjektumok
mezőire, így biztosítva az egyes szintek közötti adatáramlást. Ezek tartalmazzák a
transzformációkat, az adattisztítási procedúrákat, az üzleti logikát, a kalkulációkat stb.
25
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Az adattárház felépítése
Célrendszerek:
információs rendszerek
Adattárház:
adattisztítás, historizálás,
struktúraváltás,
kalkulációk
Forrásrendszerek:
operatív és egyéb rendszerek
26
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Az adattárház egy lehetséges felépítése (vázlatosan)
Információs
rendszerek
IS1
IS2
IS3
IS4
…
ISn
Metaadat-kezelő rendszer
Információ
kinyerése
Adatpiacok (ROLAP vagy MOLAP struktúrában)
Kockagenerálás,
Adatpiacosítás
Historikus adatok (ROLAP struktúrában)
Delta-képzés
(historizálás)
Adattárház
Integrált előző napi adatok (ROLAP struktúrában)
Struktúraváltás,
tisztítás,
transzformálás
Forrásrendszerek előző napi lenyomata (OLTP
struktúrában)
Szűrés, közös
platformra
hozás
Forrásrendszerek
2010.02.15.
SS1
SS2
SS3
SS4
…
SSn
27
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Fejlesztési sajátosságok


Kétféle fejlesztési metódus:
Big Bang
Inkrementális
A Big Bang fejlesztés során felmérik a szervezek különböző egységeiben az aktuális és
lehetséges (releváns) igényeket, majd felépítik az adattárházat, beleértve az adatpiacokat is.
Az inkrementális fejlesztés alkalmazásánál egy igény jelentkezése során felépítenek egy (esetleg
több) adatpiacot, de az elképzelhető, hogy csak bővítenek egy adatpiacot. Az igénynek
nyilvánvalóan olyannak, kell lennie, amely kielégítése adattárház igénybe vételével lenne
célszerű.
Az előbbi értelemszerűen egy hosszabb átfutási idejű ás költségesebb fejlesztést igényel, mint az
utóbbi.
28
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Fejlesztési sajátosságok
1. fejlesztés
2. fejlesztés
DM
DM
3. fejlesztés
DM
DM
DM
DWH
DWH
SS
DM
SS
Inkrementális
SS
SS
SS
SS
Big Bang
Az inkrementális fejlesztés ábráján az egy SS nem egy adatforrást jelez, hanem a fejlesztéshez
felhasznált forrásrendszerek halmazát.
29
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Fejlesztési sajátosságok
A fejlesztés menete (mindkét esetben):
1.
Igények felmérése, követelmények meghatározása
2.
Logikai adatmodell elkészítése
3.
Forrásadatok megkeresése, forrásrendszerek feltérképezése
4.
Fizikai adatmodell elkészítése
5.
Megvalósítás
6.
Tesztelés
7.
Ősfeltöltés (az adattárház feltöltése a régebbi adatokkal pl. archív adatbázisokból)
A két legalapvetőbb különbség a hagyományos és az adattárház fejlesztés között a fenti 3. és 7.
pont.
A 3. pont a forrásrendszerek integrálásából, a 7. pont az adatok historikus mivoltából adódik.
30
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Fejlesztési sajátosságok
Előny (+)/hátrány (-)
Igények felmérése
Utólagos többletmunka
újabb igények felmerülése esetén
Költségek
Fejlesztés időigénye
Big Bang
Inkrementális
+
-
Az egyes szervezeti egységek nem
biztos, hogy szükségét érzik a
fejlesztésnek, ezért az együttműködés
csorbát szenvedhet.
Mivel az érintett terület nyújtotta be
az igényt, bizonyosan teljes mértékben
együttműködik.
+
-
Már tartalmazza az adattárház a
szükséges adatokat.
Sokszorosa az inkrementálisnak.
Sokszorosa az inkrementálisnak.
Még nem tartalmazza az adattárház a
szükséges adatokat.
+
Töredéke a Big Bang-nek.
+
Töredéke a Big Bang-nek.
31
Adattárházak: OLTP, OLAP, ROLAP, MOLAP rendszerek
Üzemeltetési sajátosságok
Az adattárház adattartalma folyamatosan nő
A tárhely igény folyamatosan, meglehetősen nagy léptékben növekedik
Erős szerver választása, újabb diszkek hozzárendelése
Az adattárház töltése történhet rendszeresen (naponta, hetente, havonta) vagy ad-hoc jelleggel
A rendszeres töltések ütemezetten szoktak végbemenni
Ütemezett, egymástól függő jobok: egy job általában egy objektumot tölt
32
Köszönöm a figyelmet!