Was ist Apache Cassandra?

Zuletzt aktualisiert: 24. Juni 2026

Apache Cassandra ist eine verteilte Open-Source-NoSQL-Datenbank, die für die Verarbeitung großer Datenmengen auf mehreren Servern entwickelt wurde. Die dezentrale Architektur eliminiert Single Points of Failure und macht sie zu einer zuverlässigen Wahl für hochverfügbare, schreibintensive Arbeitslasten, die unabhängig von Knoten- oder Rechenzentrumsausfällen online bleiben müssen. 

Ursprung und Entwicklung von Apache Cassandra

Die Facebook-Ingenieure (jetzt Meta) Avinash Lakshman und Prashant Malik entwickelten Cassandra, um die Posteingangssuche von Facebook zu unterstützen. Sie brauchten ein System, das riesige Datasets auf vielen Servern speichern und durchsuchen konnte, ohne langsamer zu werden. 

Dazu ließ sich das Team von zwei anderen etablierten Datenbankmodellen inspirieren: Es kombinierte das Wide-Column-Speichermodell aus dem Bigtable-Paper von Google aus dem Jahr 2006 mit der verteilten Ringarchitektur von Amazon Dynamo. Sie nannten das Projekt nach der mythologischen trojanischen Seherin, eine Anspielung auf den „Fluch“, Vorhersagen zu machen, die andere nicht glaubten.

Das Projekt entwickelte sich schnell weiter, als sein Potenzial für die breitere Ingenieur-Community deutlich wurde:

  • 2008: Facebook veröffentlichte den Cassandra-Quellcode als Open-Source-Projekt auf Google Code.
  • 2009: Das Projekt wurde in den Apache Incubator aufgenommen und damit zu einer von der Community verwalteten Software.
  • 2010: Cassandra wurde zu einem Top-Level-Projekt der Apache Software Foundation und festigte damit seinen Platz in der Branche.
  • 2011: Die Veröffentlichung von Version 1.0 signalisierte die Reife des Projekts, das von Unternehmen wie Netflix, eBay und Twitter weitgehend übernommen wurde.
  • 2021: Mit der Veröffentlichung von Version 4.0 wurde die Messlatte für Stabilität hoch gelegt, mit Tausenden von Fehlerbehebungen und umfangreichen Tests.
  • 2024–2026: Moderne Versionen wie 5.0 und höher unterstützen neuere Technologien wie Vektorsuche, Storage-Attached Indexing (SAI) und verbesserte Sicherheit. Dadurch bleibt die Datenbank für moderne KI- und Big-Data-Workloads relevant.

Aufgrund seiner langen Geschichte vertrauen viele Unternehmen auf dieses Betriebssystem. Cassandra ist zwar nach wie vor eine bewährte Wahl für Systeme mit hoher Verfügbarkeit, aber die Abwägung der Design-Kompromisse hilft Teams bei der Entscheidung, ob die Selbstverwaltung einer Legacy-Architektur den Anforderungen moderner Anwendungen entspricht.

Wofür wird Apache Cassandra eingesetzt?

Cassandra wird häufig für Aufgaben verwendet, bei denen ein stetiger Datenstrom verarbeitet werden muss, z. B. Informationen von intelligenten (IoT-)Sensoren, Anwendungsprotokollierung und Monitoring-Pipelines.  Außerdem wird sie häufig für das Ereignis-Tracking und Empfehlungssysteme verwendet, bei denen es wichtig ist, Daten schnell und in großem Umfang zu speichern und abzufragen.

Systeme, die sich keine Ausfallzeiten leisten können, verwenden Cassandra, da die Replikation über mehrere Rechenzentren und asynchrone Schreibvorgänge es ermöglichen, dass ein ganzes Rechenzentrum offline geht, ohne den Dienst zu unterbrechen oder Daten zu verlieren. Viele globale Unternehmen verlassen sich darauf, um ihre Anwendungen rund um die Uhr in verschiedenen Regionen auszuführen.

Wie funktioniert die Architektur von Apache Cassandra?

Cassandra verwendet ein Peer-to-Peer-Design, bei dem jeder Knoten identisch ist. Diese Knoten sind in einem dezentralen Ring eingerichtet und verwenden eine Methode namens konsistente Hashfunktion, um Daten gleichmäßig zu verteilen, Engpässe zu vermeiden und sicherzustellen, dass es keine Single Points of Failure gibt. Sie können auch festlegen, wie streng die Datenbank prüfen soll, ob ein Lese- oder Schreibvorgang erfolgreich war. So können Sie je nach den Anforderungen Ihrer Anwendung zwischen Geschwindigkeit und den aktuellsten Daten wählen.

