Bda MR2020
Bda MR2020
Pré-requis
• Introduction aux Bases de données
• Introduction à la programmation Orientée Objet
• Introduction à la programmation parallèle
Objectifs généraux
À la fin ce cours, chaque apprenant sera capable
• de concevoir et d‟exploiter des Bases de Données Réparties
• d‟optimiser des requêtes
• de concevoir et d‟exploiter les Entrepôts de Données
• de stocker, traiter analyser des données massives à l‟ère du Big Data
●
Présentation cours
Table des matières
• Séquence 1 : Bases de Données distribuées
• Objectifs spécifiques
1. Identifier des besoins de distribution des données
2. Concevoir une base de données distribuées par la fragmentation ou intégration
• Séquence 2 : Optimisation des requêtes
• Objectifs spécifiques :
1. Analyser et identifier des requêtes optimisables
2. Produire des réécritures algébriques et des plans d‟exécution
• Séquence 3 : Système Décisionnel (business Intelligence) et Entrepôts de Données (Data Warehouse)
• Objectifs spécifiques :
1. Faire une différence entre Systèmes opérationnels et Décisionnels
2. Concevoir et exploiter un Entrepôt de Données
• Séquence 4 : Big data, MapReduce et NoSQL
• Objectifs spécifiques :
1. Identifier les nouveaux enjeux informatiques à l'ère du Big Data
2. Produire des algorithmes du type Mapreduce et prendre en main le framework Hadoop
3. Concevoir et exploiter des bases de données NoSQL
Consignes de travail
Consignes
• Suivre plusieurs fois les vidéos des séquences, au besoin, réduire la vitesse de lecture
• Faire plusieurs fois des exercices d‟application des séquences
• Faire tous les tests de connaissance à la fin de chaque séquence
• Faire tous les exercices de TD et TP, le travail en groupe est vivement recommandé
• Être actif dans les forums de discussions
• Avoir l‟esprit d‟autonomie
Introduction Générale
Introduction Générale
Rappels
Définition
• Une base de données est un ensemble de données modélisant les objets d‟une partie du
monde réel et servant de support à une application informatique ( G. Gardarin, 2003 ).
Préalables
• Données interrogeables selon n‟importe quel critère.
Exemple : Retrouver tous les produits qui coûtent au moins 100 fcfa
Rappels
Evolution des systèmes de Bases de Données
Rappels
Evolution des modèles de données
Rappels
Evolution des architectures
• Introduction
• Architectures
• Fragmentation
• Réplication
• Conclusion
Introduction
Rappels
Un système distribué est une application qui coordonne les actions de plusieurs ordinateurs pour réaliser une
tâche particulière.
Une base de données distribuées : une grande quantité de données résidant sur plusieurs machines
Un système de gestion de données distribuées : un logiciel qui permet d‟avoir un point d‟entrée unique sur une
base de données distribuées
Contradiction apparente
• Les Calculs de données sont centralisés
• Un point d‟entrée unique pour accéder à toutes les données de manière transparente
• ...
Introduction
Base de Données distribuée
Fragmentation
• On part d‟une grosse Base de Données
• On la distribue en fragments pour améliorer les performances
• On obtient une base de données distribuées
Intégration
• On part de bases de données existantes (autonomes)
• On les intègre pour obtenir un point d‟entrée unique
• On obtient une base de données distribuées
Réplication de données
Introduction
Pourquoi intégrer : conserver l’autonomie
Un ordinateur et un disque
• 1 téraoctet
• Scan séquentiel
• 166 minutes (> 2.5 heures)
100 disques en parallèle
• moins de 2mn
100 ordinateurs distribués
• Chacun son propre CPU
• Chacun son disque
• Ça passe à l‟échelle
Introduction
Pourquoi répliquer : sûreté/disponibilité
Mono-serveur
• Panne du processeur ou du disque
• Arrêt du service
• Perte des données
Multi-serveurs
• Panne d‟un processeur ou d‟un disque
• Le service continue, Grâce à la réplication,
• pas de perte des données
Énormément utilisé
• Réplication par 2 : banque
• Réplication par 3 : airbus
Introduction
Concept essentiel : transparence
de localisation
• l‟utilisateur n‟a pas savoir où sont les données
de réseau/système
• Panne d‟un processeur ou d‟un disque
de fragmentation
• il n‟a pas à connaître comment les données sont fragmentées
de réplication
• il n‟a pas à savoir comment/si elles sont répliquées
Complexité
• Rajoute des couches de logiciel Incohérences
• Que fait-on quand deux systèmes donnent des
• Communication
• Distribution du contrôle informations contradictoires
• Exemple : réservation de place, collision
• Conception de la base de données
• Gestion des contraintes d‟intégrité d‟avion
Absence de standards
Moins d‟expérience
Séquence 1 : Bases de Données Distribuées
Architectures
Séquence 1 : Bases de Données Distribuées
• Introduction
• Architectures
• Fragmentation
• Réplication
• Conclusion
Architectures
Rappels
Evolution des architectures
• Pluri-utilisateurs et terminaux
Architectures
Architecture Client-Serveur
Client
• Interface utilisateur
• Application
Serveur
• Gestion des requêtes
• Gestion des transactions
• Gestion des pannes
• Stockage des données
Architectures
Architecture Client-Serveur 3-tiers
Client
• Un navigateur qui présente le contenu, HTML par exemple
Le niveau intermédiaire
• Communication avec le SGBD
• Gère l‟application (Java, C++, etc)
• Génère le contenu au client
Serveur
• Stockage des données
Architectures
Vers la distribution : plusieurs serveurs de données
Architectures
Architecture Cloud, Fog, et Edge
Architectures
Typologie : hétérogénéité des SGBD locaux
Fragmentation
Séquence 2 : Bases de Données Distribuées
• Introduction
• Architectures
• Fragmentation
• Réplication
• Conclusion
Fragmentation
Cas de figure
St-louis
Fragmentation
Fragmentation : performance
σ site≠Dakar (E)
=Dakar (E)⋃ σ site≠Dakar (E)
Fragmentation
Fragmentation Verticale :
Fragmentation Verticale :
La division est faite non au niveau des données, mais de
la structure même de la base. Certains champs sont
envoyés dans un fragments et d'autres ailleurs
Π enum,adresse... (E)
• Perte d‟information : Pour toute donnée de la relation R, il doit avoir une sous relation Ri la
contenant
● σ site=Dakar (E) ⋃ σ site≠Dakar (E) = E
● Π enum,nom (E) ⨝ Π enum, adresse...(E) = E
• Pour toute fragmentation de la relation R en plusieurs sous relations Ri, il doit avoir un
procédé inverse de la reconstitution de la relation principale R
• Redondance : Aucune donnée ne doit se trouver dans plus d‟un fragment, sauf dans le cas
d‟une fragmentation verticale ou la clé primaire doit être présente partout
● σ salaire>10K (E) et σ salaire<15K (E)
● Les deux fragments ne sont pas disjoints
●
Fragmentation
Exemple de fragmentation plus complexe
● Schéma
Question fréquente : donner toutes les informations de X ainsi que ses projets
Fragmentation
Exemple de fragmentation plus complexe
Le nuplet d‟un projet qui a des employés à Dakar et sur un autre site est répliqué
Fragmentation
Fragmentation & SGBD
● Les deux grandes classes de fragmentation (horizontale et verticale) correspondent à deux grandes classes
de SGBD relationnels
● Non-dupliquée
● partitionnée : chaque fragment réside sur un seul site
● Dupliquée
● chaque fragment sur un ou plusieurs sites
● maintien de la cohérence des copies multiples
● Règle intuitive:
● si le ratio est [lectures/màj] > 1, la duplication est avantageuse
Semaine 2 : Bases de Données Distribuées
Réplication
Séquence 2 : Bases de Données Distribuées
• Introduction
• Architectures
• Fragmentation
• Réplication
• Conclusion
Réplication
Raisons de réplication de données
Fiabilité
• Faire qu‟il y ait plusieurs copies de la même donnée
• Si une machine n‟est plus accessible, on peut quand même accéder à la donnée
• Si une machine perd une donnée, la donnée existe encore
Performance
• Rendre des données plus disponibles
• Économiser les communications
Réplication
Réplication de données : trade-off
Avantage : Requête
• Interroger une des copies
• Interroger une vue
Désavantage : Mise-à-jour
• Mise-à-jour d‟une copie – propager aux autres
• Mise-à-jour d‟une vue – traduire en MàJ des relations de bases – ambiguïté
Base de Données
• Relation Employé E(enum, nom, site, salaire,…)
• Un employé n‟appartient qu‟à un seul site
• 40 000 employés à Dakar et Thiès, 20 000 à St-Louis
• 90 % des requêtes à Dakar/Thiès/St-louis s ont sur les employés locaux
• Accès disque = 1 unité & Accès réseau = 10 unités
• 3 SGBD avec les employés locaux
Faire jusqu‟au point fixe, Pour chaque réplication d‟un fragment sur un site
• Quel est le gain
• Quel est le coût
• Introduction
• Architectures
• Fragmentation
• Réplication
• Conclusion
Séquence 2 : Bases de Données Distribuées
conclusion
Conclusion
Nouvelle tendance : Architecture Pair à pair
• Introduction
• Réécriture algébrique
• Plans d‟exécution
• Tri et hachage
• Algorithmes de jointure
• Optimisation
• Conclusion
Introduction
Le problème étudié
Une requête SQL est déclarative, ne dit pas comment calculer le résultat
Dans un SGBD le programme qui exécute une requête est appelé plan d‟exécution.
Deux étapes :
1. (A) plan d‟exécution logique (l‟algèbre) ;
2. (B) plan d‟exécution physique (opérateurs).
Réécriture algébrique
Séquence : Évaluation et Optimisation
• Introduction
• Réécriture algébrique
• Plans d‟exécution
• Tri et hachage
• Algorithmes de jointure
• Optimisation
• Conclusion
Réécriture algébrique
De SQL vers une forme opératoire : l’algèbre
En SQL :
Select titre
From Film f, Role r
Where nom_role =‟Ferguson‟
and f.id = r.id_ilm
and f.annee = 1958
L‟application dirigée d‟une règle d‟équivalence (réécriture) transforme une expression e en une expression
équivalente e„.
Réécriture algébrique
Ce que fait l’optimiseur
Principes essentiels :
1. L‟algèbre permet d‟obtenir une version opératoire de la requête.
2. Les équivalences algébriques permettent d‟explorer un ensemble de plans.
3. L‟optimiseur évalue le coût de chaque plan.
Bien retenir
• Heuristique : on ne peut pas tout explorer
• Nécessaire mais pas suffisant : il reste à choisir le bon algorithme pour chaque opération.
Séquence 2 : Évaluation et Optimisation
• Introduction
• Réécriture algébrique
• Plans d’exécution
• Tri et hachage
• Algorithmes de jointure
• Optimisation
• Conclusion
Opérateur
Rappel : un plan d’exécution est un arbre constitué d’opérateurs échangeant des
flux de données.
Dex inconvénients :
● Consomme de la mémoire.
● Introduit un temps de latence.
Opérateur
La bonne solution : pipelinage
• Le curseur se place sur le premier nuplet, qui est retourné comme résultat : Le temps de réponse est
minimal.
Opérateur
La bonne solution : l’opérateur FullScan
Après plusieurs next(), le curseur est positionné sur le dernier nuplet du bloc..
Opérateur
La bonne solution : l’opérateur FullScan
Échanges
•
Un itérateur consomme des nuplets d‟autres itérateurs source.
•
Un itérateur produit des nuplets pour un autre
•
itérateur (ou pour l‟application).
●
Opérateur bloquant
Tous les opérateurs peuvent-ils fonctionner en mode pipelinage ?
Échanges
• Un itérateur consomme des nuplets d‟autres itérateurs source.
• Un itérateur produit des nuplets pour un autre itérateur (ou pour l‟application).
Exemple : parcours d’index (IndexScan)
Opérateur IndexScan
Tri et hachage
Séquence 2 : Évaluation et Optimisation
• Introduction
• Réécriture algébrique
• Plans d‟exécution
• Tri
• Algorithmes de jointure
• Optimisation
• Conclusion
Tri externe
Le tri externe est utilisé
Algorithmes de jointure
Optimisation des Requêtes
• Introduction
• Réécriture algébrique
• Plans d‟exécution
• Tri et hachage
• Algorithmes de jointure
• Optimisation
• Conclusion
Algorithmes de jointure
L’opérateur qui nous manque
L‟opérateur de jointure complète notre petit catalogue pour (presque) toutes les
requêtes SQL.
Exemple :
Select a1, a2, .., an
from T1, T2, ..., Tm
where T1.x = T2.y and ...
order by …
Plusieurs
algorithmes possibles.
Algorithmes de jointure
Principaux algorithmes
Avantages :
● Efficace (un parcours, plus des recherches par adresse)
● Favorise le temps de réponse et le temps d‟exécution
Séquence 2 : Évaluation et Optimisation
• Introduction
• Réécriture algébrique
• Plans d‟exécution
• Tri et hachage
• Algorithmes de jointure
• Optimisation des Requêtes
• Conclusion
Optimisation
En quoi consiste l’optimisation ?
centralisation brutale
Optimisation des Bases de données Distribuées
Plusieurs plans possibles : solution optimisée
Optimisation
Optimisation des Bases de données Distribuées
Architecture logique : intégration de données
• •
Optimisation des Bases de données Distribuées
Séparer les problèmes pour simplifier
Analyse syntaxique
• SQL Q sur SCG ⇒ requête algébrique H sur SCG
Localisation
• requête algébrique H sur SCG ⇒ requête algébrique G(H 1 , H 2 ) avec H 1 ,H 2 sur SCL 1 , SCL 2
Optimisation globale
• Minimise globalement les communications
• Obtient G(H 1 , H 2 ) en G‟(H 1 ‟, H 2 ‟) avec H 1 ‟, H 2 ‟ sur SCL 1 , SCL 2
Optimisation locale
• Minimise localement les I/O (et aussi les calculs)
• Localement chaque H i ‟ est optimisé en H i ‟‟
• On évalue
G‟(H 1 ‟‟, H 2 ‟‟) = G‟(H 1 ‟, H 2 ‟) = H = Q
Références
• Introduction
• Système Décisionnel- Business Intelligence
• Entrepôt de Données – Data Warehouse
• Conclusion
Introduction
Dirigeants, Entreprise, informatique décisionnelle
Information en Entreprise
● Informations noyées sous de nombreuses données, éparses, déstructurées et hétérogènes
● Ces décideurs ont besoin qu'on leur expose les faits importants, base de leurs décisions.
informatique décisionnelle.
● Elle permet une sélection des informations opérationnelles pertinentes pour l'entreprise
● Elle doit produire des indicateurs et des rapports à l'attention des analystes.
● Elle doit également proposer des outils de navigation, d'interrogation et de visualisation de
l'entrepôt.
Introduction
Entrepôt de données – Data Warehouse
● Entrepôt de données est une collection de données orientées sujet, intégrées, non
volatiles et historisées, organisées pour la prise de décision
❏ orienté sujets
❏ données intégrées
❏ Données non volatiles
❏ Données historisées
Introduction
OLTP vs. OLAP
Système Décisionnel
Reporting
Exemple d’un reporting imprécis
Reporting
En fait, l’important est dans la variation
Reporting
Mais une information peut en cacher une autre...
Enjeux du Décisionnel
Le système d'information décisionnel
Les données agrégées dans un système décisionnel servent à trois grandes catégories d'usage :
Le principe du reporting est d'agréger et de synthétiser des données nombreuses et complexes sous
forme d'indicateurs, de tableaux, de graphiques permettant d'en avoir une appréhension globale et
simplifiée.
• récurrent
• agrégats (GROUP BY en SQL par exemple)
Système Décisionnel
Reporting
Le principe du reporting est d'agréger et de synthétiser des données nombreuses et complexes sous
forme d'indicateurs, de tableaux, de graphiques permettant d'en avoir une appréhension globale et
simplifiée.
• récurrent
• agrégats (GROUP BY en SQL par exemple)
Système Décisionnel
Exploration manuelle
• L'idée générale est plutôt que les réponses aux premières questions que l'on se posent
conduiront à se poser de nouvelles questions
• Explorer les données de façon peu dirigée (heuristique) afin de trouver des réponses à des
questions que l'on ne s'est pas posées (sérendipité).
• Explorer les données de façon peu dirigée (heuristique) afin de trouver des réponses à des
questions que l'on ne s'est pas posées (sérendipité).
Système Décisionnel
Exploration manuelle
• L'idée générale est plutôt que les réponses aux premières questions que l'on se posent
conduiront à se poser de nouvelles questions
• Explorer les données de façon peu dirigée (heuristique) afin de trouver des réponses à des
questions que l'on ne s'est pas posées (sérendipité).
• Explorer les données de façon peu dirigée (heuristique) afin de trouver des réponses à des
questions que l'on ne s'est pas posées (sérendipité).
●
Système Décisionnel
Analyse de données
• Analyse descriptive
• Analyse prédictive
Système Décisionnel
Systèmes Opérationnels vs Systèmes Décisionnels
Systèmes Opérationnels Systèmes Décisionnels
• Analyse Appelés OLTP (On-Line Transaction • Appelés OLAP (On-Line Analytical Processing)
Processing) ou systèmes de gestion • Dédiés à la gestion de l‟entreprise pour l‟aider au
• Dédiés aux métiers de l‟entreprise pour les assister pilotage de l‟activité pour une vision transversale
dans leurs tâches de gestion Quotidiennes de l‟entreprise
• Utilisation des PGI (ou ERP) pour la gestion des • Utilisation des Entrepôts de donnée
données
Système Décisionnel
Architecture
• Introduction
• Système Décisionnel- Business Intelligence
• Entrepôt de Données – Data Warehouse
• Conclusion
Entrepôts de Données
Entrepôt de donnée ou concept central du BI
● Quelle structure permet-elle d'avoir les fonctionnalités requises pour un entrepôt de données ?
● Quelles sont les techniques utilisées pour bien concevoir ?
● Quels sont les indicateurs d'une bonne conception ?
Entrepôts de Données
Concepts fondamentaux
Entrepôt de données
● une structure (comme une base de données) qui à pour but, contrairement aux bases de
données, de regrouper les données de l'entreprise pour des fins analytiques et pour aider à la
décision stratégique.
● un gigantesque tas d'informations épurées, organisées, historisées et provenant de plusieurs
sources de données, servant aux analyses et à l'aide à la décision
Avantages/inconvénients
● Souplesse, évolution facile, permet de stocker de
gros volumes.
● Mais peu efficace pour les calculs complexes
Entrepôts de Données
Multi-Dimensional OLAP
Idée
● Modélisation directe du cube
● Ces cubes sont implémentés comme des matrices à plusieurs
dimensions
● CUBE [1:m, 1:n, 1:p...] (mesure)
● Le cube est indexé sur ses dimensions
Avantages/inconvénients:
● rapide
● formats propriétaires
● ne supporte pas de très gros volumes de données
Entrepôts de Données
HOLAP
.
Idée
● MOLAP + ROLAP
● Données stockées dans des tables relationnelles
● Données agrégées stockées dans des cubes.
● Les requêtes vont chercher les données dans les tables et les
cubes
Entrepôts de Données
Modèles de représentation des données
● Cubes
● Étoile
● flocon
Entrepôts de Données
Hyper Cube
Hypercube : BD multidimensionnelle
● Axes: dimensions (date, type de produits, région),
● Chaque cellule de l'hypercube contient une mesure calculée (vente de produit)
Entrepôts de Données
Hyper Cube
● Principe de base : ce sont les analyses des indicateurs qui intéressent l‟utilisateur
● 2 types d‟attributs : les dimensions et les mesures
❏ Les mesures
❏ Les dimensions
Entrepôts de Données
Opérations sur la structure des cubes
Entrepôts de Données
Opérations sur le contenu des cubes
Entrepôts de Données
Une étoile est une façon de mettre en relation le dimensions et les faits dans un entrepôt de données
Entrepôts de Données
Représentation en Étoile
Avantages:
● Facilité de navigation
● Nombre de jointures limité
Inconvénients:
● Redondance dans les dimensions
● Toutes les dimensions ne concernent pas les mesures
167
Entrepôts de Données
Conception d’un modèle en étoile
Etude cas
On vous demande de créer un data Mart (une étoile) pour l'analyse de l'activité des représentants
d'une entreprise de vente d'imprimantes. Le chef d'entreprise veut savoir ce qui se passe pour ses
vendeurs. Les employés font ils leur travail, quelle est la zone de couverture des vendeurs, ou sont
les endroits où les vendeurs sont le moins efficaces, quelle est la moyenne de ventes des
représentants, etc., etc. L'entreprise possède un système de gestion de ressources humaines, un
système de gestion des ventes et des feuilles de routes avec des informations concernant les
vendeurs : kilomètres parcourus, litres d'essence utilisée, frais de voyage, ventes, promesses de
ventes, etc.
168
Entrepôts de Données
171
Entrepôts de Données
Représentation en Flocon
Modéliser existence des hiérarchies de dimensions et qu'elles sont reliées au faits, ça fait comme un flocon
Entrepôts de Données
Etude cas
On vous demande de créer un data Mart (une étoile) pour l'analyse de l'activité des
représentants d'une entreprise de vente d'imprimantes. Le chef d'entreprise veut savoir ce
qui se passe pour ses vendeurs. Les employés font ils leur travail, quelle est la zone de
couverture des vendeurs, ou sont les endroits où les vendeurs sont le moins efficaces,
quelle est la moyenne de ventes des représentants, etc., etc. L'entreprise possède un
système de gestion de ressources humaines, un système de gestion des ventes et des
feuilles de routes avec des informations concernant les vendeurs : kilomètres parcourus,
litres d'essence utilisée, frais de voyage, ventes, promesses de ventes, etc.
174
Entrepôts de Données
Représentation en Flocon
Solution
175
Entrepôts de Données
Représentation Constellation
Constellation
Une constellation est une série d'étoiles ou de flocons
reliées entre eux par des dimensions.
Top-Down : Elle consiste en la conception de tout l'entrepôt (ie : toutes les étoiles), puis en la réalisation de ce
dernier. Lourde, contraignante et la plus complète .
Bottom-Up : Elle consiste à créer les étoiles/flocons une par une, puis les regrouper par des niveaux
intermédiaires jusqu'à obtention d'un véritable entrepôt pyramidal avec une vision d'entreprise.
Middle-Out : c'est l'approche hybride, . Elle consiste en la conception totale de l'entrepôt de données (ie :
concevoir toutes dimensions, tous les faits, toutes les relations), puis créer des divisions plus petites et plus
gérables et les mettre en œuvre. Conseillée par les professionnels du BI
177
1. Michael Tranchan, Qu'est-ce que l'informatique décisionnelle ? https://business-
intelligence.developpez.com/tutoriels/quest-ce-que-la-bi/
2. Yazid Grim, Conception d'un entrepôt de données (Data Warehouse),
http://grim.developpez.com/cours/businessintelligence/concepts/conception-datawarehouse/
3. Didier Donsez. Janvier 2006. Principes et architectures des entrepôts de données
4. georges gardarin, Bases de données, eyrolles, 2003
5. Yazid Grim, OLAP, les fondamentaux, http://grim.developpez.com/articles/concepts/olap/
6. Silvera David, Utilisation de BIRT, http://dsilvera.developpez.com/tutoriels/Business-
Intelligence/utilisation-birt/
Séquence 4: Big Data, MapReduce et NoSQL
Bases De Données Avancées
Guidedi KALADZAVI
Séquence 4 : Big Data, MapReduce et NoSQL
Contenu
•Introduction
•Big Data
•MapReduce
•NoSql
•Conclusion
Introduction
Déluge de données et le Big Data
Le monde des e- notre e-monde
• e-administration
• e-commerce
• E-transport
• Les dossiers et fichiers scolaires, médicaux, sociaux, ou de police sont informatisés.
• Intensification des moyens de payement en ligne
• Essor phénoménal des réseaux sociaux
• Les objets domestiques ou urbains deviennent intelligents et se connectent à l' « Internet des objets ».
• ….
• Vers l‟Internet du tout connecté
Big data
Données telles que les solutions de stockage, gestion et de traitement ne suffissent plus ?
Introduction
Big data et aux nouveaux challenges informatiques
Exemple
• 100 G représentent un faible volume de données pour Facebook
• Or, tout le monde ne possède pas un pétaoctet de données à analyser chaque jour
• Est-ce que cela signifie que seuls les GAFA (Google, Apple, Facebook, Amazon) sont en
mesure de faire réellement du big data ?
Big Data
Déluge de données et le Big Data
Le déluge des données crée de nouveaux besoins, tant en matière d'infrastructures de stockage que
de calculs
• Quelle stratégie adopter pour distribuer les calculs entre les machines ?
• Comment distribuer les données entre les machines ?
• Comment agréger les résultats des différentes machines ?
• Que faire en cas de panne d'une des machines lors de l'exécution du calcul ?
• Comment faire en sorte que l'architecture déployée ne coûte pas une fortune ?
Séquence 4: Big Data, MapReduce et NoSQL
MapReduce
Big Data, MapReduce et NoSQL
• Introduction
• Big Data
• MapReduce
• NoSQL
• Conclusion
MapReduce
Qu’est ce que MapReduce ?
Principe
MapReduce
Un problème de Big Data
Map
• Itérer sur un grand nombre d‟enregistrements
• Extraire une information pertinente de chacun d‟eux
Reduce
• Regrouper et trier les résultats intermédiaires
• Agréger les résultats intermédiaires
• Produire le résultat final
● Deux fonctions
❏ Map :
❏ Reduce:
MapReduce
4 Étapes
● Découper (SPLIT)
● Transformer (MAP)
● Grouper (SHUFFLE)
● Réduire(REDUCE)
MapReduce
Penser en MapReduce
Hadoop
Hadoop: Mapreduce en Pratique
MapReduce en pratique !
Challenges
Hadoop: Mapreduce en Pratique
MapReduce en pratique !
•
Hadoop: Mapreduce en Pratique
Maître/esclave
Hadoop: Mapreduce en Pratique
Architecture d’un cluster HDFS
Framework
MapReduce
Hadoop: Mapreduce en Pratique
Framework MapReduce
Maître /esclave
Hadoop: Mapreduce en Pratique
Framework Mapreduce
Merci
Séquence 4 : Big Data, MapReduce et NoSQL
Séquence 4: Big data, MapReduce et NoSQL
• Introduction
• Big Data
• MapReduce-Hadoop
• NoSQL
• Conclusion
Qu’est ce NoSQL ?
Présentation
Depuis les années 70, la base de données relationnelle était l'incontournable référence pour gérer les données
d'un système d'information
Les années 2000, le big data et ses 3V (Volume, Velocity, Variety), le relationnel peut difficilement lutter contre
cette vague de données
Alors relâcher certaines contraintes lourdes du relationnel pour favoriser la distribution : d'où le "Not Only SQL".
• Orienté Clés-Valeurs
• Orienté-Colonnes
• Orienté-Documents
• Orienté-Graphes
NoSQL
Bases de données Relationnelles et NOSQL
Illustration
Exprime des contraintes : clé primaire, unicité (nom, prénom), typage, valeurs obligatoires.
Modélisation de bases NoSQL
En relationnel, toutes les données sont "à plat". Cela tend à multiplier le nombre de tables contenant les
informations sur une même entité
Exemple : pour représenter toutes les informations sur un film, il faut
• La table Film (une ligne pour le film)
• La table Artiste (une ligne pour le réalisateur, autant de lignes que d‟acteurs)
• La table Role (autant de lignes que de rôles)
• et la table Pays, et d‟autres encore…
Impact de la NORMALISATION.
• Il faut beaucoup d‟écritures , et autant de lectures pour reconstituer l‟information
Modélisation de bases NoSQL
Table relationnelle = arbre de hauteur constante. Trois niveaux : ligne, attribut, valeur.
Modélisation de bases NoSQL
Premiers constats
• pas du tout efficace : peut être utile pour échanger des informations ; pas pour les stocker.
• Dans une base relationnelle, les données sont très contraintes /structurées : on peut stocker séparément
la structure (le schéma) et le contenu (la base)
• Une représentation arborescente XML / JSON est plus appropriée pour des données de structure
complexe et / ou flexible
Modélisation de bases NoSQL
Bases de données Relationnelles et NOSQL
Documents structurés = imbrication des structures
Grâce à l‟imbrication des structures , il est possible de représenter dans une même unité un film
ett son metteur en scène.
{
"title": "The Social network",
Dans les bases documentaires : on "summary": "On a fall night in 2003, Harvard undergrad and \n
essaie de créer des unités programming genius Mark Zuckerberg sits down at his \n
d‟information autonomes pour limiter computer and heatedly begins working on a new idea. (...)",
les écritures et éviter d‟avoir à faire "year": 2010,
des jointures. "director": {"last_name": "Sali",
"first_name": "David"},
Les systèmes NoSQL sont conçus "actors": [
pour passer à l‟échelle par {"first_name": "Jesse", "last_name": "Eisenberg"},
distribution. C‟est en partie {"first_name": "Rooney", "last_name": "Mara"}
incompatible avec les jointures et ]
}
les transactions
Modélisation de bases NoSQL
Bases de données Relationnelles et NOSQL
Familles NoSQL
Familles NoSQL
Les Clés-valeurs
Familles NoSQL
Les Clés-valeurs
Solutions techniques
Familles NoSQL
Orienté - colonnes
Orienté - colonnes
Familles NoSQL
Orienté - colonnes
Solutions techniques
Familles NoSQL
Orienté-documents
Orienté-documents
Solutions techniques
Familles NoSQL
Orienté-Graphes
Familles NoSQL
Orienté-Graphes
Familles NoSQL
Orienté-documents
Solutions techniques
NoSQL
Modèles NoSQL
● Forces ● Faiblesses
● Plus besoin de jointure ( ?): il est inutile de faire des ● Chemin d‟accès privilégié : les films apparaissent
jointures pour reconstituer l‟information puisqu‟elle près de la racine des documents, les artistes sont
n‟est plus dispersée, comme en relationnel, dans enfouis dans les profondeurs ; L‟accès aux films
plusieurs tables. est donc privilégié
● Plus besoin de transaction ( ?) : une écriture (du ● Les entités ne sont plus autonomes : pas moyen de
document) suffit ; une lecture suffit pour récupérer créer un réalisateur s‟il n‟y a pas au moins un film.
l‟ensemble des informations. ● Redondance : la même information doit être
● Adaptation à la distribution . Si les documents sont représentée plusieurs fois, ce qui est tout à fait
autonomes, il est très facile des les déplacer pour fâcheux (Quentin Tarantino est représenté deux
les répartir au mieux dans un système distribué. fois).
Modélisation de bases NoSQL
Modèles NoSQL
Les autres inconvénients
Pas de schéma ?
On peut mettre n‟importe quoi dans la base ; c‟est l‟application qui doit faire les contrôles et les corrections.
Pas de transaction ?
Ne convient pas pour beaucoup d‟applications (commerce électronique).
Modélisation de bases NoSQL
• Des données très spécifiques, peu ou faiblement structurées : texte, données multimédia, graphes)
• Peu de mises à jour, beaucoup de lectures. ; la redondance ne pose pas de problème.
• on veut traiter de très gros volumes de manière “scalable”
• De forts besoins en temps réel
•
NoSQL = Not Only SQL. Personne (de sérieux) ne prétend que ces systèmes vont remplacer les systèmes
relationnels, sauf pour certaines niches (Entrepôts de Données, Big data) pour Buisness Intelligence
Références
1. Big Data : premiers pas avec MapReduce, brique centrale d'Hadoop ,
https://www.journaldunet.com/developpeur/outils/mapreduce.shtml
2. Mickael BARON, Tutoriel d'introduction à Apache Hadoop ,
http://mbaron.developpez.com/tutoriels/bigdata/hadoop/introduction-hdfs-map-reduce/
3. Gartner et le Big Data: http://www.gartner.com/technology/research/big-data/.
4. https://www.lebigdata.fr/hadoop
5. http://www.opentuto.com/hadoop-pour-les-nuls/
6. Réalisez des calculs distribués sur des données massives, https://openclassrooms.com/courses/realisez-
des-calculs-distribues-sur-des-donnees-massives/familiarisez-vous-avec-hadoop
7. R u d i Br u c h e z, Les bases de données NoSQL et le Big Data : Comprendre et mettre en œuvre,
Eyrolles, 2013, 2015, ISBN : 978-2-212-14155-9