使用neo4j-admin导入数据到neo4j
最近项目上使用到了neo4j数据库,通过写代码增量写入的方式太慢,还好项目基本上是历史数据可以直接使用官方自带的neo4j-admin这个工具
·
首先了解neo4j-admin这个工具的优缺点:
缺点: 由于是类似初始化数据库操作,需要先把neo4j服务停止,删除数据库,
优点:导入数据速度快
版本:3.5.28
进入数据库安装目录:
- 停止服务
cd bin/
./neo4j stop
- 删除数据库
cd ../data/database/
rm -rf grapg.db
- 生成节点文件,关系文件。
字段数据中不能包含分割符逗号
节点字段:col:ID,:LABEL,col…(节点中数据id,节点名称,其余节点字段)
关系字段: :START_ID,:END_ID,:TYPE,col…(关系指向开始,关系指向结束,关系名称,其余关系属性字段)
节点数据文件:
person_node.csv
文件内容:
sfzh:ID | :LABEL | name | … | sex |
---|---|---|---|---|
410*****0 | Person | 张三 | … | 男 |
410*****2 | Person | 李四 | … | 女 |
… | … | … | … | … |
410*****9 | Person | 王五 | … | 男 |
关系数据文件:classmate_relation.csv
文件内容:
:START_ID | :END_ID | :TYPE | 学校 | … | 年级 |
---|---|---|---|---|---|
410*****0 | 410*****2 | 同学 | **大学 | … | 一年级 |
410*****2 | 410*****9 | 同学 | **大学 | … | 一年级 |
… | … | … | … | … | … |
410*****0 | 410*****9 | 同学 | **大学 | … | 一年级 |
- 导入节点关系数据
neo4j-admin import参数:
usage: neo4j-admin import [--mode=csv] [--database=<name>] //模式,默认csv
[--additional-config=<config-file-path>]
[--report-file=<filename>]
[--nodes[:Label1:Label2]=<"file1,file2,...">] //实体文件
[--relationships[:RELATIONSHIP_TYPE]=<"file1,file2,...">] // 关系文件
[--id-type=<STRING|INTEGER|ACTUAL>
[--input-encoding=<character-set>] // 编码格式
[--ignore-extra-columns[=<true|false>]] // 忽略多余列参数
[--ignore-duplicate-nodes[=<true|false>]] // 忽略重复节点参数
[--ignore-missing-nodes[=<true|false>]] // 忽略丢失的节点参数
[--high-io=<true/false>]
在bin目录中执行:
./neo4j-admin import --database=graph.db --nodes="../import/person_node.csv" --ignore-missing-nodes=true --ignore-duplicate-nodes=true --relationships="classmate_relation.csv"
如果需要导入多个关系文件:
./neo4j-admin import --database=graph.db --nodes="../import/person_node.csv" --ignore-missing-nodes=true --ignore-duplicate-nodes=true --relationships="classmate_relation.csv" --relationships="classmate_relation_2.csv"
表头文件与内容文件分开存放时,关系配置可用
--relationships "import/header.csv,import/PM.csv"
该命令会在当前目录下产生一个import.report文件,如果文件数据量比较大,最好在一个比较大的目录下执行

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)