Die Datenbank verwendet ein Modell namens Wide-Column Store, mit dem Sie Ihre Daten in Keyspaces, Zeilen und dynamischen Spalten organisieren können, ähnlich wie in einer normalen Tabelle, aber mit mehr Flexibilität. So können Sie Ihre Daten so gestalten, dass sie sich leicht ändern lassen, wenn Ihre App wächst.

Funktion

Apache Cassandra

Traditionelles RDBMS

Datenmodell

Denormalisiert

Normalized

Schemaflexibilität

Kann während der Ausführung geändert werden

Erfordert Ausfallzeit

Indexstruktur

Log-structured merge tree

B‑Baum


Schreiboptimierung

Primär

Sekundär

CAP-Positionierung (Konsistenz, Verfügbarkeit, Partitionstoleranz)

AP (verfügbar und partitionstolerant)

CA (Consistent and available)

Abfragefunktion

CQL (keine JOINs)

Vollständiges SQL mit JOINs

Funktion

Apache Cassandra

Traditionelles RDBMS

Datenmodell

Denormalisiert

Normalized

Schemaflexibilität

Kann während der Ausführung geändert werden

Erfordert Ausfallzeit

Indexstruktur

Log-structured merge tree

B‑Baum


Schreiboptimierung

Primär

Sekundär

CAP-Positionierung (Konsistenz, Verfügbarkeit, Partitionstoleranz)

AP (verfügbar und partitionstolerant)

CA (Consistent and available)

Abfragefunktion

CQL (keine JOINs)

Vollständiges SQL mit JOINs

Wie Cassandra Daten speichert und verarbeitet

Die Cassandra-Speicher-Engine verwendet einen LSM-Baum (Log-Structured Merge), um Daten zu verarbeiten. Eingehende Schreibvorgänge werden in ein Commit-Log geschrieben, um die Langlebigkeit zu gewährleisten, und über eine Memtable im Arbeitsspeicher gehalten. Wenn sie voll sind, werden Memtables als unveränderliche Sorted String Tables (SSTables) auf das Laufwerk geschrieben.

Dieses Design, bei dem nur angehängt wird, ist der Grund, warum Cassandra einen so hohen Durchsatz bei schreibintensiven Workloads bietet. Da In-Place-Updates vermieden werden, kann das System eingehende Daten viel schneller verarbeiten als herkömmliche Systeme, die auf zufälligen Laufwerk-E/A basieren.

Häufig gestellte Fragen

Hier finden Sie Antworten auf einige häufig gestellte Fragen zu Cassandra.

Es ist eine verteilte Datenbank, die für Anwendungen verwendet wird, die ständig online sein und viele Datenschreibvorgänge verarbeiten müssen, wie z. B. Streaming-Logs oder Sensordaten.

Cassandra ist eine NoSQL-Datenbank. Sie verwendet eine Sprache namens CQL, die wie SQL aussieht, aber nicht alle Funktionen wie komplexe Joins oder tiefe Transaktionssicherheit unterstützt.

Kafka dient dazu, Daten in Echtzeit zu verschieben, während Cassandra für die sichere Speicherung dieser Daten zuständig ist. Sie werden oft zusammen in einem System verwendet.

Cassandra eignet sich am besten für das Schreiben großer Datenmengen im großen Maßstab. MongoDB ist eine Dokumentendatenbank, die sich oft besser eignet, wenn Sie verschiedene Datentypen mit flexiblen Strukturen durchsuchen müssen.

Cassandra ist für die Online-Transaktionsverarbeitung (OLTP) konzipiert, d. h. es eignet sich gut für einfache, schnelle Lese- und Schreibvorgänge. Es ist nicht für komplexe Analyseaufgaben wie das Ausführen großer Berichte oder das gleichzeitige Scannen aller Daten konzipiert.

Vorteile von Apache Cassandra

Skalierbarkeit

Sie können weitere Knoten hinzufügen, um mehr Arbeit zu bewältigen, ohne das System herunterfahren zu müssen.

Kein Single Point of Failure

Da alle Knoten gleich sind, ist das System sehr stabil.

Automatisches Kopieren von Daten

Das System speichert Ihre Daten automatisch an mehreren Orten.

Schnelle Schreibvorgänge

Das Speicherkonzept ist darauf ausgelegt, eine große Anzahl von Schreibvorgängen gleichzeitig zu verarbeiten.

