Csv 将64k个tuple导入neo4j

Csv 将64k个tuple导入neo4j,csv,neo4j,Csv,Neo4j,我试图将大约64000行导入neo4j图形。在导入过程中,我将一些属性转换为关系,因为其他字段也在合并中使用这些属性 这是我的密码查询: USING PERIODIC COMMIT 150 LOAD CSV WITH HEADERS FROM "http://example.com/some.csv" as csvline MERGE (gem:Gemeente { name: csvline.GEMEENTE}) MERGE (cbs:CBS { name: csvl

我试图将大约64000行导入neo4j图形。在导入过程中,我将一些属性转换为关系,因为其他字段也在合并中使用这些属性

这是我的密码查询:

USING PERIODIC COMMIT 150
LOAD CSV WITH HEADERS FROM "http://example.com/some.csv" as csvline
MERGE (gem:Gemeente     { name: csvline.GEMEENTE})
MERGE (cbs:CBS          { name: csvline.CBSCODE})
CREATE (obj:Object      { id: toInt(csvline.NUMMER), 
                          prop2: toInt(csvline.PROP2)
                         })
CREATE (obj)-[:IN_GEMEENTE]->(gem) 
CREATE (obj)-[:CBS_CODE]->(cbs)
当我手动将csv文件截断为10行时;这个密码运行得很好。我得到了一个很好的图表,有适当的关系

但是对我的csv文件中的每一行运行Cypher脚本时,服务器就会暂停,并发出错误/警告

7474
的仪表板中,我只得到一个简单的错误,没有任何信息。在neo4j shell中,我得到以下错误:

Error occurred in server thread; nested exception is:
    java.lang.OutOfMemoryError: Java heap space
看来我的内存快用完了。所以我试图减少提交数量;但这没有效果。
当然,我在
:Gemeente(naam)
:CBS(naam)

一个解决方案是将文件分成“负担得起的”块;但这当然是一个很大的工作:)而不是一个真正的解决方案


如何解决此问题?

您可能遇到了“急切”的问题。这些帖子讨论了这一点:

它可能会像这样工作得更好:

USING PERIODIC COMMIT 150
LOAD CSV WITH HEADERS FROM "http://example.com/some.csv" as csvline
MERGE (gem:Gemeente     { name: csvline.GEMEENTE});

USING PERIODIC COMMIT 150
LOAD CSV WITH HEADERS FROM "http://example.com/some.csv" as csvline
MERGE (cbs:CBS          { name: csvline.CBSCODE});

USING PERIODIC COMMIT 150
LOAD CSV WITH HEADERS FROM "http://example.com/some.csv" as csvline
CREATE (obj:Object      { id: toInt(csvline.NUMMER), 
                      prop2: toInt(csvline.PROP2)
                     })
MATCH
  (gem:Gemeente     { name: csvline.GEMEENTE}),
  (cbs:CBS          { name: csvline.CBSCODE})
CREATE (obj)-[:IN_GEMEENTE]->(gem) 
CREATE (obj)-[:CBS_CODE]->(cbs)

不过,您可能不需要像那样将其拆分。此外,由于您需要加载csv文件至少两次,因此您可能希望在本地对其进行加载,并从磁盘运行csv导入。语法是
loadcsv,其标题来自“file:///path/to/file“作为csvline
(我第一次尝试时发现一个示例时遇到了很多麻烦。它
s
file://`后跟路径。我的示例是unix路径,但我相信它也可以后跟windows路径)

您调整过数据库的内存设置吗?与其减少提交大小,不如尝试增加资源。不,我没有调整设置。应该调整哪些设置?我只绑定了1GB的RAM…您是否为:Gemeente(名称)和:CBS(名称)创建了索引/约束?是否可以共享您的输入文件以进行测试?或者至少是前几行?这是一个翻译错误:数据集是荷兰语的,但我把它翻译成了英语,但我忘了更新我帖子中的文本。在neo4j中,右边的标签和属性有一个索引。当使用三个cypher语句中的最后一个时,服务器只是暂停。在第一次创建
对象时将其分解,在第二次创建关系时,它起作用。