Was sind die besten Möglichkeiten zum Speichern von Graphen im persistenten Speicher?
Frage ich mich, was die besten Möglichkeiten zum speichern von Grafiken im persistenten Speicher sind, für die spätere Analyse, Suche, clustering, etc.
Sehe ich neo4j eine option, ich bin neugierig, ob es auch andere Graphen-Datenbanken zur Verfügung. Hat jemand irgendwelche Erkenntnisse, wie größere soziale Netzwerke speichern von graph-basierten Daten (oder anderen Seiten, die verlangen, dass die Speicherung von graph-Modelle, z.B. RDF).
Was über Optionen wie Cassandra oder MySQL?
InformationsquelleAutor der Frage nicoslepicos | 2010-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Graph-Datenbanken:
Quelle: http://nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases
Grafik-Bibliotheken:
Von Ihrer Seite - "Es bietet einfache Möglichkeiten zum verwalten von sehr großen Graphen, die Nutzung von modernen Kompressionsverfahren."
Sie verwenden den "memory-mapped I/O, disk-basierte lineare hashing".
InformationsquelleAutor der Antwort Susheel Javadi
Haftungsausschluss: ich spreche bilden das Grafik-Analyse-Sicht.
Gibt es mehrere Dateiformate für die Speicherung von Grafik-Daten: GraphMLGXL und einige andere. Aber die Lagerung in der Regel kein problem. Die Arbeit mit den Graphen, ohne Sie vollständig zu laden in den RAM ist der schwierige Teil.
Dem RDF-Modell ist zu allgemein, zu tun, ernst-graph-Analyse-Zeug. Wenn Sie nichts dagegen haben, Ihre Analyse wird langsam und Programmierung der algorithmen selbst, mit dem vorhandenen graph-Datenbanken - siehe wikipedia.
Für Echtzeit-Analyse, laden Sie alle Daten in den RAM-Speicher vorhandenen graph-Analyse Bibliotheken, wie SNAP oder sehen Diese Frage.
InformationsquelleAutor der Antwort Viesturs
Gibt es keine absolut richtige Antwort hier; es gibt eine Vielzahl von Optionen, die Wahl der ernst hängt von Ihren Bedürfnissen ab. Durch umfangreiche Abrufe/traversalen (z.B. soziale Netzwerke und ähnliche back-ends) du bist schnell dabei auf die random-I/O-Engpass; ich glaube, speichern Sie Ihr Diagramm in RAM ist derzeit die einzig praktikable Vorgehensweise. Weniger Latenz-sensitive Anwendungen haben durchaus eine Vielzahl von Optionen, einschließlich neo4j (open source mit kommerziellen Geschmack) und Allegrograph (commercial mit einem begrenzten free-edition).
Bei Delver landeten wir mit der Umsetzung unserer eigenen denormalisierte Daten Modell (im wesentlichen eine Nähe Liste zur Darstellung der Grafik) im RAM auf der Oberseite der GigaSpaces (einige Informationen finden Sie in diese Präsentation), mit benutzerdefinierten map-reduce-code für Abfragen und Daten-Analyse. Wenn Sie diesen Weg gehen, Cassandra zu sein scheint, eine brauchbare open-source-Plattform auf zu bauen.
InformationsquelleAutor der Antwort Tomer Gabel
Ihnen ansehen konnte, InfiniteGraph, die veröffentlicht werden, für beta sehr bald (http://www.infinitegraph.com/)
Wenn dies für die kommerzielle Nutzung, dann siehst du es zielt auf Websites, die haben größere Grafiken. Die social-networking-sites, kundenspezifische Lösungen, die für Sie gearbeitet zu der Zeit. Aber Sie sind in-house-Lösungen sind mehr als die Begrenzung mit so etwas wie InfiniteGraph. Produkte wie Cassandra oder MySQL waren nicht ausgelegt für so viele-zu-viele-Probleme. Können Sie es tun? Sicher, aber es ist eine Menge von hand-SCHRIFTLICHEN Codierung, und nicht skalierbar.
Lassen Sie uns wissen, wenn Sie ein echtes Projekt, wir könnten Ihnen helfen, herauszufinden, Sie Grafik-Anforderungen.
Vielen Dank,
Warren
[email protected]
InformationsquelleAutor der Antwort Warren