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
  

sommaire suivant

Aidez l'hopital de Montfermeil

 
 

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

Sébastien FRACKOWIAK

15/01/2018

SOMMAIRE

SOMMAIRE 1

Remerciements 3

Résumé 4

Liste des figures et des tableaux 5

1 Introduction 7

1.1 Entrepôt et Bases de Données Relationnelles 7

1.2 Entrepôt et Bases de Données Big Data 7

1.3 Problématique 7

2 Hadoop 9

2.1 Histoire 9

2.2 Le composant de stockage (HDFS) 9

2.3 Le composant de traitement (MapReduce) 10

2.3.1 Architecture Hadoop v1 10

2.3.2 Architecture Hadoop v2 11

2.3.3 Le paradigme MapReduce 12

2.4 Discussion 16

2.4.1 Du point de vue HDFS 16

2.4.2 Du point de vue YARN 17

3 SQL sur Hadoop 19

3.1 Hive 19

3.1.1 Histoire 19

3.1.2 Architecture 19

3.2 La commande « EXPLAIN » 20

3.2.1 Explication d'une projection simple 21

3.2.2 Explication d'une projection avec une restriction 23

3.2.3 Explication d'une projection avec une restriction et une agrégation 26

3.2.4 Explication d'une jointure entre deux tables 30

3.3 Discussion 32

3.3.1 Requête avec une restriction 32

3.3.2 Requête avec une agrégation 32

3.3.3 Requête avec une jointure et une agrégation 32

4 Optimisation du SQL sur Hadoop 35

4.1 Optimisation par le réglage ou « tuning » 35

4.1.1 Utiliser Tez 35

4.1.2 Contrôler la taille des fichiers manipulés 37

4.1.3 Agréger en amont 39

4.1.4 Réaliser un « benchmark » significatif 39

4.2 Optimisation par la conception ou « design » 40

4.2.1 Utiliser les tables partitionnées 41

4.2.2 Optimiser les jointures 42

4.3 Discussion 46

5 Conclusion 47

6 Bibliographie 48

7 Annexes 49

7.1 Hadoop 49

7.1.1 Partition & Sort détaillé 49

7.1.2 Définition de la distance entre deux noeuds 49

7.2 SQL sur Hadoop 50

7.2.1 Gérer manuellement le partitionnement dans une requête 50

7.2.2 Comprendre la sérialisation sous Hadoop 50

7.3 Optimisation du SQL sur Hadoop 50

7.3.1 Exemple de WordCount avec Tez 50

7.3.2 Grouper les splits avec Tez 50

REMERCIEMENTS

J'aimerais exprimer toute ma gratitude à la Direction Solution Exploitation de la DSI des Réseaux d'Orange, en particulier Jean-Claude Marcovici, Nadine Poinson, Jean-Marc Pageot et Serge Schembri pour m'avoir donné l'opportunité de suivre ce cursus et les moyens de réaliser ce mémoire.

Je voudrais remercier mon tuteur Stéphane Crozat, pour ses conseils durant la rédaction de ce mémoire et son enseignement en Base de Données et en Big Data, ainsi que Dominique Lenne et Thomas Deshais pour leur soutien et leurs encouragements à l'égard de notre promotion tout au long de ce Master.

Toute ma reconnaissance va également versmes collègues développeurs de l'équipe Big Data Technique : Alioune, Bastien, Christophe, Patrick et particulièrement Régis et Thomas pour leur disponibilité.

Enfin, je remerciemon épouse pour ses précieux conseils, ses encouragements et son soutien ainsi que mon fils, mes beaux-parents et ma mère pour nous avoir grandementfacilités cette année un peu particulière.

Sébastien Frackowiak

sommaire suivant






Aidez l'hopital de Montfermeil

Appel aux couturier(e)s volontaires

Hack the pandemiuc !

Moins de 5 interactions sociales par jour