• Aucun résultat trouvé

Cycle de déploiement des entrepôts de données parallèles

Exemple 1. Soit la table Client (idClient Nom, Ville, Sexe) partitionnée comme suit

2.1.3 Allocation de données

2.1.3.1.1 Travaux existants dans le contexte parallèle

2.1. Les étapes de la phase de déploiement d’un EDP

Le travaux proposés dans le contexte parallèle se basent sur les trois stratégies basiques de placement des données( round-robin, par hachage et par intervalle) ainsi que leurs variantes.

2.1.3.1.1.1 Placement circulaire (round-robin ) .

Cette méthode round-robin place les tuples en fonction de leur numéro d’ordre. La première donnée sera placée sur le premier processeur. La seconde sur le deuxième et ainsi de suite jusqu’à placer la nouvelle donnée sur le dernier processeur. D’une manière générale, le i ième tuple de la relation est alloué sur le disque numéro i mod n où n représente le nombre de disques. L’intérêt majeur de cette méthode est la distribution uniforme des tuples. Ainsi, elle garantit un bon parallélisme des entrées/sorties lors de la lecture des relations. Elle n’a cependant pas d’intérêt pour les relations intermédiaires (sauf si elles sont stockées sur disque).

Figure 2.15 – Exemple de placement circulaire.

2.1.3.1.1.2 Placement par hachage (hash placement) .

La méthode de partitionnement par hachage, illustrée dans la figure 2.16, distribue l’en-semble des tuples en utilisant une fonction de hachage h sur un enl’en-semble d’attributs. Cette fonction retourne le numéro du nœud dans lequel le tuple sera rangé. Cette méthode génère des fragments de taille différente. Elle convient idéalement aux applications qui donnent accès séquentiellement et associativement aux données. L’accès associatif aux tuples ayant une va-leur d’attribut spécifique peut être dirigé vers un seul disque, évitant ainsi le surcoût dû à un lancement de requêtes sur plusieurs disques. Parmi les SGBDs commerciaux qui offrent cette méthode de partitionnement nous repérons Bubba [44], Gamma [56] et Teradata [137].

2.1.3.1.1.3 Placement par intervalle (range Partitionning) . Cette stratégie, illus-trée dans la figure 2.17, distribue les tuples d’une table en fonction de la valeur d’un ou de plusieurs attributs, formant alors une valeur unique dite clé, par rapport à un ordre total de l’espace des clés. Les attributs formant la clé sont surnommés alors attributs de partitionnement ou clés de partitionnement. La table partagée est dite ordonnée. Cette méthode comporte en deux phases :

Figure 2.16 – Exemple de placement par hachage.

– la première phase permet de diviser l’espace des valeurs des attributs sélectionnés en intervalles, puis chaque intervalle est affecté à un nœud,

– la deuxième phase assigne chaque tuple t au nœud n si les valeurs d’attributs spécifiés du tuple t appartiennent à l’intervalle de n.

Cette technique convient aux requêtes dont le prédicat implique les attributs de partition-nement et donc les requêtes par intervalle. Cependant, le problème majeur est le risque d’avoir une allocation non uniforme des données (toutes les données placées dans une seule partition : problème data placement skew), et une exécution non uniforme dans laquelle toute l’exécution apparaît dans une seule partition, la mauvaise distribution des données ne garantissant pas un équilibre de charge entre les nœuds. Parmi les SGBDs commerciaux qui offrent cette méthode de partitionnement nous repérons Bubba [44], Gamma [56], Oracle [100] et Tandem [73].

Figure 2.17 – Exemple de placement par intervalle.

2.1.3.1.1.4 Travaux de Furtado et al .

Furtado [64] propose une nouvelle stratégie basique de placement de données nommée Node Partitioned Data Warehouses (NPDW). L’idée de base de la stratégie de placement de données

2.1. Les étapes de la phase de déploiement d’un EDP

dimension et à les allouer ensuite sur les nœuds en utilisant une distribution circulaire ou aléatoire. Les tables de petite taille sont répliquées sur tous les nœuds. Les tables de dimension les plus importantes sont fragmentées par hachage selon leurs clés primaires. La table des faits est à son tour partitionnée par hachage en utilisant les clés étrangères. Le choix des attributs de partitionnement est conditionné par la diminution du coût de traitement qui englobe l’ensemble des coûts suivants. [64]

– Le coût de partitionnement (Partitionning Cost) d’une relation consiste à trouver initiale-ment la relation en mémoire secondaire ; diviser la relation en fraginitiale-ments par l’application d’une fonction de hachage sur l’attribut de jointure ;assigner les fragments aux nœuds. Le partitionnement implique le balayage total de la table. En conséquence, le coût de partitionnement est en croissance avec la taille de table.

– Le coût de repartitionnement (Repartitioning Cost) assure la réorganisation. Il applique d’abord une fonction de hachage sur un des différents attributs d’équijointure d’un frag-ment puis il redistribue les fragfrag-ments résultants sur les autres nœuds pour traiter une jointure par hachage.