Abstimmbare Konsistenz

Sie können für jede Abfrage festlegen, wie streng die Daten sein müssen. Wählen Sie „Alle“ Knoten für perfekte Genauigkeit oder „Einen“ Knoten für die höchstmögliche Geschwindigkeit.

Keine Anbieterabhängigkeit

Da es auf Standardhardware läuft, sind Sie nicht an bestimmte Cloud-Anbieter gebunden. Sie können Ihre Daten bei Bedarf zwischen lokalen Setups und verschiedenen Clouds verschieben.

Verwaltete Dienste zur Optimierung von Cassandra-Arbeitslasten verwenden

Der Betrieb eines eigenen Cassandra-Systems ist mit einem hohen Aufwand verbunden. Sie müssen planen, wie viel Speicherplatz Sie benötigen, die Server einrichten, Reparaturen durchführen, für Backups sorgen und Updates durchführen, während das System läuft.

Verwaltete Dienste ändern dies, indem sie die schwierigen Aufgaben für Sie übernehmen. 

  • Wartung automatisieren: Verwaltete Dienste können helfen, diese Prozesse wie Komprimierung und Knotenreparaturen zu automatisieren, sodass sie zur richtigen Zeit ausgeführt werden, ohne Ihre Anwendung zu verlangsamen.
  • Kapazitätsplanung und Autoscaling: Anstatt zu schätzen, wie viele Server Sie benötigen, können Sie mit verwalteten Diensten Ihren Traffic überwachen, Geld sparen und Leistungsengpässe vermeiden.
  • Sicherung und Wiederherstellung vereinfachen: Datenverlust ist keine Option. Verwaltete Dienste erleichtern und automatisieren Back-ups, sodass Sie Ihre Daten schnell wiederherstellen können, falls etwas schiefgeht.
  • Proaktives Monitoring: Diese Dienste bieten integrierte Dashboards, die auf Anzeichen von Problemen wie langsame Laufwerksantwortzeiten oder hohe CPU-Auslastung achten, bevor es zu Ausfällen kommt.
  • Patches und Upgrades: Software auf dem neuesten Stand zu halten, ist für Sicherheit und Leistung unerlässlich. Verwaltete Dienste können diese Updates im Hintergrund ausführen, oft mithilfe von Rolling Upgrades, die dafür sorgen, dass Ihre Datenbank die ganze Zeit online bleibt.

Wenn Sie diese operativen Aufgaben auf eine verwaltete Plattform verlagern, muss sich Ihr Team nicht mehr um die Datenbankinfrastruktur kümmern und kann sich stattdessen darauf konzentrieren, einen Mehrwert für Ihre Nutzer zu schaffen.

Die richtige Cassandra-Bereitstellungsstrategie auswählen

Wenn Sie entscheiden, wie Sie Ihre Cassandra-Arbeitslasten ausführen möchten, haben Sie drei primäre Optionen. 

  • Erstens können Sie Open-Source-Cassandra selbst verwalten. Dadurch haben Sie die volle Kontrolle über die Software, aber Ihr Team muss die zugrunde liegende Infrastruktur verwalten.
  • Zweitens können Sie einen verwalteten Cassandra-kompatiblen Dienst auswählen, der die gleiche vertraute Umgebung bietet, ohne dass Sie sich um den täglichen Betrieb kümmern müssen.
  • Schließlich können Sie sich für eine cloudnative Alternative wie Google Cloud Bigtable oder Spanner entscheiden, die speziell für dieselben Muster mit hoher Verfügbarkeit und hohem Durchsatz entwickelt wurden, aber nahtlos mit modernen Cloud-Ökosystemen funktionieren.

Die Wahl des richtigen Weges hängt davon ab, wie Sie das Fachwissen Ihres Teams mit Ihren spezifischen Geschäftsanforderungen in Einklang bringen. Diese Checkliste kann Ihnen bei der Entscheidungsfindung helfen:

Frage

Falls ja…

Falls nicht…

Haben wir Zeit, die Datenbank zu reparieren und zu optimieren?

Sie können mit selbstverwalteten Cluster umgehen, wenn Sie eigene Entwickler für die Datenbank-Infrastruktur haben.

Wählen Sie einen verwalteten Dienst aus, um zu vermeiden, dass Entwicklerzeit für die Infrastrukturwartung verschwendet wird.

Ist es wichtiger, online zu bleiben, als perfekte Konsistenz zu erreichen?

Das AP-Modell von Cassandra eignet sich hervorragend für hochverfügbare Anwendungen.

