首先了解neo4j-admin这个工具的优缺点:

缺点: 由于是类似初始化数据库操作,需要先把neo4j服务停止,删除数据库,
优点:导入数据速度快
版本:3.5.28
进入数据库安装目录:

  1. 停止服务
cd bin/
./neo4j stop
  1. 删除数据库
cd ../data/database/
rm -rf grapg.db
  1. 生成节点文件,关系文件。
    字段数据中不能包含分割符逗号
    节点字段: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 同学 **大学 一年级
  1. 导入节点关系数据
    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"
同学
同学
同学
410*****0
410*****2
410*****9
410*****9

表头文件与内容文件分开存放时,关系配置可用

--relationships "import/header.csv,import/PM.csv" 

该命令会在当前目录下产生一个import.report文件,如果文件数据量比较大,最好在一个比较大的目录下执行

Logo

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

更多推荐