WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Stratégies d'optimisation de requêtes SQL dans un écosystème Hadoop

( Télécharger le fichier original )
par Sébastien Frackowiak
Université de Technologie de COmpiègne - Master 2 2017
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

4.2.4 Explication d'une jointure entre deux tables

Modifions une dernière fois notre requête, cette fois-ci en faisant apparaître une jointure et expliquons-la.

EXPLAIN

SELECT t1.field1 FROM z_database1.table1 t1

INNER JOIN z_database1.table2 t2 ON t1.field1=t2.field1

WHERE t1.field1='123'

GROUP BY field1

Le principe de l'EXPLAIN ayant déjà été expliqué, une représentation en schéma suffira pour comprendre les différentes étapes.

· Les dépendances entre étapes :

Figure 10 : graphe des dépendances d'une requête avec jointure et agrégation

Tout d'abord, nous remarquons la présence d'une étape « racine » de type « Conditional Operator » (Stage-6).

Cette étape est générée du fait de la présence d'une jointure. Elle modifiera la manière dont sera réalisée cette jointure (Stage-1) si certaines conditions sont remplies (nous le verrons dans le prochain chapitre consacré à l'optimisation).

· Le plan d'étapes :

Figure 11 : processus de traitement MapReduce d'une requête SQL avec jointure

- Stage-1

Par défaut, la jointure s'exécutera de manière commune(Common-Join), il y aura une phase « Map » durant laquelle les Mappers seront chargées de balayer intégralement les deux tables à joindre pour constituer un ensemble de clé/valeur. La clé choisie sera celle de la jointure indiquée par l'utilisateur.

Ensuite, dans la phase « Partition & Sort », chaque Mapper aura à répartir l'ensemble des couples clé / valeurdes deux tables dans les partitions qui leur auront été attribuées, puis à appliquer un tri par clé.

Figure 12 : phase « Map » d'une jointure sur un Mapper

Dans la phase « Shuffle & Merge & Sort », les partitions identiques de chaque Mapper seront fusionnées entre-elles par les Reducers, puis, un nouveau tri par clé sera appliqué à chaque partition fusionnée.

En fin de traitement, chaque Reducer aura écrit indépendamment sur HDFS, un des fichiers composant la table temporaire qui alimentera la prochaine étape.

Figure 13 : phase « Reduce » d'une jointure sur deux Reducers

- Stage-2

Cette étape est identique à l'exemple précédent, en revanche notons que les données qu'elle considérera sont celles en sortie du Stage-1.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy





Changeons ce systeme injuste, Soyez votre propre syndic





"Il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre"   Paul Eluard