[PDF] Bases de données documentaires et distribuées





Previous PDF Next PDF



PGE PGO

D'autres centres d'examens sont susceptibles d'ouvrir retrouvez la liste définitive sur www.passerelle-esc.com. • À l'issue des épreuves écrites



La citoyenneté Être (un) citoyen aujourdhui

l'exercice de la citoyenneté. Le deuxième phénomène qui ébranle la citoyenneté politique est le sentiment que l'égalité de tous les citoyens devant la loi 



Bases de données documentaires et distribuées

26 sept. 2021 Exercice Ex-S2-4 : extrait de l'examen du 16 juin 2016. Le service informatique du Cnam a décidé de représenter ses données sous forme de ...



EN LIGNE & À DISTANCE

der de résoudre des exercices faire une analyse cours la question fait référence lors de l'examen. ... damental d'activer la mémoire avant de se.



Réviser son bac

L'ensemble des sujets couvre les différents exercices de l'épreuve écrite de SVT au baccalauréat : partie 1 (restituer ses connaissances lors d'une question 



Guide des - PREMIERS SECOURS P

Suggestion de référencement bibliographique : Guide des Premiers Secours Psychologiques pour les Sociétés de la Croix- Rouge et du.



Résolution de conflit : Le Guide ressource

31 mars 2017 The Dynamics of Conflict Resolution : A Practitioner's Guide. San Francisco CA. : Jossey-Bass. Mind Tools. (n.d.). Active Listening : Hear What ...



IMPACT DES VIOLENCES SEXUELLES DE LENFANCE À LÂGE

adultes et 14% ont subi des agressions sexuelles au cours de leur vie



Pour une sociologie des médias sociaux. Internet et la révolution

19 avr. 2015 As social media are characterized by the interactionist dimension our research will target active users. From these connected and networked ...



Votre cheminement après un AVC

Nos communautés de survivants et d'aidants naturels sont des groupes fermés sur. Facebook. L'un est réservé aux personnes vivant avec une maladie du cœur ou les.

Bases de données documentaires et

distribuées

Version Février 2023

Philippe Rigaux

févr. 07, 2023

Table des matières

1 Introduction3

1.1 Sujet du cours

4

1.2 Contenu et objectifs du cours

5

1.3 Organisation

6

2 Préliminaires : Docker

7

2.1 Introduction à Docker

9

2.2 Docker en ligne de commande

11

2.3 Le tableau de bord (dashboard)

17

3 Modélisation de bases NoSQL

21

3.1 S1 : documents structurés

22

3.2 S2. Modélisation des collections

30

3.3 S3 : Cassandra, une base relationnelle étendue

41

3.4 S4 : MongoDB, une base JSON

51

3.5 Exercices

55

4 Interrogation de bases NoSQL

59

4.1 S1 : HTTP, REST, et CouchDB

59

4.2 S2 : requêtes Cassandra

71

4.3 S3 : requêtes avec MongoDB

75

5 MapReduce, premiers pas

81

5.1 S1 : MapReduce démystifié

82

5.2 S2 : MapReduce et CouchB

90

5.3 S3 :FrameworksMapReduce : MongoDB. . . . . . . . . . . . . . . . . . . . . . . . . . . 94

5.4 Exercices

102

6 Cassandra - Travaux Pratiques

107

6.1 Partie 1 : Approche relationnelle

108

6.2 Partie 2 : modélisation spécifique NoSQL

111

7 MongoDB - Travaux Pratiques

113 i

7.1 Manipulation de base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

7.2 Pratique de Map/Reduce

115

7.3 Bonus / Pour aller plus loin

116

8 Introduction à la recherche d"information

119

8.1 S1 : les principes

119

8.2 S2 : Bases documentaires et moteur de recherche

127

8.3 S3 : la pratique : requêtes booléennes

134

8.4 Exercices

138

9 Recherche d"information : l"indexation

141

9.1 S1 : L"analyse de documents

141

9.2 S2 : L"indexation dans ElasticSearch

144

10 Recherche avec classement

157

10.1 S1 : recherche avec classement

157

10.2 S2 : recherche plein texte

160

10.3 S3 : l"algorithme PageRank

166

10.4 Exercices

169

10.5 Implémenter le classement dans un moteur de recherche

173

11 Recherche d"information - TP ElasticSearch

175

11.1 Mise en place d"ElasticSearch

175

11.2 Interrogation

177

11.3 Agrégats

178

11.4 Bonus : Agrégats via mapping spécifique

179

12 Recherche d"information - TP ElasticSearch : pertinence

181

12.1 Elasticsearch et la pertinence

181

12.2 À vous de jouer

186

13 Lecloud, une nouvelle machine de calcul187

13.1 S1 :cloudet données massives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

13.2 S2 : La scalabilité

196

13.3 S3 : anatomie d"une grappe de serveurs

200

13.4 Exercices

204

14 Systèmes NoSQL : la réplication

207

14.1 S1 : réplication et reprise sur panne

207

14.2 S2 : réplication dans MongoDB

217

14.3 S3 : ElasticSearch

221

14.4 S4 : Cassandra

228

14.5 Exercices

236

15 Systèmes NoSQL : le partitionnement

241

15.1 S1 : les bases

241

15.2 S2 : partitionnement par intervalle

248

15.3 S3 : partitionnement par hachage

257

15.4 Exercices

270 ii

16 Calcul distribué : Hadoop et MapReduce275

16.1 S1 : MapReduce

276

16.2 S2 : Une brève introduction à Hadoop

283

16.3 S3 : langages de traitement : Pig

295

16.4 Exercices

301

17 Traitement de données massives avec Apache Spark

305

17.1 S1 : Introduction à Spark

306

17.2 S2 : Spark en pratique

312

17.3 S3 : Traitement de données structurées avec Cassandra et Spark

320

17.4 Exercices

325

18 Traitement de flux massifs avec Apache Flink

327

18.1 S1 : Apache Flink

328

18.2 S2 : l"API de streaming Flink

337

18.3 S3 : Le fenêtrage

345

19 Pig : Travaux pratiques

351

19.1 Première partie : analyse de flux multiples

351

19.2 Deuxième partie : analyse de requêtes

353

20 Projets NFE204361

20.1 Les étapes

362

20.2 Les données

363

20.3 Le système NoSQL

363

20.4 Le rapport

364

21 Annales des examens

365

21.1 Examen du 3 février 2015

365

21.2 Examen du 14 avril 2015

367

21.3 Examen du 15 juin 2015

368

21.4 Examen du 1er juillet 2016 (FOD)

370

21.5 Examen du 1er février 2017 (Présentiel)

374

21.6 Examen du 6 février 2018 (Présentiel)

377

21.7 Examen du 30 juin 2020

381

21.8 Examen du 5 septembre 2020

383

22 Indices and tables

387 iii

iv Bases de données documentaires et distribuées, Version Février 2023

Tout le matériel proposé ici sert de support au cours " Bases de données documentaires et distribuées »

proposé par le département d"informatique du Cnam. Le code du cours est NFE204 (voir le site http: pour des inf ormationspratiq ues).Il es tdonné en Cours présentiel (premier semes tre,mardi soir) Cours à dis tance(second semes tre,a vecsuppor tsaudio visuels)

Par ailleurs, le document que vous commencez à lire fait partie de l"ensemble des supports d"apprentissage

proposés sur le site http:// www.bdpedia.fr .R eportez-vousà ce site pour plus d"e xplications.

Ce cours fait partie d"un ensemble d"enseignements consacrés à l"analyse de données massives, permettant

éventuellement d"obtenir un Certificat de Spécialisation au Cnam. Vous êtes invités à consulter :

Le site du cer tificat:

http:// donneesmassives.cnam.fr/

La fic hedu cer tificat:

http:// formation.cnam.fr/rechercher-par-discipline/ La présentation du cours R CP216sur la f ouillede données dis tribuée http:// cedric.cnam.fr/vertigo/

Cours/RCP216/preambule.html

La présentation du projet de synthèse (U ASB03)q uiconclut le Cer tificatde données massiv es,

http: //cedric.cnam.fr/vertigo/Cours/UASB03/uasb03.htmlTable des matières1 Bases de données documentaires et distribuées, Version Février 2023

2Table des matières

CHAPITRE1Introduction

Supports complémentaires :

Diapositiv es:Présentation du cours

V idéode présentation du cours Les bases relationnelles sont adaptées à des informations bien structurées, décomposables en unités simples

(chaînes de caractères, numériques), et représentables sous forme de tableaux. Beaucoup de données ne

satisfont pas ces critères : leur structure est complexe, variable, et elles ne se décomposent par aisément

en attributs élémentaires. Comment représenter le contenu d"un livre par exemple? d"une image ou d"une

vidéo? d"une partition musicale?

Les bases relationnelles répondent à cette question en multipliant le nombre de tables, et de lignes dans ces

tables, pour représenter ce qui constitue conceptuellement une même " entité ». Cette décomposition en

fragment " plats » (les lignes) est la fameusenormalisation(relationnelle) qui impose, pour reconstituer l"in-

formation complète, d"effectuer une ou plusieurs jointures assemblant les lignes stockées indépendamment

les unes des autres.Note :Ce cours suppose une connaissance solide des bases de données relationnelles. Si ce n"est pas le cas,

vous risquez d"avoir des lacunes et des difficultés à assimiler les nouvelles connaissances présentées. Je vous

recommande au préalable de consulter les cours suivants : le cours

Bases relationnelles, modèles et lang ages

, pour tout savoir sur la conception d"une base relationnelle et le langage SQL. le cours

Sy stèmesrelationnels

, pour les aspects systèmes : indexation, optimisation, concurrence

d"accès.Cette approche, qui a fait ses preuves, ne convient cependant pas dans certains cas. Les données de nature es-

Bases de données documentaires et distribuées, Version Février 2023

de certains objets dont la stucture est très flexible; enfin,l"échange de donnéesdans un environnement dis-

tribué se prête mal à une représentation éclatée en plusieurs constituants élémentaires qu"il faut ré-assembler

pour qu"ils prennent sens. Toutes ces raisons mènent à des modes de représentation plus riches permettant

la réunion, en une seule structure, de toutes les informations relatives à un même objet conceptuel. C"est ce

que nous appelleronsdocument, dans une acception élargie un peu abusive mais bien pratique. 1.1

Suje tdu cour s

Dans tout ce qui suit nous désignons donc par le terme générique dedocumenttoute paire(i, v)oùiest

l"identifiant du document etvunevaleur structuréecontenant les informations caractérisant le document.

Nous reviendrons plus précisément sur ces notions dans le cours.

La gestion d"ensembles de documents selon les principes des bases de données, avec notamment des outils

de type " cloud ». L"usage est maintenant établi d"appeler ces systèmes " NoSQL » pour souligner leurs

différences avec les systèmes relationnels. Le fait qu"ils ne suivent pas le modèle relationnel est d"ailleurs à

peu près leur seul point commun. De manière générale, et avec de grandes variantes quand on se penche sur

les détails, ils partagent également :

la représentation des données sous f ormed"unités d"inf ormationindépendantes les unes des unes, (ce

que nous appelons justementdocument) organisées encollections;

des méthodes d"accès aux collections basées soit sur des pr imitivesassez simplis tes,soit sur des

recherches par similarité qui relèvent de larecherche d"information;

la capacité à passer à l"échelle(expression énigmatique que nous essaierons de clarifier) par ajout de

ressources matérielles, donnant ces fameux environnements distribués et extensibles,

et enfin des tec hniquesde dis tributionde calculs per mettantde traiter des collections massiv esdans

des délais raisonnables.

Tous ces aspects, centrés sur les documents de nature textuelle (ce qui exclut les documents multimédia

comme les images ou vidéos), constituent le cœur de notre sujet. Il couvre en particulier :

les modèles de données pour documents s tructurés(XML et JSON), conception, bases de documents

structurés (MongoDb, CouchDb, Cassandra, etc.).

l"nde xationet la rec herche: e xtractionde descr ipteurs,moteurs de rec herche,tec hniquesde classe-

ment.

la g estionde g randescollections dans des en vironnementsdis tribués: les sy stèmesN oSQL(Mon-

goDB, Cassandra, CouchBase, ...) les traitements à g randeéc helle: Hadoop, MapR educe,Spark, Flink.

Lareprésentationdes données s"appuie sur unmodèle. Dans le cas du relationnel, ce sont des tables (pour

le dire simplement), et nous supposerons que vous connaissez l"essentiel. Dans le cas des documents, les

