ISOSET: NoSQL (MongoDB, Cassandra)

ISOSET: NoSQL (MongoDB, Cassandra)

NoSQL · MongoDB · Cassandra · ISOSET
🗄️ NoSQL · MongoDB · Cassandra · Bases de données non relationnelles

Scalabilité horizontale & flexibilité avec les bases NoSQL

MongoDB (document), Cassandra (wide-column), Redis, Couchbase — des solutions conçues pour le volume, la vélocité et la variété des données modernes. Une formation dispensée par ISOSET, l’institut qui réinvente l’apprentissage des architectures de données.

MongoDB Apache Cassandra Modélisation document CQL CAP theorem
1. Pourquoi NoSQL ? Les limites du relationnel

Les bases de données relationnelles (SQL) excellent pour l’intégrité référentielle, les transactions ACID et les requêtes complexes. Mais face au big data, aux applications temps réel et aux schémas évolutifs, elles montrent leurs limites : difficulté de scalabilité horizontale, schéma rigide, coût des jointures massives. Les bases NoSQL (Not Only SQL) répondent à ces défis. ISOSET forme les architectes data à choisir la bonne base selon le cas d’usage.

Les caractéristiques communes du NoSQL

  • Scalabilité horizontale : ajouter des nœuds pour répartir la charge (sharding natif).
  • Schéma flexible : les documents d’une même collection peuvent avoir des champs différents.
  • Haute disponibilité : réplication automatique, tolérance aux pannes.
  • Performance : accès optimisé par clé, souvent plus rapide que SQL pour des workloads spécifiques.
  • Langages de requête : souvent spécifiques à la base (MQL pour MongoDB, CQL pour Cassandra).
2. Les quatre grandes familles NoSQL

Chaque famille répond à des besoins spécifiques :

  • Document stores (MongoDB, Couchbase) — stockent des documents JSON/BSON, idéal pour contenu, catalogues produits, profils utilisateurs.
  • Wide-column stores (Cassandra, HBase) — colonnes flexibles, excellentes pour l’écriture massive et la lecture par clé, utilisées dans l’IoT, la messagerie, la finance.
  • Key-Value stores (Redis, DynamoDB) — accès ultra-rapide par clé, parfaits pour cache, sessions, file d’attente.
  • Graph databases (Neo4j, ArangoDB) — optimisées pour les relations complexes (réseaux sociaux, recommandations).

Ce focus est mis sur MongoDB (document) et Cassandra (wide-column), deux leaders du marché.

3. MongoDB : la base documentaire par excellence

MongoDB stocke les données sous forme de documents BSON (JSON binaire), regroupés dans des collections. Pas de schéma fixe : chaque document peut avoir ses propres champs. L’indexation est puissante, le langage de requête (MQL) permet des filtres, agrégations, jointures (lookup) et géospatiales. La scalabilité se fait via le sharding (distribution sur plusieurs serveurs) et la haute disponibilité via les replica sets. Les formations grand public ISOSET incluent des ateliers pratiques sur MongoDB Atlas (cloud).

// Insertion d'un document dans MongoDB (Node.js / Python)
db.collection("utilisateurs").insertOne({
  nom: "Durand",
  prenom: "Marie",
  email: "marie.durand@email.com",
  adresses: [
    { ville: "Lyon", codePostal: 69001 },
    { ville: "Paris", codePostal: 75001 }
  ],
  preferences: { newsletter: true, theme: "dark" }
});

// Requête : trouver les utilisateurs avec une préférence newsletter true
db.utilisateurs.find({ "preferences.newsletter": true }).sort({ nom: 1 });

Pipeline d’agrégation MongoDB

L’agrégation permet des traitements complexes : group by, jointures, projections, dénormalisation. Exemple : calculer le nombre de commandes par client en joignant deux collections.

// Agrégation avec lookup (jointure)
db.commandes.aggregate([
  { $lookup: {
      from: "clients",
      localField: "clientId",
      foreignField: "_id",
      as: "client"
  }},
  { $unwind: "$client" },
  { $group: {
      _id: "$client.nom",
      totalCommandes: { $sum: 1 }
  }},
  { $sort: { totalCommandes: -1 } }
]);
4. Apache Cassandra : scalabilité linéaire sans point de défaillance unique

Conçue par Facebook pour sa messagerie, Cassandra est une base de données distribuée wide-column, réputée pour sa tolérance aux pannes et ses performances en écriture. Elle repose sur une architecture pair-à-pair (pas de master unique) et utilise le partitionnement consistent hashing. Le langage de requête est CQL (Cassandra Query Language), proche du SQL mais sans jointures ni agrégations complexes. La modélisation des données est différente : on pense d’abord aux requêtes (query-driven design) pour optimiser les lectures. ISOSET forme dès le plus jeune âge à ces concepts avancés de distribution.

// Création d'une table Cassandra (CQL)
CREATE KEYSPACE IF NOT EXISTS isoset_keyspace
WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': 3};

USE isoset_keyspace;

