您的位置:首页 > 数据库

CSV文件导入Neo4j数据库

2018-01-16 21:05 197 查看
    之前创建Neo4j数据库是直接读取txt文件,在代码中创建节点和边导入数据库的。今天下午,师妹跟我说还可以直接导入csv文件,我一想这也是一个不错的方法啊,就和她开始研究了起来。中间遇到了很多问题,但都一一解决了,oh yes,赶快记录一下以免忘记^.^!

    低版本的了neo4j中好像不支持neo4j-import,所以这里用的版本是3.3.1,安装方法就自行百度吧~

    本例中用到的数据如链接中所示 http://neo4j.com/docs/stable/re03.html,分别有节点文件movies、actors和关系文件roles,创建三个excel文件,分别命名为movies.xlsx、actors.xlsx、roles.xlsx,并将数据填入其中,actors.xlsx结果如下,另外两个也类似。



    然后另存为后缀为.csv的文件,结果如下



    数据文件创建好之后就开始导入neo4j数据库了,这里我们使用命令行进行导入。首先我们来看一下neo4j3.3.1安装包bin文件夹下的目录结构,将要用到的命令neo4j-admin就在当中。importdata文件夹是我自己创建的,为了方便导入,我将要导入的三个csv文件放入了importdata当中(免得要写路径,我比较懒==)



    win+R 输入cmd打开命令行,切换到neo4j安装目录的bin目录下,输入下面的命令:

neo4j-admin import --mode=csv --database=userMovie.db --nodes importdata\movies.csv --nodes importdata\actors.csv --relationships importdata\roles.csv    代码的意思是以csv的文件模式,将importdata文件夹下的movies节点,actors节点,roles.csv关系导入到名为userMovie的数据库中(这个数据库名字可以自己定义),回车一下,如果出现下面的界面就代表导入成功,皆大欢喜!



    导入之后并不是大功告成了,还要在浏览器中访问这个数据库看一下导入的结果,这时候就面临一个很大的问题,neo4j默认的数据库是data/databases下面的graph.db,浏览器也会默认的访问这个graph数据库,所以当你新建了一个数据库的时候,就需要去修改配置文件,虽然也可以达到效果,但是操作很麻烦。



连接新数据方法一   (简单但麻烦)

    虽然麻烦,但是也介绍一下这个相对简单的方法吧,打开conf文件夹下面的neo4j.conf文件



    将dbms.active_database = graph.db 修改为 dbms.active_database = 你的数据库名称.db,并且!!将前面的井号删除掉,有井号表示并不执行,是默认设置,修改之后别忘记保存哦!!



    然后打开命令行,切换到bin目录下,为了启动简单,可以把Neo4j安装为服务,方法如下图所示:



    安装好之后,执行如下操作启动neo4j



    启动之后我们就可以打开浏览器来访问我们的数据库了:http://localhost:7474/,访问效果如下,红笔画出数据库名为新创建的数据库(原来是graph.db)~



    连接新数据库方法二(困难但是简单)

    这个方法简单在不用去改配置文件,只需在启动neo4j服务之前执行一条命令即可,但是对于不熟悉命令行的人来说却有点困难,所以这里将两种方法都介绍一遍,各取所需吧!
    由于neo4j默认访问的是graph.db数据库,如果我们将新创建的数据库与这个默认数据库之间创建一个软连接,即默认数据库中的内容都是新创建的数据库,那么是不是间接的访问了新创建的数据库,而不用每次都修改配置文件的内容。
    在window中创建软连接的命令如下:



    由于创建软连接之后,graph.db的内容会被修改,所以我们先对graph.db做一下备份,将graph.db更改为graph_copy.db:(此时neo4j服务要关闭,否则执行不了该命令)



    
    然后就可以进行软连接了,我们使用的命令为:



    执行之后databases目录结构如下:



    graph.db左下角有一个快捷方式,表示是userMovie的软连接。这时配置文件还是默认的数据库



    在bin目录下重启neo4j服务:



    访问浏览器结果如下,数据库名虽然为graph.db,但是数据库是userMovie的内容。



    至此,CSV文件在命令行中导入Neo4j数据库就完成了,撒花~

    希望对你们有帮助,以上~

<
4000
/div>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: