在Neo4j 沙盒实验申请使用过程中提到过,Neo4j 沙盒里面的数据还是非常好的,可以用来做一些实验,所以这篇文章就来介绍一下我将 Neo4j 沙盒中的数据导入到自己的 Neo4j 数据库的方法。
方法主要使用 github 上的源数据:https://github.com/neo4j-contrib/sandbox-guides,也有使用方法,下面说下我具体做的过程中的详细步骤。
1.克隆下载
选择一个要存放这个数据的文件夹,我存放的目录为/opt/neo4j/neo4j-community-3.2.0/data/databases/
,使用 git 方法下载文件,在目录下执行 root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/data/databases# git clone https://github.com/neo4j-contrib/sandbox-guides.git
2.初始化和升级
进入到下载目录后执行如下两条命令 root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/data/databases/sandbox-guides# git submodule init
root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/data/databases/sandbox-guides# git submodule update
3.执行脚本
这里主要是获取“network-management”数据,所以进入“network-management”文件夹,目录和命令为: root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/data/databases/sandbox-guides/network-management# ./render.sh
如果看到如下报错信息 Usage: sh render.sh [publish]
../neo4j-guides/run.sh: line 1: asciidoctor: command not found
Fetching: asciidoctor-1.5.5.gem (100%)
Successfully installed asciidoctor-1.5.5
1 gem installed
Installing ri documentation for asciidoctor-1.5.5...
Installing RDoc documentation for asciidoctor-1.5.5...
Usage ./run.sh OR ./run.sh path/to/a_guide.adoc [guide.html] [+1 (header-offset)] [http://guide-host:port]
rendering network-management.adoc to index.html
asciidoctor network-management.adoc -T ../neo4j-guides/templates -a allow-uri-read -a experimental -a guides=http://localhost:8001/ -a current=http://localhost:8001/ -a img=http://localhost:8001//img -a leveloffset=+1 -a env-guide= -a guide= -o index.html
asciidoctor: FAILED: 'tilt' could not be loaded
You must have the tilt gem installed (gem install tilt) to use custom backend templates
Use --trace for backtrace
Starting Websever at localhost:8001/ Ctrl-c to stop
那么就根据提示信息安装“asciidoctor”和“tilt”
在新的命令窗口使用 root 权限执行
apt-get install asciidoctor
gem install tilt
安装完成后重新执行 root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/data/databases/sandbox-guides/network-management# ./render.sh
这次应该不会再报错(如果还是报错,可以根据提示信息进行处理)。
4. 打开 web 界面
当上一步启动完成后,在浏览器中打开http://localhost:8001/,正常情况下会出现
如果看到这个页面,表示说明介绍页面已经正常了,可能会出现乱码,这无所谓,后面会说明如何使用,到时就不会有乱码了。
5.导入数据
这一步是关键,也是目的所在,也与 GitHub 上的步骤不同。
我在使用 Neo4j 页面导入的时候会报错,经查找通过 shell 方式导入数据就不会报错,于是采用以下方式:
先启动Neo4j:
root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/bin# ./neo4j console
然后在 Neo4j 安装目录的bin
文件夹中进入cypher-shell
,我的具体目录和命令为 root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/bin# ./cypher-shell
然后输入用户名和密码连接到 Neo4j 数据库,
登陆后复制“/sandbox-guides-master/network-management/network-management.cypher”这个文件里的全部内容到neo4j>
,
这样就可以顺利创建数据,创建完成后的信息提示如下图
如果在虚拟机里操作可能最后会报内存不足错误,可以调大内存,或者作为测试,那些结点无需创建,如果想用这些数据做进一步的实验,建议使用物理机。
6.查看数据
启动 Neo4j root@nssa-sensor1:/opt/neo4j/neo4j-community-3.2.0/bin# ./neo4j console
在浏览器中打开:http://localhost:7474/ 进入 Neo4j 的 web 界面,
点击左上角的数据库图标就会显示刚才导入的数据节点标签、关系等信息。在命令行中输入:play http://localhost:8001/
会显示在第 4 步中显示的介绍说明信息,这时可以按照说明信息查看操作。