2013-01-24 15 views
5

Ich bin wirklich interessant in nicht relationalen Datenbanken, aber aufgrund der vielen Gründe vertraut nur mit dem kleinen Teil davon. So möchte ich alle NoSQL-Technologien auflisten, die Sie mit grundlegenden Anwendungsfällen, Vor- und Nachteilen verwenden.NoSQL-Technologien, Anwendungsfälle, Stärken und Schwächen

Wenn Sie bestimmte Probleme während der Arbeit mit einigen Technologien, interessanten Erfahrungen usw. haben, können Sie diese gerne mit der Community teilen.


Persönlich habe ich mit:

MongoDB:

Usecases: Für meiner Meinung nach ist eine der besten, wenn Sie gute Aggregationsfunktionen, automatische Replikation benötigen. Gut im Maßstab. Verfügen über viele Funktionen, die es erlauben, sie wie eine Datenbank für den täglichen Gebrauch zu verwenden, und wenn Sie aus irgendeinem Grund keine SQL-Lösung verwenden möchten - Mongo könnte die beste Wahl sein. Auch Mongo ist großartig, wenn Sie dynamische Abfragen benötigen. Und auch Mongodb-Unterstützung Indizierung - es ist auch wichtig, Feature.

Pros: Schnell, gut Skala, einfach zu bedienen, interne geospatial Indizes

Cons: Vergleichsweise langsam Schreiboperation, atomare Operation blockieren könnten viele Probleme machen. Der speicherintensive Prozess könnte den gesamten verfügbaren Speicher "essen".

CouchDB:

Usecases: Ich benutze es in Wiki gemocht Projekt und ich denke, für diese Fälle die perfekte Datenbank. Die Tatsache, dass jedes Dokument während der Aktualisierung automatisch eine neue Revision speichert, hilft dabei, alle Änderungen zu sehen. Zum Sammeln, gelegentlich ändern von Daten, auf denen vordefinierte Abfragen ausgeführt werden sollen.

Pros: Einfach zu bedienende, REST-orientierte Schnittstelle, Versionen.

Cons: Problem mit Leistung, wenn Menge von docs ziemlich umfangreich ist (mehr als eine halbe Million), ein bisschen reinen Abfragefunktionen (könnten mit dem Hinzufügen von Lucene werden Lösung)

SimpleDB:

Usecases: Das ist Dataservice von Amazon, das billigste von allem, was sie zur Verfügung stellen. Sehr begrenzte Funktionen, so dass der Hauptanwendungsfall die Verwendung von Amazon ist, wenn Sie den Amazon-Dienst verwenden möchten, jedoch weniger als möglich.

Pros: Billig, alle Daten wie Text gespeichert - einfach zu bedienen, einfach zu bedienen.

Nachteile: Sehr viel Einschränkung (Dokumentgröße, Sammlungsgröße, Attributanzahl, Attributgröße). Die Art und Weise, wie alle Daten wie ein Text gespeichert werden, führt zu zusätzlichen Problemen bei der Sortierung nach Datum oder nach Nummer (weil lexikographische Sortierung verwendet wird, die beim Speichern von Datum oder Zahlen eine Umgehungslösung benötigt).

Antwort

3

Cassandra

Cassandra ist die perfekte Lösung wenn das Schreiben Ihr Hauptziel ist, es ist entworfen, viel zu schreiben (in einigen Fällen Schreiben dann lesen schneller könnte), so dass es für die Protokollierung perfekt ist. Es ist auch sehr nützlich für die Datenanalyse. Außer dass Cassandra geografische Verteilungsmerkmale eingebaut hat.

Stärken Unterstützt von Apache (gute Community und hohe Qualität), schnelles Schreiben, kein einziger Punkt für Fehler. Einfach zu verwalten, wenn skalierbar (einfach zu implementieren und Cluster zu vergrößern).

Schwächen Indeximplementierung haben Probleme, Abfragen nach Index haben einige Einschränkungen, und wenn Sie Indizes verwenden, die Leistung zu verringern. Probleme bei der Übertragung von Stream-Daten.

Verwandte Themen