Was sind die besten Verwendungen von document-stores?
Ich habe gehört, eine Menge über die Dokument-orientierte Daten-stores wie CouchDB. Ich verstehe die Verwendungen von BigTable wie Shops wie Cassandra. Nach der Lektüre diese Frage, ich Frage mich, was die Bedingungen sein Verdienst mit einem Dokument speichern?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Column family stores wie Bigtable und Cassandra haben nur sehr begrenzte Fähigkeiten Abfragen. Die Anwendung ist verantwortlich für die Pflege von Indizes, um die Abfrage komplexer Daten-Modell.
Dokument-Datenbanken ermöglichen Ihnen, die Abfrage der Inhalte, nicht nur für den Schlüssel. Es wird zudem für die Verwaltung der Indizes für Sie, die Verringerung der Komplexität der Anwendung.
Domain-driven design , evangelisiert die Verwendung von Zuschlagstoffen und Wert-Objekte. Wie Ayende Punkte aus, (komplexe) Aggregate sind sehr Natürliche Kandidaten abgelegt werden, als ein einzelnes Dokument, anstatt die Normalisierung der Ihnen über mehrere Tabellen oder Spalten-Familien. Dies reduziert die Komplexität der Persistenzschicht. Es gibt auch weniger chance, dass die Daten verteilt über mehrere Knoten, so werden alle Daten in einem einzigen Dokument.
Wenn Ihre Anwendung zum speichern von polymorphen Objekten, Dokument-Datenbanken sind auch ein guter Kandidat. Das kann natürlich auch gespeichert werden in Cassandra, aber Sie haben nicht so viel Abfragen-Funktionen. Zumindest nicht out of the box.
Denken Sie an eine Dokumenten-Datenbank einen luxuriösen Sportwagen. Es muss nicht ein Profi-Fahrer (gelesen: komplexe Anwendung), um Sie von A nach B, es hat features wie Klimaanlage und bequeme Sitze, und es Schoß die hohe Skalierbarkeit, die Strecke in einer akzeptablen Zeit. Allerdings, wenn Sie möchten, legen Sie einen Rundenrekord auf der hohen Skalierbarkeit Spur, Sie wird benötigen eine professionelle Fahrer und ein optimiertes Auto (z.B. Cassandra), die fehlen Funktionen wie Klimaanlage.
Weiteres feature von CouchDB ist, dass man diese Aggregationen nicht als gespeicherte Dokumente manuell, sondern als Ansichten (die sich aus den gespeicherten Daten, und aktualisiert sich automatisch.)
Dies ist wie elektrische Fensterheber, beheizte Sitze, oder die Tritte stereo.