Apache Cassandra ist eine verteilte NoSQL-Datenbank mit linearer Skalierbarkeit. Die wichtigsten Kommandozeilen-Werkzeuge sind cqlsh für CQL-Abfragen, nodetool für die Cluster-Verwaltung und sstableloader für den Massenimport von SSTable-Dateien.
Abfragen mit cqlsh
cqlsh 10.0.0.5
cqlsh -u cassandra -p passwort 10.0.0.5
CREATE KEYSPACE app WITH replication = {'class':'SimpleStrategy','replication_factor':3};
USE app;
CREATE TABLE nutzer (id UUID PRIMARY KEY, name text);
INSERT INTO nutzer (id, name) VALUES (uuid(), 'Ada');
SELECT * FROM nutzer WHERE name = 'Ada' ALLOW FILTERING;
cqlsh spricht CQL (Cassandra Query Language), eine SQL-ähnliche Sprache. DESCRIBE KEYSPACES, DESCRIBE TABLES und EXIT sind die wichtigsten Meta-Befehle. ALLOW FILTERING ist nur für kleine Tabellen sinnvoll — normalerweise filtert Cassandra über den Primärschlüssel.
Cluster-Verwaltung mit nodetool
nodetool status
nodetool info
nodetool repair
nodetool cleanup
nodetool snapshot -t vor_umstellung
nodetool flush
statuszeigt jeden Knoten mit Status (UN = Up/Normal), Datenmenge und Besitzanteil.infozeigt Heap-Nutzung, Load und Uptime des lokalen Knotens.repairgleicht Repliken ab (Anti-Entropy) — wichtig, weil Cassandra gelöschte Daten nur per Tombstones und Repairs endgültig entfernt.cleanupentfernt Daten, die nach einer Topologie-Änderung nicht mehr zu diesem Knoten gehören.snapshoterzeugt einen hart-link-basierten Backup-Punkt pro Table,flushschreibt die Memtables auf die Platte.
Massenimport und Lasttests
sstableloader -d 10.0.0.5 /pfad/zu/sstables
cassandra-stress write -n 100000 -rate threads=8
cassandra-stress read -n 100000
sstableloaderlädt existierende SSTable-Dateien in einen laufenden Cluster — der Standardweg, um Daten aus Backups oder anderen Clustern zu übernehmen.cassandra-stresserzeugt Lastprofile für Write- und Read-Tests und liefert Durchsatz- und Latenz-Metriken.
Einordnung im NoSQL-Umfeld: NoSQL-Datenbank, die verwandten CLI-Referenzen MongoDB-Befehle und Redis-Befehle — sowie für relationale Systeme die PostgreSQL-Befehle.