Qu’est-ce qu’Apache Cassandra ?

Fenêtres éclairées d’un grand bâtiment, chacune présentant une scène différente

Auteurs

Tom Krantz

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Qu’est-ce qu’Apache Cassandra ?

Apache Cassandra (Cassandra) est une base de données NoSQL open source conçue pour gérer de grandes quantités de données sur plusieurs centres de données.

 

Conçu comme système de gestion de base de données distribué (SGBD), Cassandra repose sur une architecture peer-to-peer. Au sein des clusters Cassandra, tous les nœuds, ou serveurs individuels qui stockent une partie des données, sont égaux, sans dépendre d’un nœud maître.

Au lieu d’être stockées dans un emplacement centralisé, les données sont réparties entre les pairs, ce qui élimine le point de défaillance unique (dysfonctionnement déclenché en cascade). Cette conception permet une réplication sans heurts, une distribution efficace des données et un service continu, même en cas de temps d’arrêt planifié ou de changements soudains. 

Cassandra associe automatisation, sauvegarde des données et indicateurs intégrés pour des cas d’utilisation comme la gestion des appareils IdO (Internet des objets). Plus précisément, il allie évolutivité linéaire, haute disponibilité et tolérance aux pannes, ce qui le rend particulièrement adapté aux applications de big data et aux workloads en temps réel. En septembre 2024, Cassandra était utilisé par plus de 30 000 entreprises dans le monde.

Les dernières actualités technologiques, étayées par des avis d’expert

Restez au fait des tendances les plus étonnantes du secteur dans le domaine de l’IA, de l’automatisation, des données et bien d’autres avec la newsletter Think. Consultez la déclaration de confidentialité d’IBM.
Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

L’histoire de Cassandra

L’histoire de Cassandra a commencé en 2007, chez Facebook, lorsque les ingénieurs recherchaient un système capable de stocker les données de la plateforme de messagerie en plein essor de l’entreprise. En combinant des modèles de base de données NoSQL bien connus (Dynamo d’Amazon et Bigtable de Google), ils ont créé un système alliant structures de données efficaces et cohérence à terme, dont les mises à jour se propagent jusqu’à ce que toutes les copies correspondent.

Lancé en 2008 en tant que projet open source, Cassandra a rapidement conquis les développeurs recherchant une alternative aux bases de données relationnelles traditionnelles. L’Apache Software Foundation l’a pris sous son aile en 2009 pour formaliser sa gouvernance et accélérer l’adoption par la communauté.

L’essor de Cassandra s’est amplifié lorsque ses premiers adeptes, notamment eBay, Spotify et Instagram, l’ont déployé pour gérer leurs big data. Le succès de l’IdO et de la personnalisation en temps réel ont renforcé la position de Cassandra en tant que base de données incontournable pour allier évolutivité et disponibilité.

Le support commercial DataStax a ajouté outils, tutoriels et services dédiés aux entreprises, tandis que la communauté ouverte a développé des outils et enrichi la documentation. Aujourd’hui, Cassandra reste au cœur de nombreux systèmes distribués au service des entreprises et de l’écosystème open source.

Mixture of Experts | 28 août, épisode 70

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Pourquoi Cassandra est-il important ?

Des services de streaming aux achats en ligne en passant par les réseaux sociaux, le consommateur attend une expérience en ligne sans interruption. Pour les entreprises, le temps de fonctionnement n’est plus un objectif informatique, mais un indicateur métier. Le coût d’un manquement à ses engagements est vertigineux : les grandes entreprises internationales perdent environ 400 milliards de dollars USD par an à cause des temps d’arrêt imprévus.

En outre, l’afflux de données non structurées (journaux d’événements, télémétrie et flux de données) complique les opérations plus complexes dans chaque région et environnement cloud, et augmente le risque de panne système. Les entreprises ont besoin d’une base de données fiable, capable de gérer divers types de données et de s’adapter à la demande des infrastructures mondiales. Cassandra est conçu pour répondre à ces exigences.

Les secteurs comptent sur la performance de Cassandra pour traiter des milliards d’opérations (insertion, mise à jour et suppression), tout en offrant aux utilisateurs une précision en temps réel. Sa résilience provient de la réplication des données sur des serveurs classiques, ou des machines standard prêtes à l’emploi, afin de réduire le risque de panne et d’assurer une durabilité même en cas de défaillance du matériel.