structures sont plus complexes : tableaux, ensembles, agrégats, imbrication, références. Nous étudions es-

sentiellement la notion dedocument structuréet son format de représentation le plus courant, JSON.

Disposer de données, mêmes correctement représentées, sans pouvoir rien en faire n"a que peu d"intérêt. Les

plus ou moins complexes. Les bases relationnelles ont SQL, nous verrons que la recherche dans des grandes

bases documentaires obéit souvent à des principes assez différents, illustrés par exemple par les moteurs de

recherche.4 Chapitre 1. Introduction Bases de données documentaires et distribuées, Version Février 2023

Enfin, à tort ou à raison, les nouveaux systèmes de gestion de données, orientés vers ce que nous appelons, au

sens large, des " documents », sont maintenant considérés comme des outils de choix pour passer à l"échelle

de très grandes masses de données (le " Big data »). Ces nouveaux systèmes, collectivement (et vaguement)

désignés par le mot-valise " NoSQL » ont essentiellement en commun de pouvoir constituer à peu de frais

des systèmes distribués, scalables, aptes à stocker et traiter des collections à très grande échelle. Une partie

significative du cours est consacrée à ces systèmes, à leurs principes, et à l"inspection en détail de quelques

exemples représentatifs. 1.2

Cont enue tobjectifs du cour s

Le cours vise à vous transmettre,dans un contexte pratique, deux types de connaissances. -Connaissances fondamentales :

1.Modélisation de documents structurés: structures, sérialisation, formats (JSON, XML); les

Data.

2.Moteurs de recherche pour bases documentaires: principes, techniques, moteurs de re-

cherche, index, algorithmes.

3.Stockage, gestion, et passage à l"échelle par distribution. L"essentiel sur les systèmes distri-

bués, le partitionnement, la réplication, la reprise sur panne; le cas des systèmes NoSQL.

4.Traitement de données massives: Hadoop et MapReduce, et les systèmes modernes, Spark et

Flink.

-Connaissances pratiques : 1. Des sy stèmes" N oSQL» or ientés" documents » ;(MongoDB, Couc hDB,Cassandra) 2. Des moteurs de rec herche(Elas ticSearch)basés sur un inde xin versé(Lucene). 3.

L "étude,en pratiq ue,de q uelquessy stèmesN oSQLdis tribués: MongoDB (temps réel), Elas-

ticSearch (indexation), Cassandra encore. 4. La combinaison des moteurs de s tockageet des moteurs de traitement dis tribué: Hadoop,

Spark et Flink.

Les connaissances préalables pour bien suivre ce cours sont essentiellement une bonne compréhension des

bases relationnelles, soit au moins la conception d"un schéma, SQL, ce qu"est un index et des notions de base

sur les transactions.

Pour les aspects pratiques, il est souhaitable également d"avoir une aisance minimale dans un environnement

de développement. Il s"agit d"éditer un fichier, de lancer une commande, de ne pas paniquer devant un nouvel

outil, de savoir résoudre un problème avec un minimum de tenacité. Aucun développement n"est à effectuer,

mais des exemples de code sont fournis et doivent être mis en œuvre pour une bonne compréhension.

Le cours vise à vous transmettre des connaissances génériques, indépendantes d"un système particulier. Il

s"appuie cependant sur la mise en pratique. Vous avez donc besoin d"un ordinateur pour travailler. Si vous

êtes au Cnam tout est fourni, sinon un ordinateur portable raisonnablement récent et puissant (8 GOs en

mémoire RAM au minimum) suffit. Tous les logiciels utilisés sont libres de droits, et leur installation est

brièvement décrite quand c"est nécessaire.1.2. Contenu et objectifs du cours 5 Bases de données documentaires et distribuées, Version Février 2023 1.3

Org anisation

Le cours est découpé enchapitres, couvrant un sujet bien déterminé, et ensessions. J"essaie de structurer les

sessions pour qu"elles demandent environ 2 heures de travail personnel (bien sûr, cela dépend également de

vous). Pour assimiler une session vous pouvez combiner les ressources suivantes : La lecture du suppor ten ligne : celui q uev ousa vezsous les y eux,ég alementdisponible en PDF ou en ePub Le suivi du cours, en vidéo ou en présentiel. La réponse au q uizpour v aliderv otrecompréhension La réalisation des e xercicesproposés en fin de session. Enfin, optionnellement, la reproduction des manipulations vues dans chaque session. N"y passez pas

