Vous êtes sur la page 1sur 18

Laboratoire d’Informatique Scientifique et Industrielle

École Nationale Supérieure de Mécanique et d’Aérotechnique


1, avenue Clément Ader - BP 40109 - 86961 Futuroscope cedex - France

Fragmentation Primaire et Dérivée: Étude de


Complexité, Algorithmes de Sélection et
Validation sous ORACLE10g

Kamel Boukhalfa, Ladjel Bellatreche et Pascal Richard


Université de Poitiers - LISI/ENSMA
{boukhalk, bellatreche, richardp}@ensma.fr
Contexte: Optimisation des entrepôts de
données relationnels
Table de Table de dimension
dimension
Schéma en étoile
Code_l
Requêtes de Jointure en Etoile Store_l
Retailer_l Class_l
Table de faits Group_l
(RJE) Sexe_l
Age_l
Family_l
Line_l
Nationality_l Division_l
Jointures entre la table des Type_l Customer_l
10 000
Product_l
faits et les tables de 1 000 000
Channel_l
Table de dimension
Time_l
dimension Table de dimension
UnitsSold
DollarSales
DollarCost
Sélections sur les tables de 2 230 740 000 Base_l
all_l
dimensionhorizontale est bien
Fragmentation
Tid
90
Year_l
adaptée pour les requêtes de Quarter_l Schéma en étoile
Month_l
jointure en étoile

60

2
Fragmentation horizontale et les requêtes de
jointure en étoile (I)
Fragmentation horizontale primaire (FHP)
Fragmenter une table en utilisant les prédicats de sélection définis
sur cette table
Prédicat : Attribut θ Valeur, θ ∈{=,<, ≤, >, ≥,} et valeur ∈Domaine(Attribut).
Exemple: Client (Client_id, Nom, Ville)
− Client1 : σ Ville=‘ Poitiers’(Client)
Client1
− Client2 : σ Ville=‘ Paris’(Client), Client Pictaviens

Client2
Parisiens

Impact de la FHP sur les RJEs


Optimisation des sélections définies sur les tables de dimension

3
Fragmentation horizontale et les
requêtes de jointure en étoile (II)

Fragmentation horizontale dérivée (FHD)


Fragmenter une table (S) selon des attributs d’une autre
table (T) : (existence de lien entre S et T)
− Ventes(Client_id, Produit_id, Date, Quantité)
− Ventes1=Ventes Client1 Client1 Ventes1
Pictaviens
− Ventes2=Ventes Client2
Ventes2
Client2
Parisiens
Impact de la FHD sur RJEs
Optimisation de la jointure entre S et T

4
Forte adoption de la FH par les
SGBD commerciaux

1997 1999 Hash 2001


Range Range-Hash List
Range-List

8 8i 9i 9i R2

Range-Range
List-Range
List-List
List-Hash
Référence
2003
2007 Virtual Column
Index Compression
Index Locaux
Globaux Partition
Hash Adviser

10g 10g R2 11g ?

5
PLAN

Démarche de fragmentation d’un entrepôt


Problème de sélection d’un schéma de fragmentation
Formalisation
Complexité

Algorithme de Hill Climbing


Expérimentations
Validation sous Oracle
Conclusion et perspectives

6
Notre démarche de fragmentation

1. Fragmenter (virtuellement/physiquement) des tables de


dimension en utilisant la fragmentation primaire
2. Fragmenter la tables des faits (en utilisant les schémas de
fragmentation des tables de dimension)
Exemple VENTE1 CLIENT1
PRODUIT
Age ≤ 18
VENTE2 CLIENT2
18 < Age ≤ 30
TEMPS CLIENT3
VENTE3
CLIENT 30 < Age ≤ 40
VENTE4 4
Age > 40

Explosion du nombre de fragments


k
N = ∏
i=1
Mi Mi : nombre de fragments de la table de dimension Di
k : nombre de tables de dimension fragmentées
7
Représentation d’un schéma de
fragmentation

Décomposition des domaines des attributs de fragmentation en sous


domaines
Codage d’un schéma de fragmentation Age<18 18-30 30-45 45-60 >60
Age 0 1 0 1 2
Exemple M F
Genre 0 0
Trois attributs de dimension: été automne hiverprintemps
Age, Genre, Saison Saison 0 0 0 1
Les tables sont fragmentées comme suit Partition P0 Partition P1

