【问题标题】:Load medium-sized dataset to neo4j将中型数据集加载到 neo4j
【发布时间】:2018-01-25 18:10:20
【问题描述】:

我有一个 190 万行 / 187MB 的 csv,当我尝试 LOAD CSV 时,它给了我 TransientError: There is not enough memory to perform the current task

我确实按照错误消息的建议增加了dbms.memory.heap.max_size,将initial size 设置为4G,将max size 设置为32G。

所以我的问题是我需要多少内存来加载这个,据我所知,不是那么大的数据集? 16G内存的家用电脑也可以吗?

非常感谢您的帮助..

【问题讨论】:

  • 你在本地运行 docker 吗?这里记录了一个类似的问题,似乎与 docker 和 neo4j 有关:github.com/neo4j/neo4j/issues/9148
  • 请分享您的加载 csv 语句。
  • @Kyle Burkett 谢谢,但我在本地机器上运行 neo4j,而不是 docker @Bruno Peres 我使用的语句与cybersam 显示的完全相同,但没有USING PERIODIC COMMIT,现在添加它解决了问题,谢谢

标签: csv neo4j cypher py2neo


【解决方案1】:

如果您尚未将USING PERIODIC COMMIT 指定为indicated by the dev manual 作为您的数据大小,则应该这样做。这将允许LOAD CSV 以较小的块处理您的数据,而不是尝试在单个事务中完成所有操作,这可能是您内存不足的原因。

这是一个简单的例子:

USING PERIODIC COMMIT
LOAD CSV FROM 'file:///foo.csv' AS line
CREATE (:Person { name: line[1], address: line[2] });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 2015-11-19
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多