Neo4j批量插入 - 最佳选择?

3 投票
1 回答
1006 浏览
提问于 2025-04-18 09:17

我一直在尝试把一个相对较大的数据集导入到neo4j中……大约有5000万个节点和它们之间的关系。

我最开始是通过py2neo来试用Cypher,这个方法是可行的,但如果你需要使用CREATE UNIQUE或MERGE,就会变得非常慢。

现在我在寻找其他批量导入的方法,想知道哪种方法在工作流程和速度上比较好,以下是一些选择:

  • Neo4j的文档提到了一种批量插入工具,看起来是用Java写的,并且是Neo4j的一部分;
  • 还有一个在github上的批量插入工具,是Michael Hunger做的,我不太确定这个和Neo4j自带的工具有多相似或不同;
  • 接着还有load2neo,我现在正在测试这个;
  • 最后还有Neo4j v2的CYPHER中的从CSV加载功能,不过我不太确定这个主要是为了方便,还是它的性能和通过Cypher事务批量执行,比如每次40,000条的查询差不多。

如果能对这些选项的功能、工作流程和速度差异提供一些意见,我将非常感激。

1 个回答

1

如果你能使用最新版本的Neo4j,推荐的做法是使用Cypher中的新LOAD CSV语句。你可以在这里找到相关的说明:http://docs.neo4j.org/chunked/stable/cypherdoc-importing-csv-files-with-cypher.html

撰写回答