La capacité de Cassandra à gérer les workloads sur plusieurs centres de données garantit cohérence et disponibilité aux entreprises du monde entier. Des entreprises telles que Netflix et Amazon utilisent Cassandra pour offrir une expérience personnalisée, tout en évitant les temps d’arrêt et la perte de données. En effet, l’équipe chargée de la plateforme de gestion des actifs de Netflix utilise Cassandra pour gérer environ 1,9 milliard d’annotations (environ 2,6 To). Elle a ainsi pu doubler son cluster, passant de 12 à 24 nœuds.

Cassandra et bases de données relationnelles traditionnelles

Contrairement aux bases de données relationnelles, qui reposent sur des définitions de schéma rigides et un contrôle centralisé, Cassandra est conçu pour assurer une distribution à l’échelle. Dans les systèmes relationnels, les clés primaires riment avec modélisation stricte des données et évolutivité restreinte. Cassandra, quant à lui, utilise une clé de partition et un facteur de réplication pour déterminer comment les jeux de données sont stockés à travers les nœuds et les centres de données.

Si les systèmes en langage de requête structuré (SQL) excellent dans la réalisation de jointures et d’agrégations complexes, ils engendrent souvent des goulets d’étranglement, ainsi que le risque d’un point de défaillance unique. Cassandra évite ce problème en alliant architecture distribuée et cohérence à terme. Contrairement à MongoDB, la base de données Cassandra privilégie les workloads à haut volume d’écriture, dotée d’une évolutivité linéaire, sur plusieurs centres de données.

Pour les entreprises qui gèrent d’importantes quantités de données, les avantages de Cassandra sont indéniables : débit élevé, faible latence et tolérance aux pannes. Cependant, Cassandra ne permet pas le même niveau d’interrogation ad hoc que certaines bases de données relationnelles. Les développeurs qui utilisent Cassandra doivent élaborer leur stratégie de modélisation des données de façon à optimiser les opérations d’écriture, la réplication et l’intégrité des données.

Fonctionnalités principales de Cassandra

La conception de Cassandra associe innovations en matière de systèmes distribués et outils de gestion des données d’entreprise. En voici les principales caractéristiques :

  • Code source ouvert
  • Hautes performances
  • Disponibilité personnalisable
  • Évolutivité linéaire
  • Réplication fluide
  • Interface familière

Open source

Open source et proposé par l’Apache Software Foundation, Cassandra permet aux entreprises d’éviter l’enfermement propriétaire et de personnaliser la base de données selon leurs besoins. Lorsqu’une assistance dédiée aux entreprises est nécessaire, les équipes peuvent utiliser les ressources communautaires ou faire le choix du support commercial et des services gérés.

Hautes performances

Le moteur de stockage de Cassandra suit un flux (ou chemin d’écriture) étape par étape, composé d’un journal de validation, d’une table en mémoire (memtable) et de fichiers de table de chaînes triées (SSTable). Ce flux accepte rapidement les opérations d’écriture et les protège. Les données fréquemment consultées sont conservées dans le cache pour traiter les requêtes à faible latence, tandis que le compactage, une fonction de gestion automatique, garantit un stockage efficace des données à long terme.

Disponibilité personnalisable

Selon le théorème CAP, en cas de partitionnement du réseau, les systèmes distribués ne peuvent assurer que deux des trois caractéristiques souhaitées : cohérence, disponibilité et tolérance au partitionnement (CAP). Cassandra gère ce compromis grâce à des niveaux de cohérence réglables, ce qui permet aux utilisateurs de privilégier la disponibilité ou la cohérence selon leur cas d’utilisation.

Évolutivité linéaire

Cassandra augmente la capacité en ajoutant de nouveaux nœuds sans interruption de service, offrant une évolutivité linéaire aux serveurs classiques au lieu de procéder à des mises à niveau verticales et coûteuses. Au fur et à mesure que les nœuds sont ajoutés, Cassandra redistribue automatiquement les données et le trafic au sein du cluster, de manière que les workloads évoluent et que le débit augmente proportionnellement.

Réplication sans heurts

Cassandra assure la réplication des données à travers les nœuds et les centres de données pour offrir une faible latence aux utilisateurs locaux, tout en évitant le point de défaillance unique. Il s’intègre également à Kubernetes, aux cadres d’interface de programmation d’application (API) et aux environnements Amazon Web Services (AWS). Écrit en Java, il s’exécute sur la machine virtuelle Java (JVM).

Interface familière

Les équipes utilisent le langage CQL (Cassandra Query Language), inspiré de SQL, pour définir rapidement des éléments essentiels tels que l’espace de clés, les tables et les clés primaires. Les outils interactifs comme CQL shell (cqlsh) et les tutoriels officiels permettent également d’accélérer l’intégration des nouveaux développeurs.

