Vous êtes sur la page 1sur 16

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

La fragmentation dans les entrepôts de données :


une approche basée sur les algorithmes
génétiques
EDA’05

Ladjel Bellatreche Kamel Boukhalfa


LISI/ENSMA - Université de Poitiers LGP U. Laghouat - ALGERIE
bellatre@ensma.fr k.boukhalfa@mail.lagh-univ.dz
Contexte
2

• Optimiser les requêtes de jointure en étoile (star join query):


– Plusieurs opérations de jointure suivies par des opérations de sélection

• Techniques d’optimisation :
– Vues matérialisées
– Index
– Fragmentation (Oracle)
Exemple de création d’une table fragmentée horizontalement (tuples):
CREATE TABLE sales (acct_no NUMBER(5),
acct_name CHAR(30),
amount_of_sale NUMBER(6),
week_no INTEGER)
PARTITION BY RANGE (week_no)
INTRODUCTION

(PARTITION sales1 VALUES LESS THAN (4) TABLESPACE ts0,


PARTITION sales2 VALUES LESS THAN (8) TABLESPACE ts1,
...
PARTITION sales13 VALUES LESS THAN (52) TABLESPACE ts12)
– Traitement parallèle

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
3
Une classification de techniques d’optimisation
Techniques d’optimisation

- Espace de stockage
- Coût de maintenance

Structures redondantes Structures non redondantes

Traitement
Fragmentation
parallèle
Index Vues matérialisées
Horizontale Verticale

Mono-index Multi-index

Arbre B Index binaire Index de jointure

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
Plan
4

• Problème de sélection de schéma de

fragmentation

• Un algorithme génétique de sélection

• Expérimentations
PLAN

• Conclusion et perspectives

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
5
Comment fragmenter un entrepôt ?

 Fragmentation horizontale est bien adaptée aux


entrepôts de données relationnels
• Méthode :
– Décomposer une (des) table(s) de dimensions en utilisant les
prédicats de sélection définis dans les requêtes fréquentes
 Fragmentation virtuelle ou physique
– Décomposer la table des faits en fonction des schémas de
fragmentation des tables de dimensions
 Fragmentation horizontale dérivée

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
6
Exemple
VENTE1 CLIENT1
PRODUIT
Age  18
VENTE2 CLIENT2

18 < Age  30
TEMPS CLIENT3
VENTE3
30 < Age  40
VENTE4 CLIENT4
Age > 40
 Optimisation des requêtes de jointure
 Parallélisme
 Utilisation des structures redondantes sur un schéma fragmenté
k – CLIENT : 50 fragments sur l’attribut “Etat”
N=
I =1
Mi – TEMPS : 48 fragments sur l’attribut “Mois”
– PRODUIT : 100 fragments sur l’attribut "type de produit".
- Mi : le nombre de fragments de la table N=: 50 × 48 × 100 = 240 000 fragments de la table des faits
de dimension Di
- k : nombre de tables de dimensions fragmentées
Impossibilité de gérer et maintenir ce grand nombre de fragments

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
7 Problème de sélection de schéma de fragmentation

• Entrées :
– Schéma en étoile S (F, D1, D2, …, Dk)
– Ensemble de requêtes fréquentes Q
– Contrainte de maintenance : nombre maximal de fragments de la
table des faits
• Sortie :
– Ensemble de sous-schémas en étoile minimisant le coût
d’exécution de requêtes et satisfaisant la contrainte de
maintenance

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
8
Algorithme génétique
Extraction de prédicats Requêtes
de fragmentation fréquentes
- Fréquence d’accès
Génération des sous - Facteurs de sélectivité
domaines

Codage des individus

Fonction d’évaluation
Sélection

Modèle de
Croisement
coût

Mutation

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
9
Codage
Trois attributs de fragmentation :
Client.Sexe, Produit.Gamme, Temps.Saison
Domaines des attributs de fragmentation :
Sexe Gamme Saison
F M T A P E A H

Codage d’un individu : Client : 2 fragments


Produit : 2 fragments
1 2 1 2 1 2 2 1 Saison : 2 fragments
Clauses définissant les fragments de la table des faits :
F1: Sexe =‘F’ & Gamme = ‘T’ & Saison = ‘P’ or ‘H’
F2: Sexe =‘F’ & Gamme = ‘T’ & Saison = ‘E’ or ‘A’
F3: Sexe = ‘F’ & Gamme = ‘A’ & Saison = ‘P’ or ‘H’
F4: Sexe = ‘F’ & Gamme = ‘A’ & Saison = ‘E’ or ‘A’
F5: Sexe = ‘M’ & Gamme = ‘T’ & Saison = ‘P’ or ‘H’
F6: Sexe = ‘M’ & Gamme = ‘T’ & Saison = ‘E’ or ‘A’
F7: Sexe = ‘M’ & Gamme = ‘A’ & Saison = ‘P’ or ‘H’
F8: Sexe = ‘M’ & Gamme = ‘A’ & Saison = ‘E’ or ‘A’

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
10
Sélection & croisement

