Das sind einige lange Antworten von @Bohzo. (aber sie sind gute Links)
Die Wahrheit ist, sie sind "Art" im Wettbewerb. Aber sie haben definitiv unterschiedliche Stärken und Schwächen und lösen nicht alle die gleichen Probleme.
Zum Beispiel bieten Couch und Mongo Map-Reduce-Engines als Teil des Hauptpakets. HBase ist (im Prinzip) eine Ebene über Hadoop, also erhalten Sie auch M-R über Hadoop. Cassandra konzentriert sich stark darauf, ein Key-Value-Shop zu sein und verfügt über Plug-Ins, um Hadoop über die oberste Ebene zu "schichten" (so dass Sie Karten reduzieren können).
Einige der DBs bieten MVCC (Multi-Version Concurrency Control). Mongo nicht.
Alle diese DBs sind horizontal skalierbar, aber auf unterschiedliche Weise. Alle diese DBs versuchen auch auf verschiedene Arten Flexibilität bereitzustellen. Flexible Dokumentgrößen oder REST-APIs oder hohe Redundanz oder Benutzerfreundlichkeit - alle machen unterschiedliche Kompromisse.
Also zu Ihrer Frage: Mit anderen Worten, konkurrieren sie alle auf dem gleichen Markt und versuchen, genau die gleichen Probleme zu lösen?
- Ja: sie alle versuchen, das Problem der Datenbank-Skalierbarkeit und Leistung zu lösen.
- Nein: Sie machen auf jeden Fall verschiedene Arten von Kompromissen.
Mit was sollten Sie anfangen?
Mann, das ist eine schwierige Frage. Ich arbeite für ein großes Unternehmen, das Tonnen von Daten pusht und wir haben einige Jahre durchgemacht. Wir haben Cassandra schon vor ein paar Jahren ausprobiert und es konnte die Ladung nicht bewältigen. Wir verwenden Hadoop überall, aber es hat definitiv eine steile Lernkurve und es hat in einigen unserer Umgebungen nicht funktioniert. In letzter Zeit haben wir versucht, Cassandra + Hadoop zu machen, aber es stellte sich heraus, dass es viel Konfigurationsarbeit war.
Persönlich bewegt meine Abteilung mehrere Dinge zu MongoDB. Unsere Gründe dafür sind ehrlich gesagt Einfachheit.
Das Einrichten von Mongo auf einer Linux-Box dauert Minuten und erfordert keinen Root-Zugriff oder eine Änderung am Dateisystem oder irgendetwas Besonderes. Es sind keine verrückten Konfigurationsdateien oder Java-Rekompilierungen erforderlich. Aus dieser Perspektive war Mongo die einfachste "Einstiegsdroge", um Leute in KV-/Dokumentenläden zu bringen.
Dieser aktuelle Artikel ist hilfreich: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis – coderz