Was ist Apache Cassandra?

Beleuchtete Fenster eines großen Gebäudes mit unterschiedlichen Szenen auf jedem Platz

Autoren

Tom Krantz

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Was ist Apache Cassandra?

Apache Cassandra (Cassandra) ist eine Open Source-NoSQL-Datenbank, die für die Verwaltung großer Datenmengen in mehreren Rechenzentren entwickelt wurde.

 

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 AutomatisierungDaten-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.

Die neuesten Tech-News – von Experten bestätigt

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.

Vielen Dank! Sie haben sich angemeldet.

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.

Die Geschichte von Cassandra

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.

AI Academy

Ist Datenverwaltung das Geheimnis generativer KI?

Erfahren Sie, warum qualitativ hochwertige Daten für den erfolgreichen Einsatz generativer KI unerlässlich sind.

Warum ist Cassandra wichtig?

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.

Cassandra vs. traditionelle relationale Datenbanken

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.

Hauptmerkmale von Cassandra

Cassandra kombiniert Innovationen in verteilten Systemen mit Tools für eine Datenverwaltung auf Unternehmensklasse Datenverwaltung. Zu den Hauptmerkmalen gehören:

  • Open Source
  • Hohe Leistung
  • Optimierbare Verfügbarkeit
  • Lineare Skalierbarkeit
  • Nahtlose Replikation
  • Vertraute Oberfläche

Open Source

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.

Hohe Leistung

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.

Einstellbare Verfügbarkeit

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.

Lineare Skalierbarkeit

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.

Nahtlose Replikation

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).

Vertraute Schnittstelle

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 Query Language verstehen

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.

CQL vs. SQL

Obwohl CQL SQL ähnelt, spiegeln die beiden Sprachen unterschiedliche Herangehensweisen an die Datenverwaltung wider.

Datenstruktur

SQL funktioniert mit standartisierten Tabellen, während CQL für nicht-normierte Cassandra-Daten, die mit Partitionsschlüsseln ausgerichtet sind, konzipiert ist.

Konsistenz

SQL geht von einer strikten Datenintegrität aus, während Cassandra eine Balance zwischen Eventualkonsistenz und konfigurierbaren Konsistenzstufen herstellt.

Skalierbarkeit

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.

Betrieb

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.

Anwendungsfälle für Cassandra

Cassandra unterstützt geschäftskritische Workloads in Branchen, die hohe Leistung, geringe Latenz und Ausfallsicherheit erfordern. Einige Beispiele:

  • E-Commerce: Einzelhändler nutzen Cassandra, um Daten zu Warenkörben zu speichern, Empfehlungen zu personalisieren und Zahlungen mit Fehlertoleranz abzuwickeln.
  • IoT: Cassandra verwaltet Sensorströme und Datensätze von Millionen von Geräten und sorgt so für dauerhafte Echtzeit-Erkenntnisse.
  • Cloud-Bereitstellungen: Cassandra lässt sich in AWS und andere Cloud-Services integrieren. Es kann auch auf Kubernetes für containerisierte Umgebungen orchestriert werden.
  • Streaming und Unterhaltung: Streaming-Dienste nutzen Cassandra, um globale Benutzeraktivitäten zu verarbeiten und personalisierte Erfahrungen ohne Ausfallzeit zu liefern.

Ü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.

Weiterführende Lösungen
IBM® StreamSets

Erstellen und verwalten Sie intelligente Streaming-Datenpipelines über eine intuitive grafische Benutzeroberfläche, die eine nahtlose Datenintegration in Hybrid- und Multicloud-Umgebungen ermöglicht.

StreamSets erkunden
IBM watsonx.data

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.

IBM watsonx.data entdecken
Beratungsservices für Daten und Analysen

Erschließen Sie den Wert von Unternehmensdaten mit IBM Consulting® und bauen Sie ein erkenntnisgesteuertes Unternehmen auf, das Ihnen geschäftliche Vorteile verschafft.

Analyse-Services entdecken
Machen Sie den nächsten Schritt

Entwerfen Sie eine Datenstrategie, die Datensilos beseitigt, die Komplexität reduziert und die Datenqualität verbessert, um außergewöhnliche Kunden- und Mitarbeitererfahrungen zu schaffen.

Lösungen für Datenmanagement erkunden IBM watsonx.data entdecken

Apache Cassandra und Cassandra sind eingetragene Marken der Apache Software Foundation.