NOSQLcours
NOSQLcours
Plan du Chapitre
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 1 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 2 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL
Définition
Un système distribué est un système logiciel qui permet de coordonner
plusieurs ordinateurs, généralement par l’envoi de messages via un réseau Objectif : Augmenter la capacité de traitement des données en
auquel ces ordinateurs sont connectés. parallèle.
Approches :
Pourquoi ? Distribution des calculs sur plusieurs noeuds.
Utilisation de frameworks adaptés aux gros volumes.
Manipulation d’un très grand volume de données.
Exemples :
Sans distribution, pas d’application scalable.
MapReduce
Apache Spark
Contexte
L’explosion des données (Big Data) nécessite des architectures capables de
gérer des volumes, une vélocité et une variété croissants.
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 3 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 4 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 5 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 6 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL
Scaling de Stockage : Exemples (2/2) Relation entre machines, clusters, racks et data centers
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 7 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 8 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Introduction aux bases NoSQL
Contexte
Exemples concrets (2010) Explosion des données non structurées (réseaux sociaux, IoT).
Google : Besoin de scalabilité massive pour gérer des milliards d’utilisateurs.
1 data center = 100 à 200 racks.
5000 serveurs/data center, total Limites des bases relationnelles dans les environnements distribués.
estimé 1M de serveurs.
Facebook : Exemple : Twitter
2500 CPU, 1 Po d’espace disque. 500M de tweets par jour, données non structurées (texte, hashtags).
250 Go compressés (>2 To non Nécessite une base NoSQL (ex : Cassandra) pour gérer la vélocité et
compressés). la variété.
Schéma d’un data center avec
racks
Objectif
Architecture
Les bases NoSQL offrent flexibilité, performance et évolutivité pour le Big
Shared Nothing : Les serveurs communiquent par messages, sans partage Data.
de disque ni ressources de traitement.
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 9 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 10 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Principes des bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Principes des bases NoSQL
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 11 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 12 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Principes des bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Principes des bases NoSQL
Objectif
Garantir que les données restent intègres même en cas d’erreur ou de
panne.
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 13 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 14 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Principes des bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Principes des bases NoSQL
Limites des SGBDR : ACID vs. BASE Autres limites des SGBDR
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 23 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 24 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Limites des SGBDR Chapitre 2 : Bases de données NoSQL Fondamentaux Limites des SGBDR
Autres limites des SGBDR : Complexité dans un contexte Autres limites des SGBDR : Complexité dans un contexte
distribué (1/2) distribué (2/2)
Problématique Performances dégradées :
Les SGBDR, conçus pour des architectures centralisées, rencontrent des Latence élevée due à la coordination entre noeuds (ex : validation 2PC
difficultés majeures lorsqu’ils sont utilisés dans des systèmes distribués. - Two-Phase Commit).
Exemple : Une transaction distribuée sur 5 noeuds peut prendre 100ms
Complexité de mise en oeuvre : au lieu de 10ms en local.
Nécessité de mécanismes complexes (ex : réplication synchrone, Limitation face au partitionnement :
verrouillage distribué) pour maintenir les propriétés ACID.
Selon le théorème CAP, un SGBDR privilégiant la cohérence (CA)
Configuration lourde : gestion manuelle des noeuds, synchronisation
devient indisponible en cas de partition réseau.
des transactions.
Exemple : Une banque utilisant Oracle peut refuser des retraits si un
Exemple : Mettre en place un cluster MySQL avec réplication demande
noeud est isolé.
des ajustements fréquents et une expertise pointue.
Cas concret Conséquence
Une application e-commerce avec MySQL distribué sur plusieurs data Les SGBDR sont mal adaptés aux exigences de scalabilité et de
centers doit configurer des réplications complexes pour éviter les pertes de disponibilité des systèmes distribués modernes.
données.
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 25 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 26 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Théorème CAP Chapitre 2 : Bases de données NoSQL Fondamentaux Théorème CAP
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 29 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 30 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Typologie des bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Typologie des bases NoSQL
Cas d’usage
Détection de fraudes ou réseaux
sociaux.
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 31 / 70 Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 32 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Typologie des bases NoSQL Chapitre 2 : Bases de données NoSQL Fondamentaux Typologie des bases NoSQL
Synthèse
Le choix dépend du cas d’usage : Yassine Sabri, PhD
Yassine Sabri, PhD ( Les bases de données NoSQL et le BIG DATA 33 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 34 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Rôle : Plateforme pour exécuter et gérer des conteneurs Docker sur Rôle : Client graphique pour interagir avec MongoDB.
un ordinateur local. Fonctionnalités :
Fonctionnalités : Connexion à des instances MongoDB (locales ou distantes).
Déploiement rapide de MongoDB dans des conteneurs isolés. Exploration des bases, collections et documents.
Gestion des réseaux et volumes pour simuler un cluster. Exécution de requêtes, gestion des indexes, et visualisation des
Interface graphique pour visualiser conteneurs et logs. résultats.
Utilité : Idéal pour tester des configurations MongoDB (standalone, Utilité : Simplifie l’administration et le développement avec
replica set, sharded) sans installation directe. MongoDB, complémentaire à Docker pour un workflow efficace.
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 35 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 36 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 37 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 38 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 39 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 40 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Mode 3 : Sharded Cluster (1/2) Mode 3 : Sharded Cluster (2/2) - Mode Professionnel
Usage Professionnel :
Description : Cluster MongoDB avec distribution des données sur
Gestion de bases massives (big data, applications à fort trafic).
plusieurs shards, chacun pouvant être un replica set. Répartition des charges pour performances optimales.
Composants : Tolérance aux pannes grâce aux replica sets.
Shards : Contiennent une partie des données. Exemple : Déploiement avec Docker pour simuler un cluster sharded
Config Servers : Stockent les métadonnées.
sur un réseau local.
Mongos : Routeurs pour diriger les requêtes.
Avantages :
Caractéristiques :
Évolutivité : ajout de shards selon les besoins.
Scalabilité horizontale pour gérer de gros volumes.
Flexibilité : adapte la capacité aux charges variables.
Haute disponibilité via replica sets par shard.
Défis : Complexité de configuration et gestion des clés de sharding.
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 41 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 42 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Architecture MongoDB : Cluster Sharded avec Replica Set Architecture MongoDB : Cluster Sharded avec Replica Set
(1/2) (2/2)
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 43 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 44 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Si le primary tombe en panne, un secondary est élu comme nouveau Si un secondary tombe en panne, le cluster reste opérationnel.
primary.
Le primary continue à traiter les écritures, les lectures peuvent être
Processus d’élection basé sur un consensus (majorité des noeuds du affectées si dirigées vers ce secondary.
replica set).
La réplication est temporairement interrompue vers ce noeud.
Les écritures sont temporairement bloquées jusqu’à l’élection
(quelques secondes). Une fois le secondary restauré, il se resynchronise automatiquement
avec le primary.
Une fois élu, le nouveau primary reprend les opérations d’écriture.
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 45 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 46 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 47 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 48 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 49 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 50 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 51 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 52 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Cette commande crée un réseau Docker personnalisé nommé Chaque shard est une instance MongoDB avec un ensemble de
mongodb-network. réplicas.
Cela permet à tous les conteneurs MongoDB de communiquer entre Les commandes suivantes lancent trois noeuds pour le premier shard.
eux sur un réseau dédié.
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 53 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 54 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 55 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 56 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 57 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 58 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 59 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 60 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Commandes : Lancement des Serveurs de Configuration Explication : Lancement des Serveurs de Configuration
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 61 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 62 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Commande : Initialisation des Serveurs de Configuration Explication : Initialisation des Serveurs de Configuration
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 63 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 64 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 65 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 66 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 67 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 68 / 70
Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker Chapitre 2 : Bases de données NoSQL Fondamentaux Cluster MongoDB Sharded avec Docker
Commande : Ajout des Shards au Cluster Explication : Ajout des Shards au Cluster
Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 69 / 70 Yassine Sabri, PhD ( Préparatif du Chapitre : MongoDB 10 avril 2025 70 / 70