Ich mache einige Sachen mit meiner Universität und ich wurde gebeten, ein System zu erstellen, das komplette Bäume mit Millionen von Knoten (1 oder 2 Millionen mindestens) erstellt . Ich habe versucht, den Baum mit einem laden CSV mit einem periodischen Commit zu erstellen und es funktionierte gut mit der Erstellung von nur Nodes (70000 ms auf einem Allzweck-Notebook: P). Als ich das gleiche mit den Edges versuchte, skalierte es auch nicht.Erstellen/Verwalten von Millionen Vertex-Baum in Neo4j 3.0.4
Using periodic commit LOAD CSV WITH HEADERS FROM 'file:///Archi.csv' AS line
Merge (:Vertex {name:line.from})<-[:EDGE {attr1: toFloat(line.attr1), attr2:toFloat(line.attr2), attr3: toFloat(line.attr3), attr4: toFloat(line.attr4), attr5: toFloat(line.attr5)}]-(:Vertex {name:line.to})
Ich muss garantieren, dass ein Baum in nicht mehr als 5 Minuten erzeugt wird.
Gibt es eine schnellere Methode, die solche Leistungen zurückgeben kann?
P.S. : Die Aufgabe erwartet nicht, Neo4j zu verwenden, aber nur eine Datenbank (entweder SQL oder NoSQL), aber ich fand diese NoSQL Graph DB heraus und ich dachte, wäre nett, mit Neo4j zu implementieren, da die Diagrammdatenstruktur kostenlos gegeben wird.
P.P.S: Ich bin mit Cypher
Als erstes, danke für die Hilfe. Ich habe eine Frage, die dich vielleicht zum Lachen bringen wird .-. : Wie funktionieren Schemaindizes und wie können sie meine Abfragen verbessern? –
Hier ist der [Schemaabschnitt] (https://neo4j.com/docs/developer-manual/current/cypher/#cypher-schema) in der Entwicklerdokumentation. Normalerweise erstellen Sie entweder eine eindeutige Integritätsregel oder einen Schemaindex für eine Eigenschaft von Knoten mit bestimmten Beschriftungen, um die Leistung beim Suchen von Knoten mit dieser Beschriftung durch diese Eigenschaft zu verbessern. Durch Erstellen eines Indexes für: Vertex (Name), Suchen nach: Vertex-Knoten nach Name (z. B. wenn Sie mit diesen Knoten eine Beziehung herstellen, um eine Beziehung zwischen ihnen herzustellen) verwenden Sie den Index unter der Haube, um die Suche schnell durchzuführen. Andernfalls muss alles gescannt werden: Vertex-Knoten nach der Eigenschaft name. – InverseFalcon
Was ist mit der Super-Importeur-Methode? Die Dokumentation besagt, dass dieses Tool für riesige Datasets benötigt wird, die als CSV strukturiert sind, aber ich kann dieses Tool nicht finden. Das Tool befindet sich in "path/to/neo4j/bin/neo4j-import", sagt das Dokument, aber ich kann es nicht nennen. Ich benutze neo4j 3.0.4 –