Table Client en 3 fragments sur Age (Genre n’est


pas utilisé)
–Client1 : Age <18 OU 30≤Age<45 Table Ventes fragmentée
–Client2 : 18≤Age<30 OU 45≤Age<60 en :
–Client 3 : Age≥60 3x2=6 fragments
Table temps en 2 fragments sur Saison
–Temps 1 : Saison=été OU automne OU hiver
–Temps2 : Saison=printemps 8
Fragmentation Dirigée par le Nombre de
Fragments
: Formalisation
Entrées
Entrepôt de données composé de
Un ensemble D de tables de dimension D={D1, D2, …, Dd}
Une table des faits F
Charge de requêtes les plus fréquentes Q={Q1, Q2, …, Qm}
W : seuil (fixé par l’administrateur)
Sorties :
Ensemble D’⊆ D des tables de dimension fragmentées
Ensemble de N fragments de faits F1, F2, …, FN
Objectifs :
Réduire le temps d ’exécution de Q
N≤W

9
NP-complétude de notre
Problème
Problème de fragmentation horizontale à un seul
domaine (PFHSD)
Une seule table de dimension
Un seul attribut A
Réduction à partir du problème 3-Partition
3-Partition NP-Complet
PFHSD NP-Complet
Notre problème de fragmentation est plus compliqué
Plusieurs tables de dimension
Plusieurs attributs par table de dimension

10
Algorithme de Sélection: Hill
Climbing
Principe
1. Générer une solution initiale
2. Améliorer itérativement cette solution
Age0 1 0 1 2 Merge(P0,P2, Age, SF) Age 0 1 0 1 0
Mesure de Qualité
Genre 0 0 d’une Solution Genre 0 0
Saison
Modèle 0 estimant
coût 0 0 1 le nombre d’entrées-sortiesSaison 0 l’exécution
lors de 0 0 1 des
requêtes.
6 fragments 4 fragments

Solution initiale
Algorithme d’affinité
Sous
0 1 0 1 0
Age
Split(P0,
domaines sont groupés selonGenre,
Age 0 1 0 1 0
SF’)(fréquence d’utilisation)
l’affinité
0 0
Genre Genre 0 1
Amélioration
Saison
0 0 0 1 Saison
0 0 0 1
Merge4 fragments 8 fragments

Fusionner deux partitions en une seule.


Split
Eclater une partition de sous domaines en deux partitions
11
11
Expérimentation(I)

1. Théorique : Modèle de coût


2. Validation sous Oracle

DataSet : Requêtes : Algorithmes


Benchmark APB-1 60 requêtes
1 Table de faits (24 786 40 prédicats de Hill Climbing
000 ) sélection Algorithme génétique
4 tables de dimension 12 attributs de sélection Recuit Simulé

HC AG RS Buffer=100 HC AG RS Buffer=100
W=100
31

Millions
M illio n s

60

50 E/S 27
E /S

40
23
30

19
20
100 200 300 400 500
10 20 30 40
W
Nombre de prédicats

Performance vs Nombre de prédicats Effet du seuil W 12


Expérimentation(II)

W=100 Buffer=100
HC AG RS
W=100
450
31
M illions

400
30
350
29
300

T em p s(s)
28 250
E /S

27 200
26 150
25 100
24 50
20 40 60 80 100 120 140 160 180 200 0
Buffer HC RS AG

Effet du buffer sur la performance Temps d’exécution

45
M illio n s

40
60

Millions
35
50
30

25 40

20

E/S
30
15
20
10

5 10

0
0
P T C CH PT PC PCH TC TCH CCH PTC PTCH PCCH TCCH PTCCH Y M Q YM YQ MQ YMQ
1 table 2 table 3 table 4 table 1 attribut 2 attributs 3 attributs

Choix des tables de dimension Choix des attributs de dimension

13
Validation sous Oracle(I)

Problèmes rencontrés
FHP sur n (n>2) attributs n’est pas supportée.
FHD sur (m >1) tables de dimension n’est pas supportée.

Solutions
1. Méthode d’implémentation de la FHP (ajout d’une nouvelle
propriété)
2. Méthode d’implémentation de la FHD (vues matérialisée)
Nécessité de réécrire les requêtes sur les schémas fragmentés
Identifier les fragments valides pour chaque requête
Réécrire la requête sur ces fragments

