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.
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:
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.
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.
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 |
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
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.
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.
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.
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.
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.
Wenn Sie entscheiden, wie Sie Ihre Cassandra-Arbeitslasten ausführen möchten, haben Sie drei primäre Optionen.
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.
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.
Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.