Qu'est-ce qu'Apache Cassandra ?

Dernière mise à jour : 24/07/2026

Apache Cassandra est une base de données NoSQL distribuée et Open Source, conçue pour gérer de grands volumes de données sur plusieurs serveurs. Son architecture décentralisée élimine les points de défaillance uniques, ce qui en fait un choix fiable pour les charges de travail à haute disponibilité et à forte intensité d'écriture qui doivent rester en ligne, quelles que soient les indisponibilités de nœuds ou de centres de données. 

Origine et évolution d'Apache Cassandra

Les ingénieurs de Facebook (aujourd'hui Meta), Avinash Lakshman et Prashant Malik, ont créé Cassandra pour optimiser la recherche dans la boîte de réception de Facebook. Il leur fallait un système capable de stocker et de rechercher des ensembles de données volumineux sur de nombreux serveurs sans ralentissement. 

Pour le créer, l'équipe s'est inspirée de deux autres modèles de base de données établis : elle a combiné le modèle de stockage à colonnes larges de l'article de Google sur Bigtable de 2006 avec l'architecture en anneau distribuée de Dynamo d'Amazon. Ils ont nommé le projet d'après la prophétesse troyenne mythologique, en référence à la"malédiction" de faire des prédictions auxquelles personne ne croit.

Le projet a rapidement évolué à mesure que son potentiel est devenu évident pour la communauté des ingénieurs :

  • 2008 : Facebook publie le code source de Cassandra en tant que projet Open Source sur Google Code.
  • 2009 : le projet est accepté dans l'incubateur Apache, ce qui marque sa transition vers un logiciel géré par la communauté.
  • 2010 : Cassandra devient un projet de premier plan de la fondation Apache Software, ce qui lui permet de s'imposer dans le secteur.
  • 2011 : la sortie de la version 1.0 a marqué la maturité du projet, avec une adoption généralisée par des entreprises comme Netflix, eBay et Twitter.
  • 2021 : la version 4.0 place la barre très haut en termes de stabilité, avec des milliers de corrections de bugs et des tests approfondis.
  • 2024–2026 : les versions modernes comme la 5.0 et les suivantes ont ajouté la prise en charge de technologies plus récentes, telles que la recherche vectorielle, l'indexation associée au stockage (SAI) et une meilleure sécurité, ce qui permet à la base de données de rester pertinente pour les charges de travail modernes d'IA et de big data.

De nombreuses entreprises lui font confiance pour alimenter leurs systèmes en raison de son ancienneté. Bien que Cassandra reste un choix éprouvé pour les systèmes à haute disponibilité, l'évaluation de ses compromis de conception aide les équipes à décider si l'autogestion d'une architecture héritée répond aux besoins des applications modernes.

À quoi sert Apache Cassandra ?

Cassandra est souvent utilisé pour les tâches qui impliquent un flux constant de données, comme les informations provenant de capteurs intelligents (IoT), la journalisation des applications et les pipelines de surveillance.  Il est également largement utilisé pour le suivi des événements et les systèmes de recommandation, où il est essentiel d'enregistrer et d'interroger rapidement les données à grande échelle.

Les systèmes qui ne peuvent pas se permettre de temps d'arrêt utilisent Cassandra, car sa réplication multi-centre de données et ses écritures asynchrones permettent de mettre hors connexion un centre de données entier sans interrompre le service ni perdre de données. De nombreuses entreprises internationales s'en servent pour que leurs applications fonctionnent 24h/24 et 7j/7 dans différentes régions.

Comment fonctionne l'architecture d'Apache Cassandra ?

Cassandra utilise une conception de pair à pair dans laquelle chaque nœud est identique. Ces nœuds sont configurés dans un anneau décentralisé et utilisent une méthode appelée hachage cohérent pour répartir les données de manière uniforme, éviter les goulots d'étranglement et s'assurer qu'il n'y a pas de point de défaillance unique. Vous pouvez également choisir le niveau de rigueur de la base de données lorsqu'elle vérifie si une lecture ou une écriture a réussi. Cela vous permet de choisir entre la vitesse et la disponibilité des données les plus récentes, en fonction des besoins spécifiques de votre application.

La base de données utilise un modèle appelé "magasin orienté colonnes", qui permet d'organiser vos données en espaces de clés, lignes et colonnes dynamiques, de manière semblable à une feuille de calcul standard, mais avec plus de flexibilité. Vous pouvez ainsi concevoir vos données de manière à pouvoir les modifier facilement à mesure que votre application se développe.

Fonctionnalité

Apache Cassandra

SGBDR classique

Modèle de données

Dénormalisés

Normalisés

Flexibilité des schémas

Peut changer pendant l'exécution

Nécessite un temps d'arrêt

Structure de l'index

Arbre de fusion structuré en journal

B-Tree


Optimisation de l'écriture

Principal

Secondaire

Positionnement CAP (cohérence, disponibilité, tolérance aux partitions)

AP (disponibilité et tolérance de partition)

CA (Cohérence et disponibilité)

Fonctionnalité de requête

CQL (pas de jointure)

SQL complet avec des jointures

Fonctionnalité

Apache Cassandra

SGBDR classique

Modèle de données

Dénormalisés

Normalisés

Flexibilité des schémas

Peut changer pendant l'exécution

Nécessite un temps d'arrêt

Structure de l'index

Arbre de fusion structuré en journal

B-Tree


Optimisation de l'écriture

Principal

Secondaire

Positionnement CAP (cohérence, disponibilité, tolérance aux partitions)

AP (disponibilité et tolérance de partition)

CA (Cohérence et disponibilité)

Fonctionnalité de requête

CQL (pas de jointure)

SQL complet avec des jointures

Comment Cassandra stocke et traite les données

Le moteur de stockage Cassandra s'appuie sur un arbre LSM (Log-Structured Merge) pour gérer les données. Les écritures entrantes sont enregistrées dans un journal de commit pour assurer leur durabilité et conservées en mémoire via une Memtable. Lorsqu'elles sont pleines, les Memtables sont vidées sur le disque sous forme de tables de chaînes triées (SSTables) immuables.

Cette conception en mode "ajout uniquement" explique pourquoi Cassandra excelle dans les débits d'écriture élevés. En évitant les mises à jour sur place, le système peut traiter les données entrantes beaucoup plus rapidement que les systèmes traditionnels qui s'appuient sur des E/S de disque aléatoires.

Questions fréquentes

Voici les réponses à certaines questions fréquentes sur Cassandra.

Il s'agit d'une base de données distribuée utilisée pour les applications qui doivent rester en ligne à tout moment et gérer de nombreuses écritures de données, telles que les journaux de flux ou les données de capteurs.

Cassandra est une base de données NoSQL. Elle utilise un langage appelé CQL, qui ressemble à SQL, mais ne prend pas en charge toutes les mêmes fonctionnalités, comme les jointures complexes ou la sécurité des transactions approfondie.

Kafka sert à déplacer des données en temps réel, tandis que Cassandra sert à les stocker de manière sécurisée. Elles sont souvent utilisés ensemble dans un même système.

Cassandra est plus adaptée pour écrire de grandes quantités de données à grande échelle. MongoDB est une base de données de documents qui est souvent plus adaptée si vous devez effectuer des recherches dans différents types de données avec des structures flexibles.

Cassandra est conçue pour le traitement transactionnel en ligne (Online Transaction Processing, OLTP), ce qui signifie qu'elle est efficace pour gérer des lectures et des écritures simples et rapides. Elle n'est pas conçue pour les tâches d'analyse complexes, comme l'exécution de rapports volumineux ou l'analyse de toutes vos données en même temps.

Avantages d'Apache Cassandra

Évolutivité

Vous pouvez ajouter des nœuds pour gérer plus de travail, sans avoir à éteindre le système.

Aucun point de défaillance unique

Comme tous les nœuds sont égaux, le système est très stable.

Copie automatique des données

Le système enregistre automatiquement vos données à plusieurs endroits.

Écritures rapides

La conception du stockage est prévue pour gérer un grand nombre d'écritures simultanées.

Cohérence réglable

Vous pouvez contrôler le niveau de rigueur de vos données pour chaque requête. Choisissez "Tous" les nœuds pour une précision parfaite ou "Un" nœud pour une vitesse maximale.

Pas de dépendance vis-à-vis d'un fournisseur

Comme il s'exécute sur du matériel standard, vous n'êtes pas lié à un fournisseur de services cloud spécifique. Vous pouvez déplacer vos données entre des configurations sur site et différents clouds si nécessaire.

Utiliser des services gérés pour optimiser les charges de travail Cassandra

L'exécution de votre propre système Cassandra nécessite beaucoup de frais généraux. Vous devez planifier l'espace nécessaire, configurer les serveurs, gérer les réparations, vous assurer d'avoir des sauvegardes et effectuer des mises à jour pendant que le système est en cours d'exécution.

Les services gérés changent la donne en s'occupant du plus gros du travail pour vous. 

  • Automatiser la maintenance : les services gérés peuvent aider à automatiser ces processus, comme le compactage et la réparation des nœuds, en veillant à ce qu'ils s'exécutent au bon moment sans ralentir votre application.
  • Planification de la capacité et autoscaling : au lieu de deviner le nombre de serveurs dont vous avez besoin, les services gérés vous aident à surveiller votre trafic, à économiser de l'argent et à éviter les goulots d'étranglement au niveau des performances.
  • Simplifiez la sauvegarde et la récupération : la perte de données n'est pas une option. Les services gérés facilitent et automatisent les sauvegardes, ce qui vous permet de restaurer rapidement vos données en cas de problème.
  • Surveillance proactive : ces services sont fournis avec des tableaux de bord intégrés qui surveillent les signes de problèmes, tels que des temps de réponse lents du disque ou une utilisation élevée du processeur, avant qu'ils ne se transforment en pannes.
  • Appliquer des correctifs et mettre à niveau : il est essentiel de maintenir les logiciels à jour pour des raisons de sécurité et de performances. Les services gérés peuvent vous aider à gérer ces mises à jour en arrière-plan, souvent à l'aide de mises à niveau progressives qui garantissent que votre base de données reste en ligne pendant toute la durée de l'opération.

En transférant ces tâches opérationnelles vers une plate-forme gérée, votre équipe n'a plus à se soucier de la gestion de la base de données et peut se concentrer sur l'apport de valeur ajoutée pour vos utilisateurs.

Choisir la bonne stratégie de déploiement Cassandra

Pour exécuter vos charges de travail Cassandra, vous avez trois options principales. 

  • Premièrement, vous pouvez gérer vous-même Cassandra Open Source, ce qui vous donne un contrôle total sur le logiciel, mais oblige votre équipe à gérer l'infrastructure sous-jacente.
  • Vous pouvez également choisir un service géré compatible avec Cassandra, qui offre la même expérience familière sans les difficultés liées aux opérations quotidiennes.
  • Enfin, vous pouvez opter pour une alternative cloud native, comme Google Cloud Bigtable ou Spanner, qui sont spécialement conçues pour les mêmes modèles de haute disponibilité et de haut débit, mais qui sont conçues pour fonctionner de manière transparente avec les écosystèmes cloud modernes.

Le choix de la bonne approche dépend de l'équilibre entre l'expertise de votre équipe et les besoins spécifiques de votre entreprise. Utilisez cette checklist pour vous aider à prendre votre décision :

Question

Si la réponse est "oui"…

Si la réponse est "non"…

Avons-nous le temps de corriger et d'ajuster la base de données ?

Vous pouvez gérer les clusters autogérés si vous disposez d'ingénieurs dédiés à la gestion de base de données.

Choisissez un service géré pour éviter de perdre du temps d'ingénierie sur la maintenance de l'infrastructure.

Est-il plus important de "rester en ligne" que d'être parfaitement cohérent ?

Le modèle AP de Cassandra est idéal pour les applications à haute disponibilité.

Envisagez d'utiliser Cloud Spanner, qui offre l'évolutivité d'un système distribué avec une sécurité stricte des données.

Devons-nous évoluer rapidement à mesure que nous nous développons ?

Utilisez des services gérés ou Bigtable, qui offrent l'autoscaling pour gérer les pics de trafic.

Un cluster statique peut fonctionner, mais vous risquez de rencontrer des goulots d'étranglement au niveau des performances pendant les périodes de forte activité.

Un service géré rendrait-il notre travail plus fiable ?

Tout à fait. Les services gérés automatisent les sauvegardes et l'application de correctifs pour éviter les erreurs humaines.

Vous acceptez le risque plus élevé de maintenance manuelle et d'erreurs de configuration potentielles.

Visons-nous la portabilité de l'infrastructure ?

La solution autogérée vous offre la plus grande liberté pour passer d'un cloud à l'autre ou pour l'exécution sur site.

Vous êtes à l'aise avec les avantages spécifiques au cloud en échange d'un effort opérationnel moindre.

Question

Si la réponse est "oui"…

Si la réponse est "non"…

Avons-nous le temps de corriger et d'ajuster la base de données ?

Vous pouvez gérer les clusters autogérés si vous disposez d'ingénieurs dédiés à la gestion de base de données.

Choisissez un service géré pour éviter de perdre du temps d'ingénierie sur la maintenance de l'infrastructure.

Est-il plus important de "rester en ligne" que d'être parfaitement cohérent ?

Le modèle AP de Cassandra est idéal pour les applications à haute disponibilité.

Envisagez d'utiliser Cloud Spanner, qui offre l'évolutivité d'un système distribué avec une sécurité stricte des données.

Devons-nous évoluer rapidement à mesure que nous nous développons ?

Utilisez des services gérés ou Bigtable, qui offrent l'autoscaling pour gérer les pics de trafic.

Un cluster statique peut fonctionner, mais vous risquez de rencontrer des goulots d'étranglement au niveau des performances pendant les périodes de forte activité.

Un service géré rendrait-il notre travail plus fiable ?

Tout à fait. Les services gérés automatisent les sauvegardes et l'application de correctifs pour éviter les erreurs humaines.

Vous acceptez le risque plus élevé de maintenance manuelle et d'erreurs de configuration potentielles.

Visons-nous la portabilité de l'infrastructure ?

La solution autogérée vous offre la plus grande liberté pour passer d'un cloud à l'autre ou pour l'exécution sur site.

Vous êtes à l'aise avec les avantages spécifiques au cloud en échange d'un effort opérationnel moindre.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.
Contactez un spécialiste des ventes Google Cloud pour discuter plus en détail de votre problématique.

Exécuter des charges de travail Cassandra sur Google Cloud avec Bigtable et Spanner

Si vous souhaitez vous décharger de la gestion de Cassandra, Google Cloud propose deux solutions utiles : Bigtable et Spanner

Si vous utilisez déjà Cassandra pour son stockage à colonnes larges et son débit d'écriture élevé, Bigtable peut être une solution idéale. Pour l'utiliser, vous pouvez mapper vos espaces de clés et tables Cassandra existants à des tables Bigtable, puis mettre à jour le code de votre application pour utiliser les bibliothèques clientes Cloud Bigtable. Comme il s'agit d'un service entièrement géré, Bigtable gère automatiquement le partitionnement et l'équilibrage de charge que vous deviez auparavant régler manuellement dans Cassandra.

Si votre charge de travail Cassandra a atteint un point où vous avez besoin d'une cohérence plus forte ou si vous avez besoin des fonctionnalités relationnelles de SQL, Spanner peut également être un bon choix. Pour l'utiliser, vous devez définir votre schéma à l'aide du langage SQL standard, ce qui peut vous obliger à normaliser certaines de vos données Cassandra dénormalisées. Il offre le même scaling horizontal que Cassandra, mais avec l'avantage d'une cohérence forte et globale, et d'une compatibilité SQL relationnelle complète.

Passez à l'étape suivante

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

  • Produits Google Cloud
  • Parcourez plus de 100 produits. Les nouveaux clients bénéficient de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail. Tous les clients peuvent utiliser plus de 25 produits gratuitement, dans les limites mensuelles spécifiées.
Google Cloud