des heures :il vaut mieux comprendre les principes que de résoudre des problèmes techniques peu

instructifs.

La réalisation des exercices en revanche est essentielle pour vérifier que vous maîtrisez le contenu. Pour les

inscrits au cours, ils sont proposés sous forme de devoirs à rendre et à faire évaluer avant de poursuivre.

Vous devez assimiler le contenu des sessionsdans l"ordre où elles sont proposées. Commencez par lire le

support, jusqu"à ce que les principes vous paraissent clairs. Répondez alors au quiz de la session. Essayez de

reproduire les exemples de code : ils sont testés et doivent donc fonctionner, sous réserve d"un changement

de version introduisant une incompatibilité. Le cas échéant, cherchez à résoudre les problèmes par vous-

mêmes : c"est le meilleur moyen de comprendre, mais n"y passez pas tout votre temps. Finissez enfin par les

exercices. Les solutions sont dévoilées au fur et à mesure de l"avancement du cours, mais si vous ne savez

pas faire un exercice, c"est sans doute que le cours est mal assimilé et il est plus profitable d"approfondir en

relisant à nouveau que de simplement copier une solution.

Enfin, vous êtes totalement encouragés à explorer par vous-mêmes de nouvelles pistes. Certaines sont pro-

posées dans les exercices.6 Chapitre 1. Introduction

