Laboratoire dInformatique Scientifique et Industrielle cole Nationale Suprieure
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 EDA’ 05 La fragmentation dans les entrepôts de données : une approche basée sur les algorithmes génétiques • • • Ladjel Bellatreche LISI/ENSMA - Université de Poitiers bellatre@ensma. fr Kamel Boukhalfa LGP U. Laghouat - ALGERIE 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 INTRODUCTION – 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) (PARTITION sales 1 VALUES LESS THAN (4) TABLESPACE ts 0, PARTITION sales 2 VALUES LESS THAN (8) TABLESPACE ts 1, . . . PARTITION sales 13 VALUES LESS THAN (52) TABLESPACE ts 12) – 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 non redondantes Structures redondantes Fragmentation Index Vues matérialisées Horizontale Multi-index Mono-index Arbre B Index binaire Index de jointure Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON Verticale Traitement parallèle
Plan 4 • Problème de sélection de schéma de fragmentation • Un algorithme génétique de sélection PLAN • Expérimentations • 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
Exemple 6 PRODUIT VENTE 1 Age 18 VENTE 2 TEMPS CLIENT 1 CLIENT 2 18 < Age 30 VENTE 3 CLIENT 3 30 < Age 40 VENTE 4 CLIENT 4 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” – TEMPS : 48 fragments sur l’attribut “Mois” - Mi : le nombre de fragments de la table – PRODUIT : 100 fragments sur l’attribut "type de produit". de dimension Di N=: 50 × 48 × 100 = 240 000 fragments de la table des faits - k : nombre de tables de dimensions fragmentées N= Mi I =1 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, D 1, D 2, …, 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
Algorithme génétique 8 Extraction de prédicats de fragmentation Génération des sous domaines Requêtes fréquentes - Fréquence d’accès - Facteurs de sélectivité Codage des individus Sélection Croisement Fonction d’évaluation Modèle de coût Mutation Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON
Codage 9 Trois attributs de fragmentation : Client. Sexe, Produit. Gamme, Temps. Saison Domaines des attributs de fragmentation : Sexe F M Gamme T A P Saison E A H Codage d’un individu : 1 2 1 2 2 1 Client : 2 fragments Produit : 2 fragments Saison : 2 fragments Clauses définissant les fragments de la table des faits : ÙF 1: Sexe =‘F’ & Gamme = ‘T’ & Saison = ‘P’ or ‘H’ F 2: Sexe =‘F’ & Gamme = ‘T’ & Saison = ‘E’ or ‘A’ F 3: Sexe = ‘F’ & Gamme = ‘A’ & Saison = ‘P’ or ‘H’ F 4: Sexe = ‘F’ & Gamme = ‘A’ & Saison = ‘E’ or ‘A’ F 5: Sexe = ‘M’ & Gamme = ‘T’ & Saison = ‘P’ or ‘H’ F 6: Sexe = ‘M’ & Gamme = ‘T’ & Saison = ‘E’ or ‘A’ F 7: Sexe = ‘M’ & Gamme = ‘A’ & Saison = ‘P’ or ‘H’ F 8: Sexe = ‘M’ & Gamme = ‘A’ & Saison = ‘E’ or ‘A’ Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON
Sélection & croisement 10 Sexe 1 2 3 4 5 1 1 1 Gamme 2 1 2 2 1 1 1 1 2 2 Saison 1 1 1 2 2 1 3 2 2 3 1 Evaluation Sélection 4 3 2 3 1 0. 6 0. 52 0. 33 0. 45 0. 65 1 1 0 0 1 Croisement 52 15 12 Croisement de l'individu 1 avec le 5 2 1 1 2 1 2 3 4 1 1 1 1 2 1 1 Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON 2 1 1 2 3 1 4 1
11 Schéma final de fragmentation Evaluation 1 1 1 2 3 1 4 1 0. 72 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
Expérimentation (I) 12 Prodlevel Custlevel Code_level Class_level Group_level Family_level Line_level Division_level Store_level Retailer_level 900 Actvars Timelevel Tid Year_level Quarter_level Month_level EXPERIMENTATION 24 Customer_level Product_level Channel_level Time_level Units. Sold Dollar. Sales Dollar. Cost 24786000 Taux de croisement : 70% Taux de mutation : 30% -----> 6% Nombre total de générations : 1500 Nombre d’individus par génération : 40 9000 Chanlevel Base_level all_level 9 • Modèle de coût calculant le nombre d’E/S • Tables de dimensions stockées en mémoire Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON
13 Expérimentation (II) EXPERIMENTATION Effet du nombre d’attributs de fragmentation sur la performance Effet du type de la répartition sur la performance Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON
Expérimentation (III) EXPERIMENTATION 14 Effet du seuil sur la performance Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON
Expérimentation (V) 15 EXPERIMENTATION Seuil: 50 - Résultat : 48 fragments Code_level 0 0 Group_level 0 0 Family_level 2 2 Line_level 0 0 Division_level 2 1 Year_level 0 0 Month_level 1 7 7 10 Retailer_level 0 0 All_level 3 3 3 2 1 Fragment Prodlevel 3 3 3 2 Fragments Prodlevel 1 Fragment 2 2 Prodlevel 2 Fragments Prodlevel 1 Fragment Timelevel 0 6 7 9 6 6 7 7 6 Fragments Timelevel 1 Fragment Custlevel 2 2 Fragments Chanlevel Seuil: 2000 - Résultat : 2016 fragments Code_level 0 1 2 0 Group_level 0 1 Family_level 1 2 Line_level 0 0 Division_level 1 1 Year_level 0 0 Month_level 5 10 7 4 Retailer_level 1 1 1 2 All_level 1 0 2 0 3 Fragments Prodlevel 2 Fragments Prodlevel 0 2 3 4 Fragments Prodlevel 1 Fragment 0 0 Prodlevel 2 Fragments Prodlevel 1 Fragment Timelevel 10 2 4 0 3 7 4 2 7 Fragments Timelevel 2 Fragments Custlevel 2 Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON 3 Fragments Chanlevel
Conclusion & perspective 16 • Problème de sélection d’un schéma de fragmentation • Algorithme génétique de sélection • Évaluation de notre approche CONCLUSION Paramétrage de l’algorithme génétique (autoadministration d’un entrepôt) Application du même algorithme pour la sélection des index de jointure binaire Ladjel Bellatreche - Kamel Boukhalfa EDA’ 05 - LYON
- Slides: 16