Cloud Spanner bietet die Skalierbarkeit eines verteilten Systems mit strengen Datensicherheitsmaßnahmen.

Müssen wir schnell skalieren, wenn wir wachsen?

Verwenden Sie verwaltete Dienste oder Bigtable, die Autoscaling bieten, um Traffic-Spitzen zu bewältigen.

Ein statischer Cluster könnte funktionieren, aber Sie riskieren Leistungsengpässe in Spitzenzeiten.

Würde ein verwalteter Dienst unsere Arbeit zuverlässiger machen?

Auf jeden Fall. Verwaltete Dienste automatisieren Sicherungen und Patches, um menschliche Fehler zu vermeiden.

Sie akzeptieren das höhere Risiko manueller Wartung und potenzieller Konfigurationsfehler.

Streben wir eine Portabilität der Infrastruktur an?

Selbstverwaltete Datenbanken bieten Ihnen die größte Freiheit, um zwischen Clouds zu wechseln oder lokal zu arbeiten.

Sie sind bei geringerem Betriebsaufwand mit cloudspezifischen Vorteilen zufrieden.

Frage

Falls ja…

Falls nicht…

Haben wir Zeit, die Datenbank zu reparieren und zu optimieren?

Sie können mit selbstverwalteten Cluster umgehen, wenn Sie eigene Entwickler für die Datenbank-Infrastruktur haben.

Wählen Sie einen verwalteten Dienst aus, um zu vermeiden, dass Entwicklerzeit für die Infrastrukturwartung verschwendet wird.

Ist es wichtiger, online zu bleiben, als perfekte Konsistenz zu erreichen?

Das AP-Modell von Cassandra eignet sich hervorragend für hochverfügbare Anwendungen.

Cloud Spanner bietet die Skalierbarkeit eines verteilten Systems mit strengen Datensicherheitsmaßnahmen.

Müssen wir schnell skalieren, wenn wir wachsen?

Verwenden Sie verwaltete Dienste oder Bigtable, die Autoscaling bieten, um Traffic-Spitzen zu bewältigen.

Ein statischer Cluster könnte funktionieren, aber Sie riskieren Leistungsengpässe in Spitzenzeiten.

Würde ein verwalteter Dienst unsere Arbeit zuverlässiger machen?

Auf jeden Fall. Verwaltete Dienste automatisieren Sicherungen und Patches, um menschliche Fehler zu vermeiden.

Sie akzeptieren das höhere Risiko manueller Wartung und potenzieller Konfigurationsfehler.

Streben wir eine Portabilität der Infrastruktur an?

Selbstverwaltete Datenbanken bieten Ihnen die größte Freiheit, um zwischen Clouds zu wechseln oder lokal zu arbeiten.

Sie sind bei geringerem Betriebsaufwand mit cloudspezifischen Vorteilen zufrieden.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.
Sprechen Sie mit einem Google Cloud-Vertriebsexperten, um Ihre besonderen Herausforderungen im Detail zu besprechen.

Cassandra-Arbeitslasten in Google Cloud mit Bigtable und Spanner ausführen

Wenn Sie Cassandra nicht mehr selbst verwalten möchten, bietet Google Cloud zwei hilfreiche Lösungen: Bigtable und Spanner

Wenn Sie Cassandra bereits aufgrund des Wide-Column-Speichers und des hohen Schreibdurchsatzes verwenden, ist Bigtable möglicherweise eine gute Wahl. Dazu können Sie Ihre vorhandenen Cassandra-Keyspaces und -Tabellen Bigtable-Tabellen zuordnen und dann Ihren Anwendungscode so aktualisieren, dass die Cloud Bigtable-Clientbibliotheken verwendet werden. Da Bigtable vollständig verwaltet wird, übernimmt der Dienst automatisch Fragmentierung und Load Balancing, was Sie zuvor in Cassandra manuell abstimmen mussten.

Wenn Ihre Cassandra-Arbeitslast so groß geworden ist, dass Sie eine stärkere Konsistenz benötigen oder relationale SQL-Funktionen wünschen, ist Spanner möglicherweise eine gute Wahl. Dazu definieren Sie Ihr Schema mit Standard-SQL, was möglicherweise die Normalisierung einiger Ihrer denormalisierten Cassandra-Daten erfordert. Spanner bietet dieselbe horizontale Skalierung wie Cassandra, aber mit dem Vorteil einer strikten, globalen Konsistenz und vollständiger relationaler SQL-Unterstützung.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.

Google Cloud