Cassandra zählt, neben MongoDB, zu den derzeit populärsten NoSQL-Datenbanken. Cassandra ist als skalierbares, ausfallsicheres System für den Umgang mit großen Datenmengen auf verteilten Systemen (Clustern) konzipiert. In drei Teilen erläutert BigData-Insider die architektonischen Merkmale von Cassandra, erklärt die Inbetriebnahme sowie grundlegende Prinzipien und illustriert erste Schritte mit der Abfragesprache Cassandra Query Language (CQL).
Das Logo der NoSQL-Datenbank Cassandra
(Bild: The Apache Software Foundation)
Cassandra ist die beliebteste spaltenorientierte NoSQL-Datenbank und im Gegensatz zu MongoDB (C++) wie auch HBase in Java geschrieben. Aufgrund ihrer architektonischen Eigenschaften wird Cassandra häufig in Big-Data-Projekten eingesetzt, kann in Zusammenarbeit mit einem Applikations-Server/Framework aber auch gut für komplexe Webanwendungen verwendet werden.
Merkmale
Cassandra ist ein verteiltes Datenbankmanagementsystem, das zum Verwalten sehr großer Mengen strukturiert vorliegender Daten konzipiert und der Klasse der NoSQL-Datenbanksysteme zuzurechnen ist, auch wenn die Cassandra-Entwickler im Sommer 2011 mit der Version 0.8 die Cassandra Query Language (CQL) eingeführt haben, eine SQL-ähnliche Abfragesprache.
Cassandra ist für eine hohe Skalierbarkeit und Ausfallsicherheit bei verteilten Systemen optimiert und legt Daten in sogenannten Key-Value Stores ab. Cassandra wird unter dem Dach der Apache Software Foundation (AFS) quelloffen entwickelt steht unter der Apache-Lizenz Version 2.
Von den Wurzeln bis heute
Ursprünglich wurde Cassandra von Avinash Lakshman (einem der Entwickler der verteilten Hashtabelle Amazon Dynamo) und Prashant Malik bei Facebook zur Lösung des sogenannten Inbox-Search-Problems entwickelt. Cassandra wurde im Sommer 2008 erstmals veröffentlicht und im Frühjahr 2009 dann von Facebook als Open-Source-Projekt in den Incubator der Apache Software Foundation entlassen. Im Februar 2010 stieg Cassandra schließlich zum Top-Level-Projekt der ASF auf.
Neben Facebook haben seit dem Wechsel zu Apache auch andere namenhafte Unternehmen Code beigesteuert, darunter Twitter, IBM oder Rackspace. Bei Facebook selbst kam Cassandra bis Sommer 2011 zum Einsatz, wurde aber später durch eine Lösung aus der In-Memory-Datenbank Apache HBase, HDFS und Haystack ersetzt. Die neuste Version 2.2.1 wurde am 1. September freigegeben, die momentane stabile Version ist die 2.1.9.Version 3.0 ist als Beta verfügbar.
Cassandra Enterprise
Außer als verteilte Datenbank in sozialen Netzen – die Datenbank wird zum Beispiel auch vom Social-News-Aggregator Reddit sowie vom Social-Bookmarks-Anbieter Digg verwendet – lässt sich Cassandra aber auch sehr gut in der Finanz- und Telekommunikationsbranche, im Gesundheitswesen und im Sicherheitsbereich einsetzen.
Das im kalifornischem Santa Clara ansässige, 2010 von den beiden Ex-Rackspace-Mitarbeitern Jonathan Ellis und Matt Pfeil gegründete Unternehmen DataStax beispielsweise begründet sein gesamtes Geschäftsmodell auf kostenpflichtigen Support für das Casandra-Apache-Open-Source-Projekt und Cassandra-Trainings. Zudem bietet DataStax eine eigene kommerzielle Enterprise-Cassandra-Distribution an.
Grenzen relationaler Datenbanken
Auch wenn relationale Datenbankmanagementsysteme (RDBMS) für klassische Geschäftsanwendungen mit ihren stringenten Konsistenzanforderungen dank ihrem bewährten Datenmodell, der standardisierten Abfragesprache und den über Jahrzehnte eingeflossenen Optimierungen für viele Probleme immer noch die beste Lösung darstellen, stellen Anwendungen im Web 2.0 seit etwa zehn Jahren deutlich veränderte Anforderungen an Datenbanken, die klassische Systeme nicht erfüllen können. Diese sind im Wesentlichen:
Verarbeitung von großen bis sehr großen Datenmengen im Terra- und Petabyte-Bereich,
geringere Anforderung an die Konsistenz,
horizontale Skalierung wesentlich wichtiger als vertikale Skalierung und eine
extrem kurze Laufzeit von Abfragen.
NoSQL-Datenbanken erfüllen diese Anforderungen und haben als eher puristische Datenspeicher in einigen Anwendungsgebieten klare Vorteile gegenüber relationalen Datenbanksystemen. Der wichtigste Einsatzzweck und damit der wesentliche Grund, dass NoSQL-Systeme überhaupt entstanden sind, liegt im rasanten Anwachsen der Menge zu speichernder Daten, etwa im Kontext von komplexen Web-2.0-Anwendungen, an erste Stelle sind hier soziale Netzwerke wie Facebook und Twitter zu nennen.
Gegenüber SQL-Datenbanken, bei denen das verbindende gemeinsame Element in der Abfragesprache SQL ist, gibt es ein solches bei den zahlreichen NoSQL-Varianten nicht.
Was ist NoSQL?
Da es keine verbindlich Definition für NoSQL-Systeme gibt, werden diese für gewöhnlich anhand einer Reihe relativ typischer Eigenschaften kategorisiert wie z. B.
kein relationales Datenmodell,
einfaches Schema mit schwachen Schemarestriktionen (oder schemafrei),
Unterstützung für verteilte und horizontale Skalierung,
einfache automatische Replikationen, die eine verteilte Architektur ermöglichen und
einfache API (BASE als Konsistenzmodell anstelle von ACID).
Die heute verfügbaren Produkte lassen sich grob in die vier Kategorien
Key-Value Stores,
Document-Stores,
Wide-Column Stores und
Graphen-Datenbanken
einteilen. Cassandra gehört im Prinzip zur Klasse der Wide-Column Stores. Die wichtigsten Konzepte und Algorithmen von NoSQL-Datenbanken wie z. B. Map/Reduce, CAP-Theorem/Eventually Consistent, Consistent Hashing, Vector Clocks oder die Unterstützung der Protokolle MVCC, Paxos oder ein REST-API sind aber den meisten Vertretern gemein.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Typen von NoSQL-Datenbanken
Key-Value Stores speichern grundsätzlich jeden einzelnen Wert mit einem Schlüssel ab. Insofern eigenen sich Key-Value Stores gut für strukturierte Daten. Aufbauend auf den ältesten Vertreter der Gattung – Amazons Dynamo – haben sich eine Reihe von Lösungen entwickelt.
Wide-Column Stores sind eine spezielle Variante der Key-Value Stores. Der Typ wurde im Prinzip von Google mit Big Table ersonnen und von Facebook mit Cassandra, das ebenfalls ein Google Big Table ähnliches Datenmodell verwendet, weiterentwickelt. Cassandra speichert die Daten dabei genau so ab, wie sie beim Datenabruf, bzw. zur Anzeige benötigt werden. Umfangreiche Abfragen über mehrere Tabellen hinweg, wie sie bei SQL-Datenbanken erforderlich wären, entfallen damit. Das ist auch der Hauptgrund für die beachtliche Performance bei großen Datenmengen.
Document Stores eignen sich dagegen zum unstrukturierten Speichern kompletter Dokumente, wie es z. B. Lotus Notes macht. Als Dokumentformat wird meist XML oder JSON benutzt. Populärsten Vertreter sind Apache CouchDB oder MongoDB.
Graphdatenbanken sind eigentlich eher eine erweiterte Form von SQL-Datenbanken, weil es Relationen und eine SQL-ähnlich Abfragesprache GQL gibt. Allerdings nutzen Graphdatenbanken keine Tabellen, sondern arbeiten mit freien Datenstrukturen, die sich ebenfalls über mehrerer Nodes erstrecken können. Die Besonderheit dabei ist, dass Graphdatenbanken Verbindungen zwischen Einträgen über mehrere Knoten halten können. Insofern sind sie im Prinzip so etwas Ähnliches wie horizontal skalierte MySQL-Datenbanken. Ältester und bekanntester Vertreter dieses Typs ist Neo4j.