Wofür werden NoSql Schlüssel / Wert-Datenbanken verwendet?

8

Ich habe schon viel über Nosql-Schlüssel / Wert-Datenbanken online gehört. Kannst du ein Beispiel geben, wofür man gebraucht wird? Welche Art von realen Daten sind am besten für diese Art von Datenbanken geeignet?

    
Luke101 29.08.2012, 01:44
quelle

1 Antwort

5

Ich denke ' Was? hey, dass Sie tatsächlich NoSQL für verwenden, ist eine ausgezeichnete Lese für echte Nutzungsfälle für NoSQL-Datenbanken. Lassen Sie mich einige von ihnen hier zitieren:

  • Verwalten großer Streams nicht-transaktionaler Daten: Apache-Protokolle, Anwendungsprotokolle, MySQL-Protokolle, Clickstreams usw.

  • Synchronisierung von Online- und Offline-Daten. Dies ist eine Nische, die CouchDB ins Visier genommen hat. Schnelle Antwortzeiten bei allen Belastungen.

  • Schwere Joins werden vermieden, wenn die Abfrage für komplexe Joins für ein RDBMS zu groß wird.

  • Weiche Echtzeitsysteme, bei denen eine niedrige Latenz entscheidend ist. Spiele sind ein Beispiel.

  • Anwendungen, in denen eine Vielzahl verschiedener Schreib-, Lese-, Abfrage- und Konsistenzmuster unterstützt werden müssen. Es gibt Systeme, die für 50% Lesevorgänge, 50% Schreibvorgänge, 95% Schreibvorgänge oder 95% Lesevorgänge optimiert sind.

  • Nur-Lese-Anwendungen, die extrem schnell und ausfallsicher sind, einfach Abfragen und können leicht veraltete Daten tolerieren.

  • Anwendungen, die moderate Leistung, Lese- / Schreibzugriff, einfache Abfragen, vollständig erfordern maßgebliche Daten.

  • Nur-Lese-Anwendung, die komplexe Abfrageanforderungen.

  • Laden Sie das Guthaben auf, um Daten und Nutzungskonzentrationen aufzunehmen und Mikroprozessoren beschäftigt zu halten.

  • Echtzeiteinfügungen, Aktualisierungen und Abfragen.

  • Hierarchische Daten wie Thread-Diskussionen und Teilexplosion.

  • Dynamische Tabellenerstellung.

  • Zweistufige Anwendungen, bei denen Daten mit niedriger Latenz über eine schnelle NoSQL-Schnittstelle zur Verfügung gestellt werden, aber die Daten selbst können von Hadoop-Apps mit hoher Latenz oder anderen Anwendungen mit niedriger Priorität berechnet und aktualisiert werden.

  • Sequenzielles Datenlesen. Das richtige zugrundeliegende Datenspeichermodell muss ausgewählt werden. Ein B-Baum ist möglicherweise nicht das beste Modell für sequentielle Lesevorgänge.

  • Abschneiden eines Teils des Dienstes, der möglicherweise eine bessere Leistung / Skalierbarkeit auf dem eigenen System benötigt. Beispielsweise müssen Benutzeranmeldungen eine hohe Leistung aufweisen, und diese Funktion kann einen dedizierten Dienst verwenden, um diese Ziele zu erreichen.

  • Zwischenspeichern. Eine leistungsstarke Caching-Ebene für Websites und andere Anwendungen. Beispiel ist ein Cache für das vom Large Hadron Collider verwendete Datenaggregationssystem.

  • Abstimmung.

  • Echtzeit-Zähler für Seitenaufrufe.

  • Benutzerregistrierungs-, Profil- und Sitzungsdaten.

  • Dokument-, Katalogverwaltungs- und Content-Management-Systeme. Diese werden erleichtert, indem die Möglichkeit, komplexe Dokumente zu speichern, eher ein Ganzes als relationale Tabellen organisiert. Eine ähnliche Logik gilt für Inventar, Einkaufswagen und andere strukturierte Datentypen.

  • Archivierung. Speicherung eines großen kontinuierlichen Datenstroms, auf den noch online zugegriffen werden kann.

  • Dokumentorientierte Datenbanken mit einem flexiblen Schema, das Schemaänderungen im Laufe der Zeit verarbeiten kann.

  • Analysen. Verwenden Sie MapReduce, Hive oder Pig, um analytische Abfragen und Scale-out-Systeme durchzuführen, die hohe Schreiblasten unterstützen.

Vishwa Patel 29.08.2012, 02:00
quelle

Tags und Links