Comprendre le langage de requête Cassandra

Cassandra interagit avec les applications grâce à CQL, un langage spécialisé inspiré de SQL. La syntaxe CQL est familière aux développeurs de bases de données, puisqu’elle leur permet de définir l’espace clé, le schéma, les types de données, ainsi que les clés primaires et de partitionnement.

Par exemple, lors du lancement d’un jeu à l’échelle mondiale, les développeurs créeront un espace de clés, l’équivalent d’une base de données Cassandra de premier niveau, qui définit les paramètres de réplication. Ils pourront ensuite concevoir des tables au sein desquelles la clé de partition (par exemple, l’ID ou la région du joueur) conserve les données connexes sur les mêmes nœuds pour assurer une distribution efficace des données. Grâce à cqlsh, l’équipe pourra exécuter les tutoriels, valider les requêtes et gérer le cluster Cassandra en ajoutant de nouveaux nœuds pour faire face au nombre croissant de joueurs.

Étant donné que Cassandra met l’accent sur les opérations d’écriture et le débit, sa syntaxe évite toute fonctionnalité susceptible d’affecter la performance, comme les jointures complexes. Les développeurs s’appuient donc sur des index secondaires, des agrégations et une modélisation de données optimisée pour gagner en flexibilité.

CQL et SQL

Si les langages CQL et SQL se ressemblent, leur approche de la gestion des données diffère.

Structures de données

SQL fonctionne sur des tables normalisées, tandis que CQL est conçu pour les données Cassandra dénormalisées, alignées sur les clés de partition.

Cohérence

SQL assure strictement l’intégrité des données, tandis que Cassandra garantit une cohérence à terme avec plusieurs niveaux configurables.

Évolutivité

Les systèmes SQL s’appuient généralement sur une mise à l’échelle verticale, tandis que Cassandra permet une évolutivité linéaire en ajoutant de nouveaux nœuds aux clusters Cassandra.

Opérations

SQL est optimisé pour les transactions, tandis que CQL est conçu pour les requêtes en temps réel et les opérations d’écriture à volume élevé.

Si les développeurs qui quittent SQL peuvent s’adapter rapidement à la syntaxe de CQL, ils doivent repenser leur stratégie de modélisation des données pour tirer parti de l’approche des systèmes distribués de Cassandra.

Cas d’utilisation de Cassandra

Cassandra alimente les workloads essentielles des secteurs exigeant performance élevée, faible latence et résilience. Exemples :

  • Commerce électronique : les détaillants utilisent Cassandra pour stocker les données de panier, personnaliser les recommandations et traiter les paiements avec une tolérance aux pannes.
  • IdO : Cassandra gère les flux de capteurs et les jeux de données provenant de millions d’appareils, afin de garantir informations en temps réel et durabilité.
  • Déploiements cloud : Cassandra s’intègre à AWS et à d’autres services cloud. Il peut également être orchestré sur Kubernetes pour gérer les environnements conteneurisés.
  • Streaming et divertissement : les services de streaming exploitent Cassandra pour gérer l’activité des utilisateurs et personnaliser l’expérience sans risquer de temps d’arrêt.

Outre ces marchés verticaux, Cassandra profite aux entreprises qui créent des systèmes distribués pour stocker les big data et les données évolutives. Associant prise en charge des API, outils d’entreprise et tutoriels communautaires ouverts, Cassandra demeure la pierre angulaire des systèmes de gestion de bases de données modernes.

Solutions connexes
Outils et solutions d’analyse

Pour prospérer, les entreprises doivent exploiter les données pour fidéliser leur clientèle, automatiser les processus métier et innover avec des solutions pilotées par l’IA.

Explorer les solutions d’analytique
Services de conseil pour les données et les analyses

Avec IBM Consulting, exploitez les données de votre entreprise et développez une organisation basée sur les informations pour tirer des avantages métier.

Découvrir les services d’analytique
IBM Cognos Analytics

Découvrez Cognos Analytics 12.0, des informations alimentées par l’IA pour une prise de décision plus éclairée.

Découvrir Cognos Analytics
Passez à l’étape suivante

Pour prospérer, les entreprises doivent exploiter les données pour fidéliser leur clientèle, automatiser les processus métier et innover avec des solutions pilotées par l’IA.

Explorer les solutions d’analytique Découvrir les services d’analytique

Apache Cassandra et Cassandra sont des marques déposées de l’Apache Software Foundation.