CHAPITRE2Préliminaires : Docker

Supports complémentaires

Diapositiv es:introduction à Doc ker

V idéode la session consacrée à Doc kerLa plupart des systèmes étudiés dans ce cours peuvent s"installer et s"exécuter avec l"environnementDocker

http://www.docker.com ).Doc kerper metd"émuler un sy stèmedis tribuéde ser veurs. Unserveurest une entité qui fournit un service (!). Concrètement :

un serveur machineest un ordinateur, tournant sous un système d"exploitation, et connecté en per-

manence au réseau via desports; un serveur machine est identifiable sur le réseau par son adresse

IP.

un serveur logicielest un processus exécuté en tâche de fond d"un serveur machine qui communique

avec desclients (logiciels)via un port particulier.

un système distribuéest constitué de plusieurs serveurs qui communiquent les uns avec les autres.

un client (logiciel)est un programme qui communique avec un serveur (logiciel);

une machine virtuelleest un programme qui simule, sur une machine hôte, un autre ordinateur.Exemple.

Un serveurweb est unprocessus (Apache parexemple) qui communique sur leport 80 d"unserveur machine.

Si ce serveur machine a pour IP 163.12.9.10, alors tout client web (Firefox par exemple) peut s"adresser au

serveur web à l"adresse 163.12.9.10 :80.LaF ig.2.1 illus treces concepts de base, q uenous utiliserons maintenant intensiv ementsans plus d"e xplica-

