190 likes | 585 Views
Ladjel Bellatreche LISI/ENSMA - Université de Poitiers bellatre@ensma.fr. La fragmentation dans les entrepôts de données : une approche basée sur les algorithmes génétiques. EDA ’05. Kamel Boukhalfa LGP U. Laghouat - ALGERIE k.boukhalfa@mail.lagh-univ.dz.
E N D
Ladjel Bellatreche LISI/ENSMA - Université de Poitiers bellatre@ensma.fr La fragmentation dans les entrepôts de données :une approche basée sur les algorithmes génétiques EDA’05 Kamel Boukhalfa LGP U. Laghouat - ALGERIE k.boukhalfa@mail.lagh-univ.dz
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éehorizontalement (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 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 Contexte INTRODUCTION
Techniques d’optimisation Structures non redondantes Structures redondantes Traitement parallèle Fragmentation Index Vues matérialisées Multi-index Mono-index Arbre B Index binaire Index de jointure Une classification de techniques d’optimisation - Espace de stockage - Coût de maintenance Verticale Horizontale
Problème de sélection de schéma de fragmentation Un algorithme génétique de sélection Expérimentations Conclusion et perspectives Plan PLAN
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 Comment fragmenter un entrepôt ?
k N = Mi - Mi : le nombre de fragments de la table de dimension Di - k : nombre de tables de dimensions fragmentées I =1 Exemple VENTE1 CLIENT1 PRODUIT Age 18 VENTE2 CLIENT2 18 < Age 30 TEMPS CLIENT3 VENTE3 30 < Age 40 CLIENT4 VENTE4 Age > 40 • Optimisation des requêtes de jointure • Parallélisme • Utilisation des structures redondantes sur un schéma fragmenté • CLIENT : 50 fragments sur l’attribut “Etat” • TEMPS : 48 fragments sur l’attribut “Mois” • PRODUIT : 100 fragments sur l’attribut "type de produit". • N=: 50 × 48 × 100 = 240 000 fragments de la table des faits Impossibilité de gérer et maintenir ce grand nombre de fragments
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 Problème de sélection de schéma de fragmentation
Extraction de prédicats de fragmentation Génération des sous domaines Codage des individus Sélection Croisement Mutation Algorithme génétique Requêtes fréquentes - Fréquence d’accès - Facteurs de sélectivité Fonction d’évaluation Modèle de coût
Codage Sexe Gamme Saison F M T A P E A H 1 2 1 2 1 2 2 1 Trois attributs de fragmentation : Client.Sexe, Produit.Gamme, Temps.Saison Domaines des attributs de fragmentation : Codage d’un individu : Client : 2 fragments Produit : 2 fragments 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’
Sélection & croisement 2 1 1 1 2 3 4 1 1 2 1 1 1 1 Sexe Gamme Saison Evaluation Sélection Croisement 1 0.6 1 5 2 1 2 1 1 1 2 3 4 2 0.52 1 1 5 1 1 1 2 1 2 2 3 3 0.33 0 1 2 1 1 1 1 2 2 4 0.45 0 1 2 1 2 1 2 3 3 5 0.65 1 1 2 1 1 1 2 1 1 1 1 Croisement de l'individu 1 avec le 5 1 1 1 2 1 1 3 4 1 2 1 1 1 2 1 1
Schéma final de fragmentation Evaluation 0.72 1 1 1 2 1 1 3 4 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
900 9000 24786000 24 9 Tid Year_level Quarter_level Month_level Store_level Retailer_level Timelevel Chanlevel Prodlevel Custlevel Actvars Customer_levelProduct_level Channel_level Time_level UnitsSold DollarSales DollarCost Code_level Class_level Group_level Family_level Line_level Division_level Base_level all_level Expérimentation (I) EXPERIMENTATION Taux de croisement : 70% Taux de mutation : 30% ----->6% Nombre total de générations : 1500 Nombre d’individus par génération : 40 • Modèle de coût calculant le nombre d’E/S • Tables de dimensions stockées en mémoire
Expérimentation (II) Effet du nombre d’attributs de fragmentation sur la performance EXPERIMENTATION Effet du type de la répartition sur la performance
Expérimentation (III) EXPERIMENTATION Effet du seuil sur la performance
Expérimentation (V) Seuil: 50 - Résultat : 48 fragments EXPERIMENTATION Seuil: 2000 - Résultat : 2016 fragments
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) Application du même algorithme pour la sélection des index de jointure binaire Conclusion & perspective CONCLUSION