7

Ich entwickle eine Web-basierte Anwendung mit Rails. Ich diskutiere über die Verwendung einer Graph-Datenbank wie InfoGrid oder einer Dokumentendatenbank wie MongoDB.Wenn Sie Webanwendungen entwickeln, wann würden Sie eine Graphdatenbank im Vergleich zu einer Dokumentendatenbank verwenden?

Meine Anwendung muss sowohl kleine Datenmengen wie eine URL als auch sehr große Datenmengen wie virtuelle Maschinen speichern. Diese Daten sind an einen einzelnen Benutzer gebunden.

Ich bin daran interessiert, über die Erfahrungen der Menschen mit Graph- oder Dokumentdatenbanken zu erfahren und warum sie eine der beiden Möglichkeiten nutzen würden.

Danke

Antwort

3

mich mit beiden Welten erleben nicht genug fühlen, und in vollem Umfang richtig Ihre Frage zu beantworten, aber verwende ich eine Dokumentendatenbank für einige Zeit und sind hier einige persönlichen Hinweise.

Die Dokumentendatenbanken basieren auf einem Konzept von Schlüssel-, Wert- und statischen Ansichten und sind ziemlich cool, um eine Reihe von Dokumenten zu finden, die einen bestimmten Wert haben.

Sie nicht die Beziehungen zwischen Dokumenten konzeptualisieren.

Wenn also Ihre Software erweiterte "Abfragen" bereitstellen muss, bei denen die Auswahlkriterien für mehrere Dokumenttypen gelten oder Sie einfach eine Auswahl mit mehreren Elementen vornehmen müssen, ist das [Schlüssel, Wert] -Konzept nicht geeignet.

Es gibt auch eine Reihe von anderen Fällen, in denen Dokumentendatenbanken sind ungeeignet: große Datensätze in „ausgelagerten“ Tabellen, sortierbar auf mehrere Spalten präsentiert ist einer der Fälle, in denen die Leistungen sind niedrig und Speicherplatznutzung riesige ist.

In vielen Fällen müssen Sie also "serverseitige" Verarbeitung durchführen, um die Teile aufzunehmen, und mit Rails oder anderen Ruby-basierten Frameworks können Sie Leistungsprobleme haben.

Die Graphdatenbank basiert auf dem Konzept von triplestore, was bedeutet, dass sie auch die Beziehungen zwischen den Entitäten konzeptualisieren.

Die Grafik kann mit den Relationen (und Entitätsrollen) durchlaufen werden und ist möglicherweise bei Suchvorgängen über relationsstrukturierte Daten bequemer.

Da ich keine Erfahrung mit Graph Datenbank habe, bin ich mir nicht bewusst, ob die Graphdatenbank mit verschiedenen Kriterien leicht abgefragt/durchquert werden kann, aber wenn ein beratender Leser solch eine Information hat, würde ich wirklich irgendwelche Beispiele dafür schätzen Abfragen/Traversalen.

ich zur Zeit über Infogrid bin zu lesen und versuchen, Figur, wenn solche Datenbanken durch praktisch, um könnten komplexe Anforderungen auf eine sehr große Menge von Daten durchzuführen, inklusive Beziehungen ....

Von dem, was ich lesen kann sollte der InfoGrah als "Data Federator" betrachtet werden, der die Daten aus verschiedenen Quellen (Stores), die auch eine NoSQL-Datenbank wie Mongo sein können, durchsuchen kann.

Wich bedeutet, dass Sie könnte ein Mongo Speicher für Updates und Infograph für Datensuche verwenden und vielleicht viel CPU und Festplatte verschonen, wenn es sich in einer NoSQL-Datenbank komplexe Suchvorgänge kommt.

Natürlich mag es ein wenig "Overkill" erscheinen, wenn Ihre App einfach eine große Menge riesiger Binärdateien in einer Datenbank speichert und Sie lediglich einfache Schlüsselabfragen durchführen und das Ergebnis abrufen müssen. In diesem Fall wäre wahrscheinlich eine Nosql-Datenbank wie Mongo oder Couch hilfreich.

Hoffnung einige dieser hilft;)

3

Wenn durch Kanten zugehörige Dokumente verbinden, werden Sie eine flache oder tiefe Graphen erhalten? Ich denke, die Antwort auf diese Frage ist wichtig, wenn man zwischen graphdbs und documentdbs entscheidet. Für Gedanken in dieser Richtung siehe Square Pegs and Round Holes in the NOSQL World von Jim Webber.

+0

Sehr schöner Artikel, danke !!! – devlearn

Verwandte Themen