tion. Elle montre dans une machine physique (le " système hôte ») deux machines virtuelles. Chacune de ces

machines dispose d"une adresse IP qui lui est propre, et propose des services en écoute sur certains ports. Un7

Bases de données documentaires et distribuées, Version Février 2023

serveur MongoDB est présent par exemple sur chacune des deux machines, en écoute sur le port par défaut

27017, la différentiation des serveurs se faisant donc dans ce cas par l"adresse IP du serveur qui les héberge.

Inversement, on peut avoir deux serveurs identiques sur une même machine, mais sur des ports différents.

C"est ce qu"illustre la présence de deux serveurs ElasticSearch sur la seconde machine virtuelle, sur les ports

respectifs 9200 et 9201.Fig. 2.1 - Un exemple de système distribué, avec serveurs virtuels et clients

Avant de donner quelques explications plus élaborées, il vous suffit de considérer que Docker permet d"ins-

taller et d"exécuter très facilement, sur votre ordinateur personnel, et avec une consommation de ressources

(mémoire et disque) très faible, ce que nous appellerons pour l"instant des " pseudos-serveurs » en attendant

d"être plus précis. Docker offre deux très grands avantages.

il propose des pseudo-ser veurspré-configurés, prêts à l"emploi (les " imag es»), q uis "installenten

