Die Speicherung mehrerer Graphen in Neo4J

Ich habe eine Anwendung, die speichert die Beziehung von Informationen in einer MySQL-Tabelle (contact_id, other_contact_id, Stärke, recorded_at). Das ist in Ordnung, wenn alles, was ich tun müssen, ist zeigen, die einen Kontakt der Beziehungen oder sogar zu generate eine Liste der gemeinsamen Kontakte zwei Kontakte.

Aber jetzt brauche ich zum generieren von stats wie: "was war die Gesamtzahl der 2-Wege-verbindungen der Stärke 3 oder besser im Januar 2011" oder (unter der Annahme, dass jeder Kontakt ist Teil einer Gruppe) 'die Gruppe hat die größte Anzahl von verbindungen zu anderen Gruppen etc.

Habe ich schnell festgestellt, dass das SQL für die Erstellung dieser Statistiken wurde unhandlich wirklich schnell.

Also schrieb ich ein Skript, dass für einen bestimmten Zeitpunkt wird es erzeugt eine Grafik im Speicher. Dann könnte ich jede beliebige stat ich wollte gegen das, graph. Viel einfacher zu verstehen, und im Allgemeinen, viel mehr Leistung bietet, auch -- außer für die Erzeugung der Graphen-Teil.

Mein Nächster Gedanke war der cache diese Diagramme so konnte ich fordere Sie auf, Wann immer ich gebraucht, um eine neue stat (oder generieren Sie einen später-Diagramm: z.B. für die heutige Grafik nehme ich die gestrige Grafik und übernehmen Sie alle änderungen, die geschehen, seit gestern). Ich habe versucht, memcached, die Super geklappt, bis die Graphen wuchs > 1 MB.

So, jetzt ich ' m denken über die Verwendung einer graphdatenbank wie Neo4J.

Problem ist nur, ich habe nicht nur eine Grafik. Oder ich tun, aber es ist eine, über die Zeit verändert und ich muss in der Lage sein, Abfragen mit verschiedenen Referenz-Zeiten.

Ja, kann ich:

  • speichern mehrere Diagramme in Neo4J und rertrieve/mit Ihnen interagieren, getrennt? würde ich dann erstellen und speichern von individuellen sozialen Graphen, die für jedes Datum.

oder

  • hinzufügen, gültig vom und Zeitstempel auf jeder Kante und filtern Sie die Graphik entsprechend: also, wenn ich wollte ein graph, für den "1. Mai" würde ich nur Folgen den neuesten Kante zwischen zwei noeds, die erstellt wurde, bevor "1. Mai" (und wenn alle Kanten, die erstellt wurden, nach dem 1. Mai werden dann die Knoten würden nicht angeschlossen werden).

Ich bin ziemlich neu im graph-Datenbanken, so dass jede Hilfe/Zeiger/- Hinweise werden dankbar angenommen.

  • nach etwas Lesen Frage ich mich, ob Referenz-Knoten sind die Schlüssel? ich könnte einen Referenz-Knoten, für jeden Tag und bauen, die am Tag des Graphen aus der Referenz-Knoten...
  • Hallo, ich denke, mit exntry Knoten für den Graphen, und vielleicht indizieren Sie mit irgendeiner Eigenschaft, so dass Sie Sie finden können nicht nur aus einem Referenz-Knoten, aber durch index-lookup hier helfen kann. Würde die Indizierung bestimmter "meta-Daten" Eigenschaften des Teilgraphen Eintrag Knoten geben Sie die richtigen Ansatzpunkte?
InformationsquelleAutor emh | 2011-05-11
Schreibe einen Kommentar