14
Validation Sous Oracle(II)

Implémentation de la FHP sur plusieurs attributs


Fragmentation de la table Client sur Age, Sexe, Ville
Age : Age<26, 26≤Age≤60, Age>60 Range
Sexe : M, F Range-List
Ville : Poitiers, Paris, Nantes ?
Clients masculins ayant moins de 26 ans habitant Poitiers

RIDC CID Nom Age Sexe Ville ColC


6 616 Gilles 15 M Poitiers 1
Client 1 111 Pascal 20 M Poitiers 1
Sex
RIDC CID Nom Age Ville ColC
e
6 616 Gilles 15 M Poitiers 1 RIDC CID Nom Age Sexe Ville ColC
5 515 Yves 25 F Paris 4 5 515 Yves 25 F Paris 4
4 414 Patrick 33 M Nantes 9
RIDC CID Nom Age Sexe Ville ColC
3 313 Didier 50 M Nantes 9
4 414 Patrick 33 M Nantes 9
2 212 Eric 40 F Poitiers 10
3 313 Didier 50 M Nantes 9
1 111 Pascal 20 M Poitiers 1
RIDC CID Nom Age Sexe Ville ColC
2 212 Eric 40 F Poitiers 10
15
Validation sous Oracle(II)
Vente
Implémentation de la FHD en RIDS CID PID s
TID Montant ColF
1-1
utilisant plus d’une table de 1
2
616
616
106
106
11
66
25
28 1-2

dimension 3
4
616
515
104
104
33
11
50
10
1-1
4-1
Client 5 414 105 66 14 9-2
6 212 106 55 14 10-2
RID CID Sex Col
C CREATE
Nom Age
e
Ville MATERIALIZED
Poitier C
VIEW V 7 111 101 44 20 1-2
6 616Gilles 15M 1 8 111 101 33 27 1-1
5 515 AS F sParis 4
Yves 25 9 212 101 11 100 10-1
Patric
4 414
k
SELECT
33M Nantes v.CID,
9 v.PID, v.TID, Montant, Col ||'
-'
10
11
||Col as ColF
313
414
102
102
11
C11
200
102 T
9-1
9-1
3 313Didier 50M Nantes 9
2 212
FROM
Eric 40 F
Ventes
Poitier
10
v, Client c, Temps t 12 414 102 55 103 9-2
4-2
1 111
Pasca
l
WHERE
20M
s
s
v.CID=
Poitier
1 c.CID 13
14
515
515
102
103
66
55
100
17 4-2

Temps AND v.TID = t.TID 15 212 103 44 45 10-2


16 111 105 66 44 1-2
Trimestr Col
RIDT TID Mois Année 17 212 104 66 40 10-2
Janvie e C
6 11 2003 Q1 1 18 515 104 22
Montan 20 4-1
rFévrie RIDS CID PID TID ColF
5 22 2003 Q1 1 19 616 104 t 22 20 1-1
r Ventes effectuées durant le 1 616
20 106
616 11
104 5525 20 1-1 1-2
4 33 Mars 2003 Q1 1
premier trimestre par des clients 3 616
21 104
212 33
105 1150 10 1-1 10-1
3 44 Avril 2003 Q2 2
masculins ayant moins de 26 8 22
111 212
101 105
33 4427 10 1-1 10-2
2 55 Mai 2003 Q2 2
ans et habitant Poitiers 19 23
616 212
104 105
22 55
20 18 1-1 10-2
1 66 Juin 2003 Q2 2 24 212 106 11 18 10-1
25 313 105 66 19 9-2
26 313 105 22 17 9-1
27 313 106 11 15 9-1
16
Validation Sous Oracle (III)

Architecture Entrepôt global


Q Module de SF Module de Scripts
DataSet Sélection de SFH fragmentation
(AG,RS,HC)
W

Fragments Horizontaux
Q’
Module de
Q réécriture

AF RS AG HC

Résultats Millions
24,02

20,76 21,43
25
17,60
20
Temp(ms)

15

10

17
Conclusion et perspectives

Proposition d’une approche de fragmentation dans les


ED
Étude de complexité
Proposition d’un Algorithme Hill Climbing
Validation Théorique
Validation sous Oracle

Fragmentation mixte.

18

Vous aimerez peut-être aussi