Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
© 2014 Profinit. All rights reserved. 2
Dimenzionální modelování
o Ralph Kimball (1997)
– Primárně modely pro datové sklady a analýzy
– Silně denormalizovaný model
o Modely
– Pochopitelné pro netechnicky orientované uživatele
– Snadno rozšiřitelné
– Orientované na analytické dotazy
– Podporované datovými servery a analytickými nástroji (OLAP)
o Schopnost reportovat z extrémního objemu dat
o Minimum update – pouze přidávání dat
o Požadavek neměnící se historie
o Technologie „neumí“ současný update a select
© 2014 Profinit. All rights reserved. 3
Příklad
© 2014 Profinit. All rights reserved. 4
Standardní dotaz
select SUM(qty) from
F_SALES,D_TIME,D_TITLES,D_STORES,D_AUTHORS
where
F_SALES.TITLES_KEY = D_TITLES.TITLES_KEY
and F_SALES.STORES_KEY = D_STORES.STORES_KEY
and F_SALES.AUTHOR_KEY = D_AUTHOR.AUTHOR_KEY
and F_SALES.DATE_KEY = D_DATE. DATE_KEY
and podminky na D_TITLES
and podminky na D_STORES
and podminky na D_AUTHORS
and podminky na D_DATE
group by
pozadovana granularita vysledku
© 2014 Profinit. All rights reserved. 5
Star schéma
Grocery Transaction
Store Number
Transaction Date
Customer
Product
Quantity
Amount
Customer
Customer
From Date
To Date
First Name
Last Name
Address 1
Address 2
Address 3
City
State
Country
Postal Code
Time
Transaction Date
Store
Store Number
Store Name
City
State
Country
Telephone
Product
Product
Description
Category
Dimenze
Fakta
© 2014 Profinit. All rights reserved. 6
Snowflake schéma
Grocery Transaction
Store Number
Transaction Date
Customer
Product
Quantity
Amount
Customer
Customer
First Name
Last Name
Address 1
Address 2
Address 3
City
State
Country
Postal Code
Customer Category
Time
Transaction Date
Store
Store Number
Store Name
City
State
Country
Telephone
Region
Product
Product
Description
Category
Product Category
Product Category
Description
Region
Region
Description
Sales Period
Period Identifier
Sales Period
From Date
To Date
Customer Category
Category
Customer Category
© 2014 Profinit. All rights reserved. 7
Snowflake model
o Výhody
– Minimální redundance dat v rámci dimenzí
– Úspora místa v databázi
– Větší flexibilita pro modelování
– Užitečný pro dimenze se složitou strukturou
o Nevýhody
– Složitější konstrukce dotazů, mnoho joinů
– Nižší výkonnost
– Komplikovaný snowflake model může odradit uživatele od přímého přístupu k datům
• uživatelské nástroje zpravidla
zavádějí sémantickou vrstvu, která
uživatele odstíní od datového
modelu
– Možný konflikt s bitmapovými indexy
– Úspora místa je většinou převážena nižší výkonností a složitější administrací
© 2014 Profinit. All rights reserved. 8
Constellation schéma
Grocery Transaction
Store Number
Transaction Date
Customer
Product
Purchase Quantity
Amount
Customer
Customer
First Name
Last Name
Address 1
Address 2
Address 3
City
State
Country
Postal Code
Customer Category
Time
Transaction Date
Store
Store Number
Store Name
City
State
Country
Telephone
Region
Product
Product
Description
Category
Product Line
Product Purchases
Product
Purchase Date
Supplying Vendor
Purchase Order
Unit Quantity
Purchase Cost
Vendor
Vendor
Vendor Name
Address 1
Address 2
Address 3
City
State
Country
Postal Code
Product Inventory
Product
Warehouse Location
Quantity On Hand
Quantity Back Ordered
Warehouse
Warehouse
Address 1
Address 2
Address 3
City
State
Country
Postal Code
© 2014 Profinit. All rights reserved. 9
Snowstorm schéma
Grocery Transaction
Store Number
Transaction Date
Customer
Product
Purchase Quantity
Amount
Customer
Customer
First Name
Last Name
Address 1
Address 2
Address 3
City
State
Country
Postal Code
Customer Category
Time
Transaction Date
Store
Store Number
Store Name
City
State
Country
Telephone
Region
Product
Product
Description
Category
Product Line
Product Category
Product Category
Description
Region
Region
Description
Sales Period
Period Identifier
Sales Period
From Date
To Date
Customer Category
Category
Customer Category
Promotion Period
Promotion Id
Promotion
From Date
To Date
Product Line
Product Line ID
Description
Product Purchases
Product
Purchase Date
Supplying Vendor
Purchase Order
Unit Quantity
Purchase Cost
Vendor
Vendor
Vendor Name
Address 1
Address 2
Address 3
City
State
Country
Postal Code
Product Inventory
Product
Warehouse Location
Quantity On Hand
Quantity Back Ordered
Warehouse
Warehouse
Address 1
Address 2
Address 3
City
State
Country
Postal Code
© 2014 Profinit. All rights reserved. 10
Postup návrhu modelu
1. Výběr sledovaných procesů
2. Určení granularity
3. Určení dimenzí
4. Určení metrik
5. Definice získávání dat (ETL)
© 2014 Profinit. All rights reserved. 11
Výběr sledovaných procesů
o Seznam procesů, které chceme analyzovat
– Od jednodušších ke složitějším
o Bus matrix
– Matice: Business procesy x Dimenze
o Často odpovídá jeden business proces ≈ jeden datamart
© 2014 Profinit. All rights reserved. 12
Bus matrix
Da
te
Cu
sto
me
r
Se
rvic
e
Ra
te C
ate
go
ry
Lo
ca
l S
vc P
rovid
er
Ca
llin
g P
art
y
Call
ed
Part
y
Lo
ng
Dis
t P
rovid
er
Inte
rna
l
Org
an
iza
tio
n
Em
plo
ye
e
Lo
ca
tio
n
Eq
uip
me
nt
Typ
e
Su
pp
lie
r
Item
Sh
ipp
ed
We
ath
er
Ac
co
un
t s
tatu
s
Custommer Billing × × × × × × × × Service Orders × × × × × × × × × × × Trouble Reports × × × × × × × × × × × × × × Yellow Page Ads × × × × × × × × Customer Inquiries × × × × × × × × × × × × Promotion × × × × × × × × × × × × × × Billing Call Detail × × × × × × × × × × × × × × × Network Call Detail × × × × × × × × × × × × × × × Customer Inventory × × × × × × × × × × × × Network Inventory × × × × × × × × Real eastate × × × × × Labor & Payroll × × × × Computer Charges × × × × × × × × × × × Purchase Orders × × × × × × × Supplier Deliverables × × × × × × ×
© 2014 Profinit. All rights reserved. 13
Buss matrix
© 2014 Profinit. All rights reserved. 14
Bus architektura a schéma - příklad
© 2014 Profinit. All rights reserved. 15
Určení granularity
o Všechny řádky musí mít stejnou granularitu
o Granularita malá
– Jeden řádek ≈ jedno měření
– Velký objem dat
o Granularita velká
– Malé databáze
– Omezená možnost analýz
o Hodnoty odpovídají průniku všech dimenzí
o Někdy potřeba realokace dat na několik řádek
o Řádky s hodnotou nula se nazapisují
© 2014 Profinit. All rights reserved. 16
Fact tables
o Transaction - co řádek to transakce (například obchody)
– Proces může obsahovat více typů transakcí, rozhodnutí zda jedna nebo více tabulek není jednoduché
o Snapshots - každý den se udělá celý snímek
– State model – celé denní snímky
– Event model – každý den pouze změněné záznamy
– Možnost dopočítání dalších hodnot ke každému snímku
o Akumulujíce se shapshoty (sklad)
– Id výrobku jako primární klíč a doplňují/updatují se hodnoty pro události popisující životní cyklus
– Do daného řádku se doplní datum expedice, fakturace, dodání, vyúčtování, …
– Pozor - update v tabulce faktů
o (Fact tables bez faktů – slouží jako n:n vazba mezi dimenzemi)
© 2014 Profinit. All rights reserved. 17
Fact tables
o Fakta
– aditivní - počet, cena v transakčních fact tabulkách
• Význam pro všaechny dimenze
• Nejlépe se s nimi pracuje
• Cílem je převést na aditivní fakta maximum
• Discount -> ceníková cena, prodejní cena
– semiaditivní - počet cena v snapshot tabulkách
• součet za produkty má význam, za čas nemá význam
• Obecně význam pouze pro některé dimenze
– nonadditive - procentuální profit
• Často text
• Někdy možné přenést do dimenzí (degenerované dimenze)
o Factless fact table – pouze cizí klíče, žádná fakta
– Příznak existence (účast v kampani)
© 2014 Profinit. All rights reserved. 18
Určení dimenzí
o Konformní dimenze
– Jedna nejpodrobnější dimenze, ostatní jsou jejich agregací
– Jednotné dimenze pro všechny business procesy
o Struktura
– Jeden sloupec primárního klíče
– Hodně sloupců popisů, často přes 30, čím více tím lépe
– Atributy spíše textové (srozumitelnost)
– Hierarchie pro analýzy
o Časová dimenze
o Degenerovaná dimenze – nemá popis (číslo faktury)
o Dimenze jsou denormalizované (jedna široká tabulka)
– Normalizace – vločkové schéma
o Řádek s hodnotu „Not applicable“, „Uknown“
© 2014 Profinit. All rights reserved. 19
Časová dimenze
o V každém datovém skladu
o Často mnoho hierarchií
– Provozní rok
– Fiskální rok
– Kalendářní rok
o Mnoho sloupců
– Textová informace
– Číselná informace
– Konce a začátky období
– …
© 2014 Profinit. All rights reserved. 20
Časová dimenze
© 2014 Profinit. All rights reserved. 21
Dimensions
o Schéma a instance dimenze lokace o Použití srozumitelných dat, texty
o Často odvozeno z jiných zdrojů (i externích)
o Redundance dat je pouze v dimenzích (nikoliv ve faktových tabulkách)
o Umožňuje vybírat a agregovat data po úrovních
o Hierarchie by měli mít konstatní hloubku
– (nedoplňovat regiony jenom někde)
o Hierarchie jsou obsaženy v metadatech o dimenzích
© 2014 Profinit. All rights reserved.
Hierarchie
o Popis jak agregovat hodnoty
jedné dimenze
o Může existovat několik
nezávislých hierarchií na jedné
dimenzi
o Drill-down podle dimenzí
o Dimenze času
o Nejmenší granularita – den
o 6 nezávislých dimenzí
© 2014 Profinit. All rights reserved. 23
Typy dimenzí
o Konformní
– Pro celý podnik
– Ostatní dimenze jako podimenze konformních dimenzí
o Minidimenze a sběrné dimenze
– Číselníky
– Stavové a textové atributy
– Možné sloučit do sběrných dimenzí
o Degenerované dimenze
– Přímo v tabulce faktů (číslo objednávky)
© 2014 Profinit. All rights reserved. 24
Typy dimenzí z pohledu změn
o Statické
– Žádné ošetření změn
– V případě změny se přepíše starý záznam
– Žádná historie
o Rostoucí dimenze
– Přidávají se nové záznamy
– V případě změny se přepíše starý záznam
– Žádná historie
o Rychle rostoucí diimenze
– Nutné speciální řešení
– Oddělení rychle se měnících atributů do vlastní dimenze
– (Jako Slowly changed dimension Type 2)
o Slowly changing dimenze
© 2014 Profinit. All rights reserved. 25
Slowly changing dimension
o Typ 1 – přepis hodnot
– Žádná historie
o Typ 2 – přidávání řádků, vždy jeden platný
– Přidané pole“ Begin date, End date, Eff date key, Change reason text, Current flag
– Kompletní historie
o Typ 3 – alternativní realita vice možností v jeden čas
– Přidání nových záznamů uchování současné a předchozí hodnoty v případě změny
o Redundance nebývá problém
– Dimenze zabírají cca 5% místa v DWH
© 2014 Profinit. All rights reserved. 26
Dimensionální model ve zkratce
o Fact tables – fakta (metriky) a cizí klíče z dimenzí
o Dimension tables – jeden sloupec primárního klíče a mnoho popisných sloupců
o Star schéma
o Další speciální tabulky
© 2014 Profinit. All rights reserved. 27
Příklad
o Fakta
– Počet prodaných knih
– Cena za prodané knihy
o Dimenze
– Knihy
– Obchody
– Čas
o Hierarchie
– Knihy
• Kniha – typy knih – vše
– Čas
• Den – kalendářní měsíc – kalendářní kvartál – kalendářní rok – celá historie
– Obchody
• Obchod – hierarchická struktura podle ústředí – vše
© 2014 Profinit. All rights reserved. 28
Další témata
o Údržba modelu
o Přidělování klíčů
o Vazba mezi identifikací ve vstupních datech a primárními klíči
o Datová kvalita
o Agregace
o Vstupní data – snapshots nebo events
© 2014 Profinit. All rights reserved. 29
OLAP technologie
o Uložení a zpracování dat podporující určité druhy analýz
– parameterized static reporting
– slicing and dicing with drill down
– ‘what if?’ analysis
– goal seeking models
o Způsob uložení předpočítaných hodnot (denormalizace)
– Uložení agregovaných hodnot vyžadovaných analýzami podle zadaných
• Metrik
• Dimenzí
• Hierarchií na dimenzích
© 2014 Profinit. All rights reserved.
OLAP technologie
o Uložení a zpracování dat podporující určité druhy analýz
– parameterized static reporting
– slicing and dicing with drill down
– ‘what if?’ analysis
– goal seeking models
o Způsob uložení předpočítaných hodnot (denormalizace)
– Uložení agregovaných hodnot vyžadovaných analýzami podle zadaných
• Metrik
• Dimenzí
• Hierarchií na dimenzích
© 2014 Profinit. All rights reserved. 31
Multidimenzionální databáze
o Nutné rozlišit
– Princip
• Práce s dimenzemi
• Práce s hierarchiemi
– Skutečný způsob uložení dat
• Relační model
• Speciální úložiště se speciálními indexy
o Kategorizace dle místa uložení dat a agregací
– MOLAP– veškerá data uložená v multidimenzionální databázi
– ROLAP – veškerá data uložená v relační
– HOLAP – hybrid
o Další typy
– RTOLAP – real time, data pouze v RAM
– DOLAP – desktop OLAP, data uložená na klientském počítači
© 2014 Profinit. All rights reserved. 32
Příklady dodavatelů OLAP serverů
o MS Analysis Services
o IBM Cognos
o Oracle OLAP option
o Hyperion Essbase
o Business Objects
o MicroStrategy
o SAS
© 2014 Profinit. All rights reserved. 33
Co si zapamatovat
o K čemu slouží dimenzionální datové modely
o Jaké jsou hlavní rozdíly relačního a dimenzionálního modelování
o Jaké jsou rozdíly mezi modely typu hvězda, souhvězdí, vločka nebo sněhová
bouře
o Jaký je doporučený postup při návrhu dimenzionálního modelu
o Co to je Buss Matrix, k čemu slouží
o Jaké typy faktových tabulek se používají
o Co to je aditivní, semiaditivní a neaditivní metrika
o Jaké typy dimenzí se používají
o Co to je "Slowly changing dimension of type 2"
o Co to je OLAP databáze
© 2014 Profinit. All rights reserved.
Diskuse