Anda di halaman 1dari 40

Ce quest le data warehouse

?
Diffrentes dfinitions pas trs rigoureuses
Une BD daide la dcision qui est

maintenue sparment de la base


oprationnelle de lorganisation
Un data warehouse est une collection de
donnes concernant un sujet particulier,
varie dans le temps, non volatile et o les
donnes sont intgres.W. H. Inmon
Data warehousing:
Le processus qui permet de construire

un data warehouse
1
Sujet

Organis autour dun sujet bien prcis, ex: client,


produit, ventes.
Sintresse la modlisation et lanalyse des
donnes pour aider les dcideurs, non pas pour des
activits quotidiennes ou traitement transactionnel
Fournit une vue simple et concise concernant un
sujet particulier en excluant les donnes qui ne
servent pas la prise de dcision

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

nommage (les attributs Nom et Nom_Famille


dans BD1 et BD2 dsignent la mme chose)
structures de codage (lattribut Nom est sur 15

char et 20 char sur BD1 et BD2; NSS est une


chane dans BD1 et cest un entier long dans
BD2),
domaines des attributs (ex: cm vs pouce), etc.

Cest au moment o les donnes sont copies

dans le data warehouse quelles sont traduites


3
Varie dans le temps
La porte temporelle des donnes dans un data
warehouse est plus longue que celle des bases
oprationnelles
Base oprationnelle: valeur courante des donnes.
Data warehouse: fournit des infos sous une
perspective historique (ex: 5 10 dernires
annes)
Dans un data warehouse, en gnral, chaque donne
fait rfrence au temps
Mais dans une base oprationnelle les donnes
peuvent ne pas faire rfrence au temps

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

Un data warehouse est bas sur un modle multidimensionnel


o les donnes sont vues comme des data cubes
Un data cube, ex: ventes, permet de voir les donnes selon
plusieurs dimensions
Les tables de dimension ex: item (nom_item, marque,
type), ou temps(jour, semaine, mois, trimestre, anne)
La table de faits contient des mesures (ex: units_vendues)
et les cls externes faisant rfrence chaque table de
dimension
Dans la littrature du data warehousing, un cube de
dimension n est dit un cubode. Le treillis des cubodes dun
data warehouse forme un data cube.

7
Cube: Un treillis de
cubodes

tous
0-D cubode

temps item lieu fournisseur


1-D cubodes

temps,item temps,lieu item,lieu Lieu, fournisseur


2-D cubodes
Temps, fournisseur item,fournisseur

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

Id_lieu lieu id_arrive


branche
Id_lieu cot
Id_branche units_vendues
rue
Nom_branche Units_transportes
montant_vente ville
Type_branche dpartement
moyenne_vente pays transporteur
Meesures Id_Transporteur
Nom_transporteur
Id_lieu
Type_transporteur12
Donnes multidimensionnelles
Montant des ventes comme une fonction
des paramtres produit, mois, rgion
Dimensions: Produit, Lieu, Temps
on

Chemins de consolidation hirarchiques


gi
R

Industrie Rgion Anne


Produit

Catgorie Pays Trimestre

Produit Ville Mois Semaine

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

10 200 300 10 700


od

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

produit,date produit,pays date, pays


Cubode 2-D

cubode3-D(base)
produit, date, pays

15
Oprations typiques de lOLAP

Roll up : consolider (rsumer) les donnes


Passer un niveau suprieur dans la
hirarchie dune dimension
Drill down : linverse du Roll-up
descendre dans la hirarchie dune dimension
Slice et Dice:
Projection et slection du modle relationnel
Pivot (rotate):
Roriente le cube pour visualisation

16
Trois modles de data
warehouse
Entreprise warehouse
Collecte de toutes les informations concernant les

sujets traits au niveau de lorganisation


Data Mart
Un sous ensemble dun entreprise warehouse. Il

est spcifique un groupe dutilisateurs (ex: data


mart du marketing)
Data warehouse virtuel
Un ensemble de vues dfinies partir de la base

oprationnelle
Seulement un sous ensemble des vues sont

matrialises

17
Architecture des serveurs OLAP
Relational OLAP (ROLAP)
Utilise un SGBD relationnel pour stocker les

donnes ainsi quun middle-ware pour


implmenter les oprations spcifiques de lOLAP
(Oracle, SQL Server,..)
Multidimensional OLAP (MOLAP)
Bas sur un stockage par tableaux (techniques

des matrices creuses)


Indexation rapide de donnes calcules (Hyperion

Essbase)

18
Calcul efficace dun data cube

Un data cube peut tre vu comme un treillis de cubodes


