Neo4j批量插入 - 最佳选择?
我一直在尝试把一个相对较大的数据集导入到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