– Le coût de communication des données (Data Communication Cost) est en croissance avec la taille des données transférées entre les nœuds.

– Le coût de traitement local (Local Processing Cost) dépend typiquement du cas où la jointure est soutenue par une structure auxiliaire comme l’index et la taille des relations participantes à la jointure.

– Le coût de fusion (Merging Cost) est lié à l’application de la requête finale afin de ras-sembler les résultats partiels au niveau du nœud de fusion.

Il est à noter que cette fragmentation ne prend pas en considération les exigences de requêtes de jointure, comme les sélections sur les tables de dimension et les jointures entre la table des faits et les tables de dimension.

2.1.3.1.2 Travaux existants dans le contexte distribué Dans la littérature, plusieurs solutions ont été proposées dans le contexte distribué. Dans ce qui suit, nous citons quelques-uns.

2.1.3.1.2.1 Travaux de Huang et Chen .

Les auteurs ont proposé deux heuristiques [63], à base d’un modèle simple et complet qui reflète le comportement de la transaction dans une base de données distribuée, pour définir une allocation quasi optimale telle que le coût de la communication est minimisé. Le premier algorithme comprend trois étapes. Il construit tout d’abord la table d’allocation des fragments depuis la Matrice de Recherche des fragments RM et la matrice des fréquences F req. Au niveau de la deuxième étape, les auteurs cherchent un compromis entre le coût de mise à jour de la requête et le coût du déplacement de la copie du fragment. Cette étape est répétée jusqu’à ce qu’il y ait plus de bénéfice, sauf si la copie en cours est la seule dans le réseau. La dernière étape cherche si un fragment n’est pas encore alloué, ce qui lance un petit traitement pour le choix d’un site parmi les candidats pour ce fragment. Le deuxième algorithme est constitué également de trois étapes. La première étape est identique à celle du premier algorithme. Par contre en deuxième étape, les entrées de la table d’allocation initiale sont analysées et pondérées. Le

poids de chaque entrée est défini comme étant le montant de données sauvé qui est accédé par les requêtes de mise à jour quand une copie du fragment est enlevée d’un site. Ce poids est calculé depuis la matrice des fréquences F req, la matrice de mise à jour U M , la matrice de sélectivité SEL et la taille du fragment (Fj). A chaque fois, l’algorithme sélectionne le plus grand poids des entrées non explorées et il vérifie si le bénéfice est supérieur au coût. La copie du fragment est alors déplacée du site à moins que cette copie soit la seule dans le réseau. L’étape 2 est répétée jusqu’à ce que toutes les entrées soient parcourues. Les deux algorithmes ont la même complexité O (nm2q) où n, m et q représentent le nombre de fragments, le nombre de sites et le nombre de requêtes respectivement. Les résultats de l’expérimentation montrent que dans les deux algorithmes l’heuristique est optimale, mais le premier algorithme est plus efficace que le deuxième, dans la plupart des cas.

2.1.3.1.2.2 Corcoran et al .

Les auteurs utilisent un algorithme génétique pour résoudre le problème d’allocation de données formalisé comme un problème combinatoire [45]. Ils définissent une fonction objective pour mesurer le coût de la transmission entre les sites résultant de chaque solution. Une pénalité est appliquée sur la solution qui ne satisfont pas la contrainte de stockage

2.1.3.1.2.3 Travaux de Ahmad et al .

Les auteurs proposent une approche basée sur les graphes de dépendance entre fragments de façon à réduire les coûts de transfert de données [1]. Ils suggèrent l’utilisation des algorithmes évolutionnaires comme l’algorithme génétique, l’évolution simulée (Simulated Evolution), le re-cuit moyen des champs (Mean Field Annealing) et la recherche aléatoire du voisinage (Random neighbourhood Search) pour la sélection de la meilleure configuration de l’allocation. L’objectif des algorithmes est de minimiser le coût d’exécution d’une charge de requêtes. L’algorithme

SE s’avère le meilleur en qualité de solution et temps de calcul en générant plusieurs solutions

optimales pour tous les pourcentages de coût; GA vient en deuxième position et M F A et RS génère relativement peu de solutions optimales ou proches de l’optimale. Par conséquent, les performances de RS et M F A se dégradent à de gros volume de données par contre SE et GA sont plus robustes. Dans le cas de la recherche exhaustive RS, est bien plus efficace en temps de traitement que SE et GA, et légèrement plus rapide que MFA. En termes de temps de réponse aux requêtes et temps d’exécution de l’algorithme, il n’y a aucun algorithme qui les satisfait en même temps. En général, RS a un temps de complexité réduit ce qui le rend rapide alors que SE est lent. L’algorithme RS est un bon choix du point de vue temps d’exécution et dégradation minimale de l’optimalité de la solution. D’une autre part, GA peut être un meilleur choix quand l’efficacité et la qualité de solution sont prises en compte en priorité.

