MongoDB vs. Cassandra: Schreibvorgänge im Planetary Scale
Lernende vergleichen das Konsistenzmodell von MongoDB-Replikatsätzen mit Cassandras konfigurierbarer eventual consistency und leaderloser Replikation für schreibintensive IoT-Workloads.
MongoDB vs. Cassandra: Schreibvorgänge im Planetary Scale ist eine kostenlose MongoDB Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des MongoDB Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der MongoDB Academy-Kurs umfasst insgesamt 4 Lektionen.
Zwei Ansätze für verteilte Daten
MongoDB und Apache Cassandra verarbeiten beide verteilte Daten in großem Maßstab, verwenden jedoch grundlegend unterschiedliche Architekturen. MongoDB verwendet ein Leader-Follower-Modell (Primary-Secondary-Modell), bei dem Schreibvorgänge an einen einzelnen Primary pro Replica Set gehen. Cassandra verwendet ein leaderloses (Peer-to-Peer-)Modell, bei dem jeder Knoten jeden Schreibvorgang annehmen kann. Dieser architektonische Unterschied bestimmt sämtliche Abwägungen zwischen den beiden Systemen hinsichtlich Leistung, Konsistenz und Betrieb.
Cassandras leaderlose Architektur
In Cassandra sind alle Knoten gleichberechtigte Peers in einer Ringtopologie. Ein Schreibvorgang kann an jeden Knoten (den Koordinator) gesendet werden, der ihn an die N Replikatknoten weiterleitet, die für den Partitionsschlüssel dieser Zeile zuständig sind. Die Anzahl der Knoten, die den Schreibvorgang bestätigen müssen, wird über das Konsistenzniveau konfiguriert (z. B. ONE, QUORUM, ALL). Diese Architektur beseitigt den Engpass eines einzelnen Primary und ermöglicht echte Multi-Master-Schreibvorgänge über mehrere Regionen — jedes Rechenzentrum kann gleichzeitig Schreibvorgänge annehmen.
Schreibdurchsatz: Cassandras Vorteil
Cassandra ist für einen extrem hohen Schreibdurchsatz optimiert. Schreibvorgänge werden an ein Commit-Log und eine schnelle In-Memory-Struktur (Memtable) angehängt, bevor sie gesammelt auf die Festplatte (SSTables) geschrieben werden. Durch diesen Append-only-Ansatz stehen Schreibvorgänge auf der Festplatte nie miteinander in Konflikt, und der Durchsatz skaliert linear mit der Anzahl der Knoten. IoT-Plattformen, die Millionen Messwerte pro Sekunde aufnehmen, Ereignisprotokollierungssysteme und Zeitreihen-Workloads mit Schreibraten, die einen einzelnen MongoDB-Primary überlasten würden, sind ideale Einsatzbereiche für Cassandra.
Anpassbare Konsistenz in Cassandra
Cassandras Konsistenzniveau lässt sich pro Abfrage anpassen. ONE bedeutet, dass ein Replikat bestätigt (am schnellsten, schwächste Konsistenz). QUORUM bedeutet, dass eine Mehrheit der Replikate bestätigt (ausgewogenes Verhältnis zwischen Latenz und Konsistenz). ALL bedeutet, dass alle Replikate bestätigen (am langsamsten, stärkste Konsistenz). Die entscheidende Formel lautet: Wenn Lesekonsistenz + Schreibkonsistenz > Replikationsfaktor, erhalten Sie starke Konsistenz. Diese Flexibilität ermöglicht es Cassandra, unterschiedliche Workloads innerhalb desselben Clusters unterschiedlich zu bedienen.
-- Cassandra CQL: tunable consistency per query
CONSISTENCY QUORUM;
INSERT INTO iot_events (device_id, event_time, temperature)
VALUES ('sensor-42', toTimestamp(now()), 23.5);
-- For lower latency (weaker consistency)
CONSISTENCY ONE;
SELECT * FROM iot_events WHERE device_id = 'sensor-42'
AND event_time >= '2024-06-01 00:00:00'
LIMIT 100;Abfragemodell: Schema zuerst in Cassandra
Cassandras Datenmodell ist grundsätzlich abfrageorientiert. Sie entwerfen Tabellen so, dass sie bestimmte Abfragen effizient beantworten — eine Ad-hoc-Abfrage-Engine wie in MongoDB gibt es nicht. Tabellen müssen nach einem Partitionsschlüssel partitioniert werden (dieser bestimmt, welcher Knoten die Zeile speichert), und Zeilen innerhalb einer Partition werden nach einem Clustering-Schlüssel sortiert. Sekundärindizes existieren, sind jedoch wesentlich weniger leistungsfähig als die von MongoDB. Komplexe Abfragen (Joins, Aggregationen und Filter über mehrere Felder), die MongoDB mit der Aggregationspipeline verarbeitet, sind in Standard-CQL nicht möglich.
-- Cassandra CQL: table designed around a specific query
CREATE TABLE sensor_readings_by_device (
device_id TEXT,
event_time TIMESTAMP,
temperature DOUBLE,
humidity DOUBLE,
PRIMARY KEY (device_id, event_time) -- partition by device, cluster by time
) WITH CLUSTERING ORDER BY (event_time DESC);
-- This query is fast (uses partition and clustering key)
SELECT * FROM sensor_readings_by_device
WHERE device_id = 'sensor-42'
AND event_time >= '2024-06-01'
LIMIT 100;Vorteil von MongoDB bei Abfragen
MongoDBs Aggregationspipeline und umfangreiche Abfrageoperatoren ermöglichen Ad-hoc-Abfragen über beliebige Felder. Sie müssen alle Benutzer in Istanbul finden, die in den letzten 30 Tagen ein bestimmtes Produkt gekauft haben? Eine MongoDB-Abfrage mit dem passenden zusammengesetzten Index beantwortet dies direkt. In Cassandra benötigen Sie dafür eine vorab entworfene Tabelle für genau diese Abfrage, müssten die Daten in mehrere Tabellen denormalisieren oder Spark für analytische Abfragen verwenden. MongoDB ist deutlich flexibler, wenn sich Abfrageanforderungen weiterentwickeln.
// MongoDB: ad-hoc multi-field query — easy
db.orders.find({
'customer.city': 'Istanbul',
'items.sku': 'WGT-001',
createdAt: { $gte: new Date(Date.now() - 30 * 86400000) }
}).sort({ createdAt: -1 })
// Cassandra: would need a pre-designed table for this exact query
// or resort to ALLOW FILTERING (very slow full-table scan)Active-Active über mehrere Regionen: Cassandras entscheidender Vorteil
Cassandras leaderlose Replikation über mehrere Rechenzentren ermöglicht Active-Active-Bereitstellungen: Alle Regionen akzeptieren gleichzeitig Schreibvorgänge. Ein Benutzer in New York schreibt in das US-Rechenzentrum; die Daten desselben Benutzers werden asynchron nach Europa und Asien repliziert. MongoDB unterstützt mehrere Regionen über Lesepräferenzen für Replica Sets und globale Cluster (Atlas), Schreibvorgänge müssen jedoch weiterhin an eine einzelne primäre Region geleitet werden. Für Anwendungen, die Schreibvorgänge aus jeder Region ohne Latenz benötigen, hat Cassandra einen strukturellen Vorteil.
Unterschiede im Konsistenzmodell
MongoDB mit w: majority bietet starke Konsistenz — sobald ein Schreibvorgang bestätigt wurde, geben alle nachfolgenden Lesevorgänge den neuen Wert zurück. Cassandras Standardkonfiguration bietet eventuelle Konsistenz — ein mit ONE bestätigter Schreibvorgang ist bei Lesevorgängen von anderen Replikaten möglicherweise nicht sofort sichtbar. Anwendungen müssen dies tolerieren oder QUORUM-Lese- und Schreibvorgänge konfigurieren, um starke Konsistenz auf Kosten höherer Latenz zu erreichen. Dies wirkt sich erheblich auf die Komplexität der Anwendung aus.
Betriebliche Komplexität
Beide Systeme erfordern betriebliches Fachwissen, jedoch in unterschiedlichen Bereichen. Mongos Replica-Set-Architektur ist gut etabliert, und Atlas automatisiert nahezu den gesamten Betrieb. Cassandras Ringtopologie erfordert eine sorgfältige Kapazitätsplanung, Tokenverwaltung, Überwachung der Komprimierung und Verwaltung von Tombstones. Löschvorgänge in Cassandra erzeugen Tombstones, die sich ansammeln und die Leseleistung mit der Zeit beeinträchtigen können. Das Löschmodell von MongoDB ist im Betrieb einfacher. Für kleine bis mittelgroße Teams ist der betriebliche Aufwand von MongoDB im Allgemeinen geringer.
IoT und Zeitreihen: Cassandra vs. MongoDB
Beide Datenbanken werden für IoT- und Zeitreihen-Workloads eingesetzt, allerdings mit unterschiedlichen Ansätzen. Cassandras Zeitreihen-Partitionierung (Partitionierung nach Gerät, Clustering nach Zeit) liefert einen extrem hohen Schreibdurchsatz und effiziente Zeitbereichsabfragen pro Gerät. MongoDBs native Zeitreihen-Collections (seit Version 5.0) schließen durch automatisches Bucketing und spaltenbasierte Speicherung einen großen Teil des Abstands. Bei Schreibraten von mehreren Millionen pro Sekunde über Tausende von Geräten hat Cassandra weiterhin einen Vorteil. Für Workloads unterhalb dieser Größenordnung mit höheren Anforderungen an Abfragen sind MongoDB-Zeitreihen häufig praktischer.
Entscheidungsrahmen: MongoDB vs. Cassandra
Verwenden Sie Cassandra, wenn der Schreibdurchsatz bei Millionen pro Sekunde liegt, Active-Active-Schreibvorgänge über mehrere Regionen erforderlich sind, das Zugriffsmuster sehr vorhersehbar ist (eine Tabelle pro Abfrage) und die TTLs für die Datenaufbewahrung einfach sind. Verwenden Sie MongoDB, wenn sich Abfragemuster häufig ändern, komplexe Aggregationen und Joins erforderlich sind, Flexibilität bei Dokumenten wichtig ist, das Team klein bis mittelgroß ist oder Sie vollständige ACID-Transaktionen über mehrere Dokumente hinweg benötigen.
Schnelltest
Testen Sie Ihr Verständnis der Konzepte zu MongoDB & NoSQL-Datenbanken aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie gelernt: Cassandras leaderlose Architektur ermöglicht einen enormen Schreibdurchsatz und echte Active-Active-Schreibvorgänge über mehrere Regionen, die Mongos Primary-Secondary-Modell nicht erreichen kann; Cassandras Abfragemodell ist schema- bzw. tabellenorientiert, während MongoDB umfangreiche Ad-hoc-Abfragen unterstützt; und die Entscheidung zwischen den beiden Systemen hängt von den Anforderungen an die Schreibskalierung, der benötigten Flexibilität bei Abfragen und den betrieblichen Kapazitäten des Teams ab. Als Nächstes vergleichen wir MongoDB mit DynamoDB.
Lerne JavaScript mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „MongoDB vs. Cassandra: Schreibvorgänge im Planetary Scale“ kostenlos?
Ja — der vollständige Text von „MongoDB vs. Cassandra: Schreibvorgänge im Planetary Scale“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des MongoDB Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der MongoDB Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „MongoDB vs. Cassandra: Schreibvorgänge im Planetary Scale“?
Lernende vergleichen das Konsistenzmodell von MongoDB-Replikatsätzen mit Cassandras konfigurierbarer eventual consistency und leaderloser Replikation für schreibintensive IoT-Workloads. Du übst MongoDB Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um MongoDB Academy zu starten?
Keine Vorkenntnisse erforderlich. MongoDB Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „MongoDB vs. Cassandra: Schreibvorgänge im Planetary Scale“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser MongoDB Academy-Lektion Code schreiben und ausführen?
Ja. Jede MongoDB Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- MongoDB vs. Redis: Dokumente vs. Key-Value-Cache
- MongoDB vs. Cassandra: Schreibvorgänge im Planetary Scale
- MongoDB vs. DynamoDB: Abwägungen bei Cloud-nativen Lösungen
- Wann Sie eine Graphdatenbank wie Neo4j verwenden sollten