- Version
- Neo4j-3.3.5
数据导入
数据导入的几种方式
- Cypher create 语句,为每一条数据写一个 create
- Cypher load csv 语句,将数据转成 CSV 格式,通过 LOAD CSV 读取数据。
- 官方提供的 neo4j-import 工具,未来将被 neo4j-admin import 代替
- 官方提供的 Java API - BatchInserter
- 大牛编写的 batch-import 工具
- neo4j-apoc load.csv + apoc.load.relationship
- 针对实际业务场景,定制化开发
参考链接:
- 海量数据导入 Neo4j 的几种方式
- Neo4j 批量导入数据的几种方式
- 使用 batch-import 工具向 neo4j 中导入海量数据
- batch-import 已经编译好的工具 3.0,对应 neo4j-3.0.4
- batch-import 的 github
- batch-import 的相关说明
本节主要说明三种导入方式 loadcsv、neo4j-import、batch-import
本文数据导入使用唯一 ID(node)
数据导入的注意事项
- 如果设定唯一主键时,ID 必须唯一
- 边中的 ID 必须存在于节点中,否则关系导入会跳过。
Neo4j-import
注意事项
文件格式
文件格式样例
1 | # cust.csv |
文件格式说明
- 文件中 ID 必须唯一
导入命令
1 | neo4j-import适应场景 |
batch-import
注意事项:
- batch-import 不支持多进程调用。
- batch-import 版本必须和 neo4j 版本一致。
- (否则导致数据库自动升级后虽然正常使用,但是 batch-import 已经无法读取升级后的数据库了)
文件格式
1 | # cust.csv |
文件格式说明:
- id:string:id_index ID 唯一,指定类型,设置索引
导入命令
1 | # batch-import命令 |
Load-csv
文件格式
1 | load csv 导入格式要求 |
其他说明
特殊说明
csv 数据导入失败:可能性有多种
文件 head 头不对。 存在节点和交易关系头不对的情况
节点或交易边数据,ID 存在重复。 csv 文件中 ID 必须唯一。且所有实体表中的:ID 是必须写的,并且 ID 全局唯一,也就是三个表格中的 ID 都是唯一的,不可以有重复,在关系表中,不可以存在没有 ID 指向的实体。
参考资源
性能测试
neo4j-import 方式
IMPORT DONE in 1m 17s 799ms. Imported:
7295460 nodes
10000000 relationships
112954600 properties
real 1m19.456s
user 5m51.375s
sys 0m15.706s
耗时 79.73S 速度 216,916.30 条/s