如何批量、快速从MySQL将节点和关系数据导入neo4j
0 Neo4j简介
安装好neo4j后,启动服务,可以访问地址http://127.0.0.1:7474/browser/
看到以下界面,点击*号,就可以看到至多50个节点了。
这是neo4j的主界面,通过查询数据节点的相关属性、标签和关系,即时的把节点间存在的关系展示出来。
neo4j中的数据分为两种:node和relationship
每个node必须有:Label、ID,也可以有property
每个relationship有:Type,ID,也可以有property
在上方的输入框,我们可以输入类似sql的cypher-shell语句进行增删改查等操作
同时,cypher-shell也有类似mysql client的终端:
在终端上可以做类似mysql的查询等操作
退出使用 :exit
当然,neo4j的功能远不止这些
1 Neo4j安装
- 在官网下载地址下载neo4j对应版本
- 解压即可使用
tar -xzvf neo4j-community-3.4.1-unix.tar.gz
- 启动命令在解压后文件夹的bin目录下
启动服务:bin/neo4j start | console | stop | restart(启动 | 控制台 | 停止 | 重启)
cypher命令行:bin/cypher-shell
注意:在ubuntu上可以使用sudo apt-get install neo4j安装neo4j数据库,但是可能会遇到导入数据后无法打开web页面的情况。
2 使用neo4j-admin
neo4j-admin import
是官方提供的批量导入工具
创建几个文件: movies.csv、actors.csv、roles.csv
movies.csv
movieId:ID,title,year:int,:LABEL
tt0133093,"The Matrix",1999,Movie
tt0234215,"The Matrix Reloaded",2003,Movie;Sequel
tt0242653,"The Matrix Revolutions",2003,Movie;Sequel
actors.csv
personId:ID,name,:LABEL
keanu,"Keanu Reeves",Actor
laurence,"Laurence Fishburne",Actor
carrieanne,"Carrie-Anne Moss",Actor
roles.csv
:START_ID,role,:END_ID,:TYPE
keanu,"Neo",tt0133093,ACTED_IN
keanu,"Neo",tt0234215,ACTED_IN
keanu,"Neo",tt0242653,ACTED_IN
laurence,"Morpheus",tt0133093,ACTED_IN
laurence,"Morpheus",tt0234215,ACTED_IN
laurence,"Morpheus",tt0242653,ACTED_IN
carrieanne,"Trinity",tt0133093,ACTED_IN
carrieanne,"Trinity",tt0234215,ACTED_IN
carrieanne,"Trinity",tt0242653,ACTED_IN
执行下面的命令就可以导入将数据导入neo4j
rm -rf data/databases/graph.db/; #
neo4j_home$ bin/neo4j-admin import --nodes import/movies.csv --nodes import/actors.csv --relationships import/roles.csv
然后就可以看见文章开头的页面了
3. 从mysql导入
待续
rm -rf data/databases/graph.db/;
./bin/neo4j-admin import --nodes /home/watson/crawl/company_info/qichacha.com/nodes_script/nodes.csv --relationships /home/watson/crawl/company_info/qichacha.com/nodes_script/relationships.csv --ignore-duplicate-nodes --ignore-extra-columns true;
./bin/neo4j restart