Sexe Gamme Saison Evaluation Sélection Croisement

1 1 2 1 1 1 2 3 4 0.6 1 52
2 1 1 1 2 1 2 2 3 0.52 1 15
3 1 2 1 1 1 1 2 2 0.33 0
4 1 2 1 2 1 2 3 3 0.45 0
5 1 1 1 2 1 1 1 1 0.65 1 12
Croisement de l'individu 1 avec le 5
1 2 1 1 1 2 3 4 1 1 1 2 1 1 3 4
1 1 1 2 1 1 1 1 1 2 1 1 1 2 1 1

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
11
Schéma final de fragmentation

Evaluation

1 1 1 2 1 1 3 4 0.72
1 2 1 1 1 2 1 1 0.45

Gamme = ‘T’ & Saison = ‘P’ or ‘E’


Gamme = ‘T’ & Saison = ‘A’
Gamme = ‘T’ & Saison = ‘H’
Gamme = ‘A’ & Saison = ‘P’ or ‘E’
Gamme= ‘A’ & Saison = ‘A’
Gamme = ‘A’ & Saison = ‘H’

 Attribut Sexe n’est pas pris en considération dans le processus de fragmentation

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
12
Expérimentation (I)
Custlevel Prodlevel
Code_level
Store_level
Class_level
Retailer_level
Group_level
Family_level
900 Line_level
Actvars Division_level

Timelevel Customer_level 9000


Product_level
Tid Channel_level
Year_level Time_level
UnitsSold
Chanlevel
Quarter_level
DollarSales Base_level
Month_level DollarCost all_level
24 24786000
9
EXPERIMENTATION

Taux de croisement : 70%


• Modèle de coût calculant le nombre d’E/S
Taux de mutation : 30% -----> 6%
• Tables de dimensions stockées en mémoire
Nombre total de générations : 1500
Nombre d’individus par génération : 40

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
13
Expérimentation (II)
Effet du nombre d’attributs de fragmentation sur la performance

350000

300000

250000

200000
E/S RNU
150000
RU
100000

50000

0
2 3 4 5 6 7 8 9
nombre d'attributs
EXPERIMENTATION

Effet du type de la répartition sur la performance

Sans
500000 Fragmentation

400000

300000
E/S RU
200000 RNU
100000

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
14
Expérimentation (III)
E/S par rapport au nombre de tables de dimension fragmentées

160000
140000
120000
100000
80000 RNU
RU
60000
40000
20000
0
1 2 3 4

Effet du seuil sur la performance


EXPERIMENTATION

14000

12000

10000

8000
RNU
6000 RU
4000

2000

0
500 1000 2000 3000 4000 5000 6000 7000 8000

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
15
Expérimentation (V)
Seuil: 50 - Résultat : 48 fragments
Code_level 0 0 0 0 1 Fragment Prodlevel
Group_level 0 0 1 Fragment Prodlevel
Family_level 2 2 3 3 3 2 Fragments Prodlevel
Line_level 0 0 1 Fragment Prodlevel
Division_level 2 1 2 2 2 Fragments Prodlevel
Year_level 0 0 1 Fragment Timelevel
Month_level 1 7 7 10 0 6 7 9 6 6 7 7 6 Fragments Timelevel
Retailer_level 0 0 0 0 1 Fragment Custlevel
All_level 3 3 3 2 2 2 Fragments Chanlevel

Seuil: 2000 - Résultat : 2016 fragments


EXPERIMENTATION

Code_level 0 1 2 0 3 Fragments Prodlevel


Group_level 0 1 2 Fragments Prodlevel
Family_level 1 2 0 2 3 4 Fragments Prodlevel
Line_level 0 0 1 Fragment Prodlevel
Division_level 1 1 0 0 2 Fragments Prodlevel
Year_level 0 0 1 Fragment Timelevel
Month_level 5 10 7 4 10 2 4 0 3 7 4 2 7 Fragments Timelevel
Retailer_level 1 1 1 2 2 Fragments Custlevel
All_level 1 0 2 0 2 3 Fragments Chanlevel

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON
16
Conclusion & perspective

• Problème de sélection d’un schéma de


fragmentation

• Algorithme génétique de sélection

• Évaluation de notre approche

Paramétrage de l’algorithme génétique (auto-


administration d’un entrepôt)
CONCLUSION

Application du même algorithme pour la sélection


des index de jointure binaire

Ladjel Bellatreche - Kamel Boukhalfa


EDA’05 - LYON

Vous aimerez peut-être aussi