?
Diffrentes dfinitions pas trs rigoureuses
Une BD daide la dcision qui est
un data warehouse
1
Sujet
2
Donnes intgres
Construit en intgrant plusieurs sources de
donnes possiblement htrognes
BDs relationnelles, fichiers plats,
Les techniques dintgration et de nettoyage des
donnes sont utilises
Garantir la consistance des conventions de
4
Data Warehouse est Non-Volatile
Un support de stockage spar
Les mises jour de la base oprationnelle nont
pas lieu au niveau de la data warehouse
Na pas besoin de modules de gestion de
transactions (concurrence, reprise sur panne )
Na besoin que de deux oprations pour
accder aux donnes :
Chargement initial des donnes et
interrogation (lecture).
5
Data Warehouse vs. SGBD
htrognes
Traditionnellement, lintgration de BDs
htrognes se fait par le biais de:
Mdiateurs au dessus des BDs htrognes
Approche oriente requte
Quand une requte est pose par un site client, un
mta-dictionnaire est utilis pour la traduire en
plusieurs requtes appropries chacune des BDs. Le
rsultat est lintgration des rponses partielles.
Lexcution des requtes demande donc beaucoup de
ressources
Data warehouse: Approche oriente mise jour
Les infos sont intgres et stockes pour une interrogation
directe. Plus efficace en cot dexcution des requtes
6
Des Tables aux Data cubes
7
Cube: Un treillis de
cubodes
tous
0-D cubode
temps,lieu, fournisseur
temps,item,lieu 3-D cubodes
Temps, item, fournisseur item,lieu, fournisseur
4-D cubode
Temps, item,lieu,fournisseur
8
Modlisation
Conceptuelle des Data
Warehouses
Dimensions & mesures
Schma en toile: Au milieu, une table de faits
connecte un ensemble de tables de dimensions
Schma flocon de neige (snowflake): Un
raffinement du prcdent o certaines tables de
dimensions sont normalises (donc dcomposes)
Constellation de faits: Plusieurs tables de faits
partagent quelques tables de dimension
(constellation dtoiles)
9
Exemple de schma en toile
temps
Id_temps item
jour Id_item
Jour_semaine Table de faits ventes Nom_item
mois marque
trimestre id_time type
anne Type_fournisseur
id_item
id_branche
branche lieu
id_lieu
Id_branche Id_lieu
Nom_branche units_vendues rue
Type_branche ville
montant_ventes dpartement
pays
moyenne_ventes
Mesures
10
Exemple de schma
Snowflake
temps fournisseur
item
Id_temps Id_fournisseur
Id_item
jour Type_fournisseur
Jour_semaine Table de faits Vente Nom_item
Marque
mois type
trimestre Id_temps
Id_fournisseur
anne Id_item
Id-branch
lieu
branche Id_lieu
Id_lieu
Id_branche
units_vendues rue
Nom_branche
Id_ville ville
Type_branche
montant_vente
Id_ville
moyenne_vente ville
dpartement
Mesures pays
11
Exemple de Constellation de
faits
temps
Table de faits Transpor
Id_temps item
jour Table de faits Id_item Id_temps
Jour_semaine Vente Nom_item
mois Id_temps marque Id_item
trimestre type Id_transporteur
anne Id_item Id_fourniseur
Id-branche id_dpart
Magasin Jour
Mois
13
Un exemple de Data Cube
Total annuel des ventes
Date de TV aux U.S.A.
1Trim 2Trim 3Trim 4Trim sum
t
TV
ui
PC 0 0 U.S.A
Pr
DVD
sum
Canada
Pays
Mexique
sum
14
Cubodes Correspondants au
Cube
tous
Cubode 0-D(apex)
produit date pays
Cubode 1-D
cubode3-D(base)
produit, date, pays
15
Oprations typiques de lOLAP
16
Trois modles de data
warehouse
Entreprise warehouse
Collecte de toutes les informations concernant les
oprationnelle
Seulement un sous ensemble des vues sont
matrialises
17
Architecture des serveurs OLAP
Relational OLAP (ROLAP)
Utilise un SGBD relationnel pour stocker les
Essbase)
18
Calcul efficace dun data cube
19
Oprations sur les cubes
21
Exemple
On considre un ensemble de requtes, un ensemble de
vues possibles. La question: quelles vues matrialiser pour
rpondre toutes les requtes, si le nombre de vues ne
doit pas dpasser un certain seuil
22
Exemple
Les vues considres sont de la forme
SELECT <g-attributs>, SUM(<mesure>)
FROM Table
GROUP BY <g-attributs>
Produit (0,2M)
Fournisseur (0,01)
Client (0,1M)
(1)
23
Exemple
PFC 6M
PC 6M PF 0,8M FC 6M
P 0,2 M F C 0,1
0,01
24
Exemple
V lensemble des vues et Vk ={W de 2V : |W| = k }
Trouver W tel que
Gain(W) = Max (Gains Wi avec |Wi |=k)
On dfinit un pr-ordre sur les vues: v w si v peut tre
calcule partir de w
A chaque fois que lon dcide de matrialiser une vue w, les
vues v telles v w ont un bnfice B
Bnfice(v, S) = somme B(w,v,S) avec w v avec B(w,v,S)=le
gain quon aura pour calculer w en rajoutant v S
Gain (W)=somme(Bnfice(v): v lment de W)
Si n est le nombre total de vues, alors on a n! / (n-k)!k!
ensembles de vues k lments quil faut tester. Lalgorithme
de recherche de la solution optimal est en temps exponentiel
Algorithme approche
S= {top view}
For i=1 to k
S=S union {v} t.q Bnfice (v,S) soit maximale
Return s
25
Exemple
a 100
b 50c 75
d 20 e 30 f 40
g 1 h 10
Initialisation : S={a}
tape 1:
Bnfice(b,S)=50*5=250 Bnfice(c,S)=25*5=125
Bnfice(d,S)=80*2=160 Bnfice(e,S)=70*3=210
Bnfice(f,S)=60*2=120 Bnfice(g,S)=99*1=99
Bnfice(h,S)=90*1=90 S=S+={b}
26
Exemple
a 100
b 50 c 75
d 20 e 30 f 40
g1 h 10
Initialisation : S={a,b}
tape 2:
Bnfice(c,S)=25*2=50 Bnfice(d,S)=30*2=60
Bnfice(e,S)=20*3=60 Bnfice(f,S)=60+10=70
Bnfice(g,S)=49*1=49 Bnfice(h,S)=40*1=40
S=S+={f}
27
Exemple
a 100
b 50c 75
d 20 e 30 f 40
g 1 h 10
Initialisation : S={a,b,f}
tape 3:
Bnfice(c,S)=25*1=50 Bnfice(d,S)=30*2=60
Bnfice(e,S)=20+20+10=50 Bnfice(g,S)=49*1=49
Bnfice(h,S)=30*1=30 c,d,f c=50 d=135 f=70
S=S+={d}
28
Exemple
S={a,b,d,f}
Bnfice(b,S)=50*2=100
Bnfice(d,S)=30*2=60
Bnfice(f,S)=60+10=70
Gain(S)=230
S*={a,c,d,f }
Bnfice(c,S*)=50
Bnfice(d,S*)=135
Bnfice(f,S*)=70
Gain(S*)=255
Thorme : Soit S* la solution optimale et S la
solution retourne par lalgorithme. Alors,
Gain(S) 63% de Gain(S*) (e-1)/e
29
Matrialisation totale: Multi-way
Array Aggregation for Cube
Computation
Partitionner les tableaux en des portions (chunk : un petit sous-cube qui peut tre
charg en mmoire)
Adressage de tableaux creux compresss : (chunk_id, offset)
Calculer les agrgats en multiway en visitant les cellules du cube de sorte (i)
minimiser le # de fois que chaque cellule est visite et (ii) rduire les cots daccs
et de stockage
C c3 61
c2 45
62 63 64
46 47 48
c1 29 30 31 32 Quel est lordre
c0
b3 B13 14 15 16 60 prfrentiel
44
9
28 56 pour parcourir
b2
B 40
24 52 le cube dans le
b1 5 36 cadre dune
20
b0 1 2 3 4 agrgation?
a0 a1 a2 a3
A 30
Exemple
31
Exemple
Les tailles de AB, AC et BC sont resp. 16.10 3, 16.104 et 16.105
Pour viter quune portion ne soit charge plus dune fois, lespace
tampon minimum doit tre: 40*400 (plan AB)+10*4000 (une ligne
du plan AC) + 100*1000(une portion de BC)=156 000
Supposons que lordre de parcours est 1, 17, 33, 49, 5, 21, 37, 53,
agrgation selon AB, puis AC puis BC. Lespace mmoire requis est
400*4000(plan BC)+40*4000(une ligne de AC)+10*100(portion de
AB)=1 641 000
C c3 61
c2 45
62 63 64
46 47 48
c1 29 30 31 32
c0
B13 14 15 16 60
b3 44
B 28 56
b2 9
40
24 52
b1 5
36
20
b0 1 2 3 4
a0 a1 a2 a3
A
33
Multi-way Array Aggregation
for Cube Computation
C c3 61
c2 45
62 63 64
46 47 48
c1 29 30 31 32
c0
B13 14 15 16 60
b3 44
B 28 56
b2 9
40
24 52
b1 5
36
20
b0 1 2 3 4
a0 a1 a2 a3
A
34
Pas de matrialisation:
Indexation de donnes OLAP:
Index Bitmap
Index sur une colonne particulire
Chaque valeur dans la colonne a un vecteur de bits :
oprations sur les bits sont rapides
La longueur du vecteur de bits: # de la table de base
Le i-me bit=1 si la i-me ligne de la table de base
possde la valeur de la colonne indexe
Ne convient que pour les domaines de faible cardinalit
36
Traitement efficace des requtes
OLAP
Dterminer quelles sont les oprations effectuer
sur les cubodes disponibles :
transformer drill, roll, etc. en des requtes SQL
et/ou oprations OLAP, ex, dice = slection +
projection
Dterminer sur quel cubode matrialis lopration
doit tre excute.
Exploiter les structures dindex disponibles
37
Data Warehouse : Utilitaires
Extraction :
Rcuprer les donnes partir des sources
Nettoyage :
dtecter les erreurs et les corriger si possible
Transformation :
Convertir les formats
Charger:
Trier, consolider, calculer des vues, vrifier des
contraintes, construire des index, vrifier des
contraintes
Rafrachir
Propager les mises jour des sources sur le
data warehouse
38
Architecture OLAM
Mining query Mining result Layer4
User Interface
User GUI API
Layer3
OLAM OLAP
Engine Engine OLAP/OLAM
Layer2
MDDB
MDDB
Meta
Data
Filtering&Integration Database API Filtering
Layer1
Data cleaning Data
Databases Data
Data integration Warehouse Repository39
Rsum
Data warehouse
Donnes orientes sujet, intgres, dpendant du temps, et
non-volatiles pour la prise de dcision
Un modle multidimensionnel pour les data warehouses
Schma en toile, schma snowflake, constellation
Un data cube est decrit par des dimensions et des mesures
Oprations OLAP : drilling, rolling, slicing, dicing and
pivoting
OLAP servers: ROLAP, MOLAP, HOLAP
Implmentation des data cubes
Matrialisation Partielle vs. totale vs. nulle
Slection des cubodes matrialiser
Multiway array aggregation
Implmentation avec Bitmap index et join index
40