quelques clics;

il es ttout aussi f aciled"ins tallerplusieurspseudos-serveurs communiquant les uns avec les autres et

d"obtenir donc un système distribué complet, sur un simple portable (doté d"une puissance raison-

nable).

Docker permet de transformer un simple ordinateur personnel endata center! Bien entendu, il n"en a pas la

puissance mais pour tester et expérimenter, c"est extrêmement pratique.

Installation: Docker existe sous tous les systèmes, dont Windows. Pour Windows et Mac OS, un installateur

Docker Desktopest fourni àhttps:// www.docker.com/products/docker-desktop. Il contient tous les compo-

sants nécessaires à l"utilisation de Docker.Note :Merci de me signaler des compléments qui seraient utiles à intégrer dans le présent document, pour

les environnements différents de Mac OS X, et notamment Windows.8 Chapitre 2. Préliminaires : Docker

Bases de données documentaires et distribuées, Version Février 2023 2.1

Introduction à Doc ker

Essayons de comprendre ce qu"est Docker avant d"aller plus loin. Vous connaissez peut-être déjà la notion

demachine virtuelle(VM). Elle consiste à simuler par un composant logiciel, sur une machine physique,

un ordinateur auquel on alloue une partie des ressources (mémoire, CPU). Partant d"une machine dotée par

exemple de 4 disques et 256 GO de mémoire, on peut créer 4 VMs indépendantes avec chacune 1 disque et

64 GO de RAM. Ces VMs peuvent être totalement différentes les unes des autres. On peut en avoir une sous

le système Windows, une autre sous le système Linux, etc.

L"organisation en VMs rend plus facile la réaffectation, le changement du dimensionnement, et améliore le

taux d"utilisation des dispositifs physiques (disque, mémoire, réseau, etc.).

Les VMs ont aussi l"inconvénient d"être assez gourmandes en ressource, puisqu"il faut, à chaque fois, faire

tourner un système d"exploitation complet, avec tout ce que cela implique, en terme d"emprise mémoire

notamment.

Docker propose une solution beaucoup plus légère, basée sur la capacité du système Linux à créer des es-

paces isolés auxquels on affecte une partie des ressources de la machine-hôte. Ces espaces, oucontainers

partitionnent en quelque sorte le système-hôte en sous-systèmes étanches, au sein desquels le nommage (des

processus, des utilisateurs, des ports réseaux) est purement local. On peut par exemple faire tourner un pro-

cessusapachesur le port 80 dans le conteneur A, un autre processusapachesur le port 80 dans le conteneur

B, sans conflit ni confusion. Tous les nommages sont en quelque sorte interprétés par rapport à un container

donné (notiond"espace de nom).

Les conteneurs Linux sont beaucoup plus légers en consommation de ressources que les VMs, puisqu"ils

s"exécutent au sein d"un unique système d"exploitation. Docker exploite cette spécificité du système Linux

pour proposer un mode de virtualisation (que nous avons appelé " pseudo-serveur » en préambule) léger et

quotesdbs_dbs43.pdfusesText_43
[PDF] activer url rewriting apache2 PDF Cours,Exercices ,Examens

[PDF] Activité 4ème Autre

[PDF] Activité "Cordonnées d'un point" 2nde Mathématiques

[PDF] Activité 1 et 2 2nde Physique

[PDF] activité 1 les notices des médicaments correction PDF Cours,Exercices ,Examens

[PDF] Activité 1 niveau 6eme 6ème Mathématiques

[PDF] activité 1-2 ans PDF Cours,Exercices ,Examens

[PDF] Activité 1: Multiplication de Fractions 5ème Mathématiques

[PDF] Activité 1:Les objets dans lunivers 4ème Physique

[PDF] Activité 2 : diversité génétique au sein d'une population 2nde SVT

[PDF] Activité 2 Carré dune différence 4ème Mathématiques

[PDF] Activité 2: Multiplication de Fractions 5ème Mathématiques

[PDF] Activité 3 : Une histoire de température 2nde Physique

[PDF] Activité 3 masse volumique 4ème Chimie

[PDF] activité 3 p 137 du livre sesamath 4e 4ème Mathématiques