Cassandra wurde als verteiltes Datenbankmanagementsystem (DBMS) konzipiert und basiert auf einer Peer-to-Peer-Architektur. Jeder Knoten, d. h. jeder einzelne Server, der einen Teil der Daten speichert, ist in einem Cassandra-Cluster gleichberechtigt und nicht auf einen Masterknoten angewiesen.
Die Daten werden auf mehrere Peers verteilt und nicht an einem zentralen Ort gespeichert. Dadurch wird ein einzelner Fehlerpunkt (bei dem eine Fehlfunktion schnell mehrere zur Folge hat) vermieden. Dieses Design ermöglicht eine nahtlose Replikation, effiziente Datenverteilung und kontinuierlichen Service auch bei geplanten Ausfallzeit oder plötzlichen Änderungen.
Cassandra bietet Automatisierung, Daten-Backup und integrierte Metriken für Anwendungsfälle wie die Verwaltung verbundener Internet der Dinge (IoT)-Geräte. Genauer gesagt bietet es lineare Skalierbarkeit, hohe Verfügbarkeit und Fehlertoleranz, weswegen sich die Lösung für Big-Data-Anwendungen und Echtzeit-Workloads eignet. Im September 2024 wurde Cassandra von mehr als 30.000 Unternehmen weltweit eingesetzt.
Branchen-Newsletter
Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.
Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.
Cassandras Geschichte begann 2007 bei Facebook, wo Ingenieure nach einem System suchten, das Daten für die wachsende Messaging-Plattform des Unternehmens speichern konnte. Durch die Kombination etablierter NoSQL-Datenbankmodelle (Dynamo von Amazon und Bigtable von Google) wurde ein System mit effizienten Datenstrukturen und letztendlicher Konsistenz geschaffen, in dem sich Updates so lange ausbreiten, bis alle Replikate im Laufe der Zeit übereinstimmen.
2008 wurde Cassandra als Open-Source-Projekt veröffentlicht und gewann schnell an Bedeutung bei Entwicklern, die nach einer Alternative zu herkömmlichen relationalen Datenbanken suchten. Die Apache Software Foundation übernahm 2009 die Verwaltung, normte ihre Governance und beschleunigte die Einführung in der Community.
Die Dynamik von Cassandra wuchs, als frühe Anwender wie eBay, Spotify und Instagram es zur Verarbeitung von Big Data bereitstellten. Der Aufstieg von IoT und Echtzeit-Personalisierung festigte die Rolle von Cassandra als Go-to-Datenbank für Skalierbarkeit und Verfügbarkeit.
Die kommerzielle Unterstützung von DataStax fügte Unternehmensklasse-Tools, Tutorials und Dienstleistungen hinzu, während die offene Community Tools entwickelte und die Dokumentation erweiterte. Heute ist Cassandra nach wie vor von zentraler Bedeutung für viele verteilte Systeme und gedeiht sowohl im Open-Source-Ökosystem als auch in Unternehmensumgebungen.
Von Streaming-Diensten über soziale Medien bis hin zum Online-Shopping erwarten Kunden eine ständig verfügbare Digital Experience. Für Unternehmen ist die Betriebszeit kein IT-Ziel mehr, sondern eine Geschäftskennzahl. Die Kosten von Ausfallzeiten sind hoch: Die weltweit führenden Unternehmen verlieren jährlich schätzungsweise 400 Milliarden US-Dollar durch ungeplante Ausfallzeiten.
Gleichzeitig führt die Zunahme unstrukturierter Daten aus Ereignisprotokollen, Telemetrie und Datenströmen dazu, dass die Abläufe in verschiedenen Regionen und Cloud-Umgebungen komplexer werden und die Wahrscheinlichkeit von Systemausfällen steigt. Unternehmen benötigen eine zuverlässige Datenbank, die verschiedene Datentypen verarbeiten kann und mit der Nachfrage in globalen Infrastrukturen skaliert werden kann. Cassandra wurde entwickelt, um diese Anforderungen zu erfüllen.
Branchen vertrauen auf die hohe Leistungsfähigkeit von Cassandra, um Milliarden von Schreibvorgängen (Einfügen, Aktualisieren und Löschen) zu verarbeiten und gleichzeitig den Benutzern Echtzeitgenauigkeit zu bieten. Die Ausfallsicherheit beruht auf der Replikation von Daten über Standardserver oder Standardcomputer, wodurch das Risiko von Ausfällen minimiert und die Langlebigkeit auch bei Hardwareausfällen gewährleistet wird.
Die Funktion von Cassandra, Workloads über mehrere Rechenzentren hinweg zu verwalten, bietet Konsistenz und Verfügbarkeit für Unternehmen weltweit. Unternehmen wie Netflix und Amazon nutzen Cassandra, um personalisierte Erfahrungen zu liefern und gleichzeitig vor Ausfallzeit und Datenverlust zu schützen. Tatsächlich verwendet das Asset Management Platform-Team von Netflix Cassandra, um etwa 1,9 Milliarden Anmerkungen (etwa 2,6 TB) zu verwalten – nach der Verdopplung der eigenen Cluster von 12 auf 24 Knoten.
Im Gegensatz zu relationalen Datenbanken, die auf starren Schemadefinitionen und zentraler Steuerung basieren, ist Cassandra für verteilte Skalierung konzipiert. In relationalen Systemen ist ein Primärschlüssel mit einer strengen Datenmodellierung und begrenzten Skalierbarkeit verbunden. Im Gegensatz dazu verwendet Cassandra einen Partitionsschlüssel und einen Replikationsfaktor, um zu bestimmen, wie Datensätze auf Knoten und Rechenzentren gespeichert werden.
SQL-Systeme (Structured Query Language) zeichnen sich zwar hervorragend durch komplexe Verknüpfungen und Aggregate aus, bringen jedoch häufig Engpässe und das Risiko eines Single Point of Failure mit sich. Cassandra vermeidet dies, indem es eine verteilte Architektur und letztendlich Konsistenz fördert. Im Vergleich zu MongoDB bevorzugt die Cassandra-Datenbank schreibintensive, linear skalierbare Workloads über mehrere Rechenzentren hinweg.
Für Unternehmen, die große Datenmengen verwalten, bietet Cassandra klare Vorteile: hoher Durchsatz, geringe Latenz und Toleranz gegenüber Ausfällen. Cassandra bietet jedoch nicht das gleiche Maß an Ad-hoc-Abfrage wie einige relationale Datenbanken. Entwickler, die Cassandra verwenden, sollten Datenmodellierungsstrategien sorgfältig entwickeln, um Schreibvorgänge, Replikate und Datenintegrität zu optimieren.
Cassandra kombiniert Innovationen in verteilten Systemen mit Tools für eine Datenverwaltung auf Unternehmensklasse Datenverwaltung. Zu den Hauptmerkmalen gehören:
Cassandra ist eine Open-Source-Lösung der Apache Software Foundation, dadurch können Unternehmen die Anbieterbindung vermeiden und die Datenbank an ihre Bedürfnisse anpassen. Wenn Hilfe auf Unternehmensebene erforderlich ist, können Teams auf Community-Ressourcen zurückgreifen oder sich für kommerziellen Support und Managed Services entscheiden.
Die Speicher-Engine von Cassandra verwendet einen schrittweisen Ablauf (oder Schreibpfad), der aus einem Commit-Protokoll, einer In-Memory-Tabelle (Memtable) und sortierten String-Tabellen (SSTable)-Dateien besteht. Dieser Ablauf nimmt Schreibvorgänge schnell an und sichert sie. Daten, auf die häufig zugegriffen wird, werden für Abfragen mit geringer Latenz im Cache gespeichert, während durch die Komprimierung, eine automatische Reinigungsfunktion, ein effizienter langfristiger Datenspeicher gewährleistet wird.
Nach dem CAP-Theorem kann ein verteiltes System bei einer Netzwerkpartition nur zwei von drei gewünschten Eigenschaften erfüllen: Konsistenz, Verfügbarkeit und Partitionstoleranz (CAP). Cassandra begegnet diesem Kompromiss durch anpassbare Konsistenzstufen, sodass Benutzer je nach Anwendungsfall die Verfügbarkeit oder Konsistenz priorisieren können.
Cassandra erhöht die Kapazität, indem neue Knoten ohne Serviceunterbrechung hinzugefügt werden, und bietet lineare Skalierbarkeit auf Standardservern anstelle von teuren vertikalen Upgrades. Wenn Knoten hinzugefügt werden, verteilt Cassandra Daten und Datenverkehr automatisch auf den Cluster um, sodass die Workload skaliert wird und der Durchsatz proportional ansteigt.
Cassandra repliziert Daten über Knoten und Rechenzentren hinweg, sodass lokale Benutzer eine geringe Latenz erleben, während ein einzelner Fehlerpunkt vermieden wird. Es lässt sich auch in Kubernetes, Frameworks (Programmierschnittstelle) und Amazon Web Services (AWS)-Umgebungen integrieren. Es ist in Java geschrieben und läuft auf der Java Virtual Machine (JVM).
Teams verwenden Cassandra Query Language (CQL) (eine Sprache, die SQL ähnelt), um schnell Schlüsselkonstrukte wie Keyspace, Tabellen und Primärschlüssel zu definieren. Interaktive Tools wie CQL-Shell (cqlsh) und offizielle Tutorial können ebenfalls dazu beitragen, die Einarbeitungszeit für neue Entwickler zu verkürzen.
Cassandra interagiert mit Anwendungen über CQL, eine von SQL inspirierte domänenspezifische Sprache. Datenbankentwickler sind mit der CQL-Syntax vertraut, mit der sie den Keyspace, das Schema, die Datentypen sowie Primär- und Partitionsschlüssel definieren können.
Beispielsweise kann ein Entwickler während einer globalen Spielveröffentlichung einen Keyspace erstellen – Cassandras Top-Level-Datenbankäquivalent, das die Replikationseinstellungen definiert. Danach können sie Tabellen entwerfen, in denen der Partitionsschlüssel (z. B. Spieler-ID oder Region) verwandte Daten auf denselben Knoten für eine effiziente Datenverteilung speichert. Mit cqlsh konnte das Team Tutorials ausführen, Abfragen validieren und den Cluster verwalten, während neue Knoten hinzugefügt werden, um die Zunahme der Spieleranzahl zu bewältigen.
Da Cassandra den Schwerpunkt auf Schreibvorgänge und die Verarbeitung legt, vermeidet die Lösung Syntax Funktionen, die die Leistung beeinträchtigen würden, wie beispielsweise komplexe Verknüpfungen. Stattdessen setzen Entwickler auf sekundäre Verweise, Aggregate und optimierte Datenmodellierung, um Flexibilität zu erreichen.
Obwohl CQL SQL ähnelt, spiegeln die beiden Sprachen unterschiedliche Herangehensweisen an die Datenverwaltung wider.
SQL funktioniert mit standartisierten Tabellen, während CQL für nicht-normierte Cassandra-Daten, die mit Partitionsschlüsseln ausgerichtet sind, konzipiert ist.
SQL geht von einer strikten Datenintegrität aus, während Cassandra eine Balance zwischen Eventualkonsistenz und konfigurierbaren Konsistenzstufen herstellt.
SQL-Systeme basieren in der Regel auf vertikaler Skalierung, während Cassandra lineare Skalierbarkeit ermöglicht, indem neue Knoten zu einem Cassandra-Cluster hinzugefügt werden.
SQL ist für Transaktionen optimiert, während CQL für Echtzeitabfragen und Schreibvorgänge mit hohem Volumen konzipiert ist.
Entwickler, die von SQL umsteigen, können sich schnell an die Syntax von CQL anpassen, müssen jedoch ihre Datenmodellierungsstrategien überdenken, um den verteilten Systemansatz von Cassandra zu nutzen.
Cassandra unterstützt geschäftskritische Workloads in Branchen, die hohe Leistung, geringe Latenz und Ausfallsicherheit erfordern. Einige Beispiele:
Über diese Branchen hinaus unterstützt Cassandra Unternehmen beim Aufbau verteilter Systeme für Big Data und skalierbarer Datenspeicher. Mit einer Kombination aus API-Unterstützung, Unternehmenstools und offenen Community-Tutorial bleibt Cassandra ein Eckpfeiler für moderne Datenbankmanagementsysteme.
Erstellen und verwalten Sie intelligente Streaming-Datenpipelines über eine intuitive grafische Benutzeroberfläche, die eine nahtlose Datenintegration in Hybrid- und Multicloud-Umgebungen ermöglicht.
Watsonx.data ermöglicht es Ihnen, Analysen und KI mit all Ihren Daten zu skalieren, unabhängig davon, wo sie sich befinden, und zwar über einen offenen, hybriden und kontrollierten Datenspeicher.
Erschließen Sie den Wert von Unternehmensdaten mit IBM Consulting® und bauen Sie ein erkenntnisgesteuertes Unternehmen auf, das Ihnen geschäftliche Vorteile verschafft.
†Apache Cassandra und Cassandra sind eingetragene Marken der Apache Software Foundation.