如何将大规模数据导入Neo4j
项目需要基于Neo4j开发,由于数据量较大(数千万节点),因此对当前数据插入的方法进行了分析和对比。
我本地使用的Neo4j版本为:
可选方案
目前主要有以下几种数据插入方式:
- Cypher CREATE 语句,为每一条数据写一个CREATE
- Cypher LOAD CSV 语句,将数据转成CSV格式,通过LOAD CSV读取数据。
- 官方提供的Java API —— Batch Inserter
- 大牛编写的 Batch Import 工具
- 官方提供的 neo4j-import 工具
结论
- 如果项目刚开始,想要将大量数据导入数据库,Neo4j-import是最好的选择。
- 如果数据库已经投入使用,并且可以容忍Neo4j关闭一段时间,那么Batch Import是最好的选择,当然如果你想自己实现,那么你应该选择Batch Inserter
- 如果数据库已经投入使用,且不能容忍Neo4j的临时关闭,那么LOAD CSV是最好的选择。
- 最后,如果只是想插入少量的数据,且不怎么在乎实时性,那么请直接看Cypher语言。