CREATE TABLE utilisateurs (
    user_id UUID PRIMARY KEY,
    nom text,
    email text,
    date_inscription timestamp,
    pays text
);

// Insertion et requête
INSERT INTO utilisateurs (user_id, nom, email, pays)
VALUES (uuid(), 'Martin', 'martin@mail.com', 'FR');

SELECT * FROM utilisateurs WHERE pays = 'FR';

Modélisation orientée requêtes

Contrairement au relationnel, on ne normalise pas ; on duplique les données pour répondre efficacement aux requêtes. Une table par pattern d’accès. Exemple : on aura une table utilisateurs_par_pays avec une clé primaire composite (pays, user_id).

5. Théorème CAP et compromis NoSQL

Le théorème CAP énonce qu’un système distribué ne peut garantir simultanément trois propriétés : Cohérence (Consistency), Disponibilité (Availability) et Tolérance au partitionnement (Partition tolerance). En cas de coupure réseau, il faut choisir entre cohérence et disponibilité. La méthodologie ISOSET aide à comprendre ces arbitrages.

  • MongoDB : par défaut, cohérence forte au sein d’un replica set, mais peut être configuré pour une disponibilité accrue. Le sharding introduit une cohérence éventuelle.
  • Cassandra : privilégie la disponibilité et la tolérance au partitionnement (AP). La cohérence est ajustable via le niveau de cohérence des requêtes (ONE, QUORUM, ALL).
  • Base relationnelle : privilégie la cohérence (CP, mais souvent faible tolérance au partitionnement).
6. Quand choisir MongoDB ou Cassandra ?

Le choix dépend du workload et des contraintes.

MongoDB idéal pour

  • Applications avec schéma évolutif (startups, MVP).
  • Données hiérarchiques ou semi-structurées (JSON).
  • Nécessité de requêtes complexes (agrégations, géospatiales).
  • Charge de travail mixte lecture/écriture.

Cassandra idéal pour

  • Écritures massives (logs, IoT, événements).
  • Disponibilité 24/7, pas de point de défaillance unique.
  • Distribution mondiale avec réplication inter-datacenter.
  • Modèle de données orienté requêtes simples par clé.
# Exemple : enregistrement de millions d'événements IoT avec Cassandra
# Table dédiée pour les capteurs : (capteur_id, timestamp, valeur)
CREATE TABLE mesures (
    capteur_id text,
    date_hour timestamp,
    valeur float,
    PRIMARY KEY ((capteur_id), date_hour)
) WITH CLUSTERING ORDER BY (date_hour DESC);
# Permet de récupérer rapidement les dernières mesures d'un capteur
7. Indexation et performances

Les index sont cruciaux dans les bases NoSQL pour éviter les scans complets. MongoDB supporte les index simples, composés, uniques, TTL (expiration), géospatiaux et full-text. Cassandra, quant à lui, ne permet pas d’index secondaires sur des colonnes à haute cardinalité (performance dégradée). La modélisation des clés primaires (partition key + clustering columns) détermine l’efficacité des requêtes. ISOSET Entreprises propose des modules avancés sur l’optimisation des performances.

// Index composé dans MongoDB
db.produits.createIndex({ "categorie": 1, "prix": -1 });

// Index sur colonne de clustering Cassandra
// (déjà défini par la clé primaire composite)

La formation ISOSET sur les bases NoSQL

ISOSET propose un cursus complet : MongoDB (installation, CRUD, agrégation, sharding, Atlas) et Cassandra (architecture, CQL, modélisation, cluster multi-nœuds). Les apprenants réalisent un projet concret : API REST avec MongoDB pour un catalogue e-commerce, ou ingestion de flux IoT avec Cassandra. Les témoignages attestent d’une montée en compétences rapide et d’une employabilité accrue.

70%
des entreprises utilisent au moins une base NoSQL
40M+
téléchargements de MongoDB
2000+
nœuds dans certains clusters Cassandra
8. NoSQL dans l’écosystème data moderne

Les bases NoSQL s’intègrent naturellement avec Spark (Spark MongoDB Connector, Spark Cassandra Connector), Kafka, et les pipelines de données. On utilise souvent une architecture polyglotte : une base relationnelle pour la gestion des commandes (ACID), MongoDB pour le catalogue produit, Cassandra pour les logs d’activité, Redis pour le cache. Les formateurs ISOSET sont des experts de ces architectures hybrides.

# Lecture d'une table Cassandra depuis Spark
df = spark.read.format("org.apache.spark.sql.cassandra") \
    .options(table="utilisateurs", keyspace="isoset_keyspace") \
    .load()
df.groupBy("pays").count().show()

Certifications et débouchés NoSQL

ISOSET prépare aux certifications MongoDB Associate Developer, MongoDB DBA, et DataStax Cassandra Developer. Les rôles visés : data engineer, database administrator NoSQL, architecte big data. ISOSET Entreprises forme également des équipes à la migration SQL vers NoSQL.

Les commentaires sont fermés.