2.1.3.1.2.4 Travaux de Rosa Karimi Adl et al .

Les auteurs [88] utilisent l’optimisation par colonie de fourmis pour résoudre le problème d’allocation de données. L’objectif est de concevoir un schéma d’allocation des données efficace qui minimise le temps total de la charge de requêtes avec le respect de la contrainte de stockage des sites. Les tests expérimentaux montrent que l’algorithme proposé est capable de produire

2.1. Les étapes de la phase de déploiement d’un EDP

des solutions quasi-optimales dans un délai raisonnable.

2.1.3.1.2.5 Travaux de Sarathy et al .

Les auteurs [126] considèrent le problème de l’allocation des fragments comme un modèle non linéaire entier à contraintes qui est prouvé NP-difficile. Pour résoudre le problème, ils dé-veloppent un algorithme basé sur la linéarisation et l’optimisation sous-gradient, pour résoudre ce modèle. Menon [103] a étendu le modèle entier de [100] en incluant des contraintes sur la capacité de stockage et le traitement Dans le même temps, il a simplifié les formulations de la programmation en nombres entiers pour étudier la version non redondante du problème d’allo-cation de fragment. Tant Sarathy et Menon de simplifier le problème en considérant un coût de transport constant entre une paire de sites. Par conséquent, le problème de la minimisation du coût total de la transmission des données est le problème de minimisation de l’ensemble des données transmises.

2.1.3.1.2.6 Travaux de Hababeh et al .

Les auteurs présentent une méthode qui intègre les sites en groupe pour atteindre la haute performance [76]. L’objectif est de minimiser le nombre d’E/S et le coût de communication entre les sites. Une méthode de classification est utilisée, elle consiste à grouper les sites en cluster pout réduire le coût de communication entre les sites. Ainsi, la disponibilité et la fiabilité est atteintes car plusieurs copies des fragments sont allouées.

2.1.3.1.2.7 Travaux de Maik Thiele et al .

Les auteurs s’intéressent au problème d’allocation de données pour un entrepôt de données en temps réel [139]. Ils considèrent une charge de requêtes mixtes (requêtes de mise à jour et des requêtes de sélection). Les auteurs considèrent une classe de services à deux objectifs ; l’un basé sur la métrique qualité de service (QoS ) (comme le throughput, le temps de réponse moyen et stretch) et l’autre basé sur la métrique qualité de données (QoD). Ainsi, ils forma-lisent le problème comme étant un problème multi-objectif. Les auteurs assimilent le problème d’allocation à problème de sac à dos avec des contraintes d’inégalités supplémentaires et ils l’ont résolu via un algorithme de programmation linéaire.

2.1.3.2 Bilan et discussion

.

En résumé, les travaux existants s’intéressent à la formalisation du problème d’allocation sans réplication ou à la sélection du meilleur schéma d’allocation. La majorité des approches proposées s’intéresse au placement des objets. Ces approches diffèrent précisément dans le type d’algorithme utilisé (algorithme glouton, dirigé par des méta-heuristiques, dirigé par des techniques de Data Mining). Généralement, un modèle de coût mathématique est utilisé pour sélectionner la meilleure configuration qui minimise le coût d’exécution d’une charge de re-quêtes. Il est à noter que chaque étude vise à minimiser un critère de la fonction objective global du problème d’allocation de données.

En analysant plus les travaux existants, nous constatons que l’allocation a lieu uniquement sur les architectures distribuées sans partage et ses variantes. Plus précisément, la majorité des travaux concernant les bases de données parallèles font recours aux stratégies (et leurs variantes) de placement usuelles citées dans la secion 2.1.3.1.1 et ils n’utilisent aucun modèle de coût pour mesurer la pertinence du schéma déployé.

Le tableau ci-dessous présente une classification des principaux travaux en se basant sur les critères que nous venons de citer.

Plateforme Travaux Problème étudié Unité allouée Algorithme

machine parallèle Placement circulaire Placement Tuples Glouton Placement par intervalle Placement Tuples Glouton

Placement par hachage Placement Tuples Hachage

Furtado [64] Placement Fragment Glouton

distribuée Huang et Chen [63] Placement Fragment Glouton

Corcoran et al [45] Placement Fragment Génétique

Ahmad et al [1] Placement Fragment Graphes

Rosa Karimi Adl et al [88] Placement Fragment Colonie de fourmis Sarathy et al [126] Formalisation Fragment Programation Linéaire Menon et al [103] Formalisation Fragment Programation Linéaire Hababeh et al et al [76] Placement Fragment Classification Maik Thiele et al [139] Formulation+Placement Fragment Multi-objectifs+sac à dos

Tableau 2.2 – Synthèse de comparaison entre les travaux d’allocation.

La figure 2.18 donne une comparaison entre les travaux que nous avons étudiés. Cette comparaison porte sur le problème étudié, les algorithmes de sélection utilisés par chaque travail ainsi que la nature dee la plateforme de déploiement.

Figure 2.18 – Classification du placement de données