Ich habe das Import-Tool verwendet, um ~ 1 Million Knoten einzulesen. Jetzt ist es Zeit für Beziehungen. (Leider sieht es so aus, als müssten Beziehungen in einem CSV explizit vorherbestimmt werden, wenn Sie das Import-Werkzeug verwenden wollen.)'Java Heap Space' Fehler mit Neo4j - wenn zunehmende Speicherzuweisung fehlschlägt
Zuerst habe ich einen Index auf die Knoten gesetzt .
Als nächstes schrieb ich das, was ich frage mich, ist mein Problem - auch mit einem Index, diese Aussage könnte zu viele kartesischen Produkte verursacht ?:
USING PERIODIC COMMIT 500
LOAD CSV WITH HEADERS FROM
'file:///home/monica/...relationship.csv' AS line
MATCH (p1:Player {player_id: line.player1_id}), (p2:Player {player_id: line.player2_id})
MERGE (p1)-[:VERSUS]-(p2)
Anscheinend ist die USING PERIODIC COMMIT 500
nicht helfen, wie ich meine Fehlermeldung anzeigt,
Java heap space
googeln um, ich gelernt, dass es helfen könnte meine Speichereinstellungen in der Neo4j-wrapper.conf Datei zu ändern, also habe ich die Einstellungen den ganzen Weg bis zu 4 GB (ich habe ein System mit acht GB):
wrapper.java.initmemory=4096
wrapper.java.maxmemory=4096
Immer noch der gleiche Fehler.
Jetzt bin ich fest. Ich kann nicht an andere Strategien denken, neben:
1) die Anweisung umschreiben
2) ein System mit mehr RAM verwenden?
3) Finden Sie eine andere Möglichkeit, dies in Chargen zu tun?
Jeder Rat wäre toll. Danke an die neo4j SO Community im Voraus.
ich, wie Sie sagen haben; Ich entfernte den Index, fügte eine eindeutige Einschränkung hinzu und überprüfte dann den Abfrageplan. In der Tat ... da ist ein "eifriges" Lauern! Jetzt muss ich die Dokumentation lesen und sehen, wie ich das umgehen kann. Danke, dass Sie mich in diese Richtung weisen. –
Der Link zu Mark Needhams Blog empfiehlt, bei einer Iteration von 'LOAD CSV' zu viel zu vermeiden. In meinem Fall mache ich nur eine Sache in einer Iteration von 'LOAD CSV' ... –
In welcher neo4j-Version bist du? –