Le plus bas dans la hirarchie est le cubode de base
Le plus haut contient une seule cellule (appel apex)
Combien de cubodes y-a-il dans un cube n
dimensions avec Li niveaux chacune? n
T ( Li 1)
Matrialisation du data cube i 1
Matrialiser chaque cubode (matrialisation totale),
aucun , ou quelques (matrialisation partielle)
Slection des cubodes matrialiser
Bas sur la taille, partage, frquence daccs, etc.

19
Oprations sur les cubes

loprateur cube by est ajout SQL


SELECT item, ville, anne, SUM (montant)
FROM VENTES
CUBE BY item, ville, anne ()
Cest quivalent aux Group-By suivants
(item, ville, anne), (item) (ville) (anne)
(item, ville),(item, anne), (ville, anne),
(item), (ville), (anne)
() (item,ville) (item, anne) (ville, anne)

(item, ville, anne)


20
Exemple: Matrialisation
partielle

Comme donnes de base, nous avons des


informations sur des produits proposs par
des fournisseurs et vendus des clients un
prix PV. Les informations stalent sur 10 ans.
Les analystes voudraient poser des requtes
sur une table o chaque (p,f,c) est associ
une mesure TV (total ventes)
Le produit p propos par f a t vendu c
pour un montant global TV (sur les 10 ans)

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

Les requtes considres sont de la forme


SELECT <g-attributs>, SUM (<mesure>)
FROM <la table de base>
WHERE <attribut = valeur>
GROUP BY <g-attributs>

SELECT Produit, Client, SUM(TV)


FROM Table
WHERE Client=Toto
GROUP BY (Produit, Client)

22
Exemple
Les vues considres sont de la forme
SELECT <g-attributs>, SUM(<mesure>)
FROM Table
GROUP BY <g-attributs>

Dans lexemple, il y a 8 vues:


Produit, fournisseur, client (6M tuples)

Produit, client (6M)

Produit, fournisseur (0,8M)

Fournisseur, Client (6M)

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

On doit calculer les cubodes A, B, C, AB, BC, AC, ABC et


Supposons que les dimensions A,B et C ont les tailles 40, 400, 4000. La
taille de chaque partition de A,B et C est donc 10, 100 et 1000. Ex:
A:magasins, B: Date,C: Produit et la mesure: #produits vendus
La portion a0b0c0 correspond 1, a1b0c0 correspond 2,
Supposons que lon veuille calculer le cubode BC. Ceci peut se faire en
calculant les cubodes b icj .
Pour calculer b0c0, il faut parcourir les portions 1,2,3,4. Pour b 1c0, on lit
5,6,7,8. Au total, Pour BC, on doit scanner les 64 portions.
Pour calculer les cubodes AC et AB, faut-il rescanner les 64? NON
Quand la portion 1 (a0b0c0) est scanne, on peut en profiter pour
entamer le calcul de a0b0 et a0c0 do le terme Multi-way aggregation.
Donc, en scannant les 64 portions une seule fois chacune, on peut
calculer les 3 cubodes AB, AC et BC

31
Exemple
Les tailles de AB, AC et BC sont resp. 16.10 3, 16.104 et 16.105

En parcourant les portions de 1 64 dans cet ordre, b 0c0 est calcul


en lisant 1,2,3,4 ; b1c0 calcul en lisant 5,6,7,8
a0b0 est calcul en utilisant 1, 17, 33 et 49 (49 portions)
a0c0 est calcul en utilisant 1, 5, 9 et 13 (13 portions)

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

Conclusion: Lordre de prise en compte des dimensions est


important. Il faut trier les plans dans lordre croissant de leur taille
(AB est le plus petit) puis parcourir les portions en tenant compte de
cet ordre. 32
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

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

Table de base Index sur Rgion Index sur Type


Cust Region Type RowIdAsie EuropeAmrique RecID Gross Dtaill
C1 Asie Gross 1 1 0 0 1 1 0
C2 Europe Dtaill 2 0 1 0 2 0 1
C3 Asie Dtaill 3 1 0 0 3 0 1
C4 AmriqueGross 4 0 0 1 4 1 0
C5 Europe Dtaill 5 0 1 0 5 0 1
35
Indexing OLAP Data: Index de
jointure
Index de jointure : JI(R-id, S-id) o
R (R-id, ) S (S-id, )
En gnral, un index associe une valeur
une liste dId denregistrements
matrialise la jointure dans un fichier JI

pour acclrer lexcution de la jointure


Dans les data warehouses, un index de
jointure relie des valeurs de dimensions
des lignes de la table de faits.
Ex. Table de faits: Sales et 2

dimensions ville et produit


Un index de jointure sur ville

maintient pour chaque ville une liste


de ID-enregs de tuples concernant
des ventes dans la ville en question
Les index de jointure peuvent tre

partags par plusieurs dimensions

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

Data Cube API

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

Anda mungkin juga menyukai