© Excellent backgrounds/Shutterstock.com
Apache Cassandra im Projekteinsatz

So klappt’s auch mit der NoSQL-Datenbank


Apache Cassandra hat sich in den letzten Jahren zur populärsten spaltenorientierten Datenbank entwickelt [1]. Bei der Implementierung einer Anwendung auf Basis von Cassandra ist von Entwicklern und Architekten allerdings an verschiedenen Stellen ein Umdenken erforderlich. Dies gilt insbesondere, wenn bisher hauptsächlich mit relationalen Datenbanken gearbeitet wurde.

Cassandra ist eine spaltenorientierte NoSQL-Datenbank, im Englischen auch „Wide Column Store“ genannt. Aufgrund der doppelten Begriffsbelegung sollte diese Art der Datenspeicher nicht mit spaltenorientierten RDBMS verwechselt werden, wie sie im Data-Warehouse-Bereich zum Einsatz kommen. Wide Column Stores speichern Daten in verteilten multidimensionalen Maps. Diese Maps werden bei Cassandra wie bei relationalen Datenbanken als Tabellen bezeichnet.

Cassandra wurde ursprünglich von Facebook entwickelt. Mittlerweile führt die Apache Software Founda­tion die Datenbank als Open-Source-Projekt. Die Firma DataStax bietet eine kommerzielle Enterprise-Distribution von Cassandra an und stellt gleichzeitig viele Committer im Apache-Projekt. Die Dokumentation, der Java-Treiber und ergänzende kostenfreie Tools sind dadurch beispielsweise direkt auf der Webseite von DataStax zu finden. Für ein tiefergehendes Studium verweisen wir auf die Dokumentation [2].

Artikelserie

Teil 1: Auswahl einer NoSQL-Lösung

Teil 2: Einführung einer NoSQL-Lösung

Architektur im Cluster

Cassandra-Datenbanken werden im Cluster betrieben. Im Cluster nimmt jeder Knoten die gleiche Rolle ein, das heißt, es gibt keine zentrale Steuerung, keinen Master-Knoten. Die Daten werden über das Cluster verteilt. Eine Verdopplung der Knotenanzahl hat daher beispielsweise zur Folge, dass sich die Datenmenge halbiert, für die ein einzelner Knoten verantwortlich ist. Cassandra-Systeme lassen sich somit linear horizontal skalieren. Die Verteilung der Datensätze auf die Knoten wird über den so genannten Partition Key gesteuert. Eine oder mehrere Spalten jeder Tabelle werden als Partition Key festgelegt. In einer Tabelle, die Benutzerdaten vorhält, wäre dies zum Beispiel die User-ID. Alle Datensätze zur gleichen User-ID werden in diesem Fall auf demselben Rechner gespeichert. Zur gleichmäßigen Verteilung der Daten wird der Key nicht direkt genutzt, sondern zuvor ein Hash-Wert gebildet.

Um den Zugriff auf das Cluster auch beim Ausfall einzelner Knoten sicherzustellen, lassen sich Replikationen von Datensätzen über mehrere Knoten verteilen. Die Anzahl...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang