学习Neo4j几小时小结~将数据批量导入Neo4j数据库 |
您所在的位置:网站首页 › 导入数据库的几种方式是什么意思 › 学习Neo4j几小时小结~将数据批量导入Neo4j数据库 |
这是目录
一、关于Neo4j二、安装Neo4j三、导入数据1、常见导入形式对比2、数据准备3、导入代码
四、几个简单的查询五、参考链接
一、关于Neo4j
Neo4j是一款强健的,可伸缩的高性能图数据库。 我是用它来可视化我的知识图谱的~ 下面是我整个可视化的过程,学习了一下午+一晚上搞定,记录本次流程,方便我以后使用~ 这是最后的效果截图 二、安装Neo4j下载和安装Neo4j可以参考这篇文章的第一章:下载和安装Neo4j 1、安装Java JDK 2、下载Neo4j安装文件 3、创建系统环境变量 三、导入数据 1、常见导入形式对比我这里为了方便,直接使用的是最后一种方式Neo4j-import,直接在cmd输入相应命令就可以导入了。相关命令以及操作在下面会提及到。 (据说python有相关的包py2neo,直接pip install py2neo就可以了) 2、数据准备这里说下我本来拥有的数据格式是【实体1\t实体1类型\t关系\t实体2\t实体2类型】 但是这里批量导入希望我把所有的这些实体和关系分开,A实体的全部放入一个csv文件,B实体的全部放入一个csv文件,以及其他所有的实体,全部分开放入到不同的csv文件里面去,格式是【实体id,实体名】。注意这里的实体id必须是连续起来的,因为要确保唯一性。 对于关系,也是把A关系存为一个csv文件,B关系存为一个csv文件,以及其他的关系,格式是【实体1id,实体2id,关系名】,这里的实体1是起点实体的id号,这里的实体2是终点实体的id号,所以这也是之前为什么强调所有的实体id不能重复必须唯一的原因。 刚开始的文件 更改格式后的文件 注意事项 这里的每一个实体的csv(不包括关系)的 id 是连续起来的,必须确保唯一性这里csv文件里面的命名可以和这里一样,比如[id:ID,name]和[:START_ID,:END_ID,links],之前因为命名的问题出现过错误,虽然也不知道是否是因为命名的问题,但是这里还是注意下 3、导入代码(1)在进行批量导入之前,请确保两件事情,一件是没有打开Neo4j服务(我这里只要登陆不上 http://127.0.0.1:7474/browser/ 就说明这个服务是关闭的),另一件事情就是确保path/data/databases/下没有你的数据库,因为批量导入是不能够直接插入数据的,而是直接全部重新生成。 (2)打开cmd(快捷键win+R ,输入cmd),进入到你安装neo4j的目录,我这里安装的目录路径是path\neo4j-community-3.4.1,目录长下面这样 进入bin目录下,输入你的命令就可以批量导入成功了,我的命令如下: neo4j-import.bat --into ../data/databases/graph.db --id-type string --nodes:bingyin ../import/bingyin.csv --nodes:jianfeishipu ../import/jianfeishipu.csv --nodes:jianfeiyundong ../import/jianfeiyundong.csv --nodes:jibing ../import/jibing.csv --nodes:shiwu ../import/shiwu.csv --nodes:zhengzhuang ../import/zhengzhuang.csv --nodes:zhenliaoshouduan ../import/zhenliaoshouduan.csv --relationships:因果 ../import/yingguo_rel.csv --relationships:表现形式 ../import/biaoxianxingshi_rel.csv --relationships:治疗 ../import/zhiliao_rel.csv --relationships:包含 ../import/baohan_rel.csv --relationships:宜吃 ../import/yichi_rel.csv --relationships:忌吃 ../import/jichi_rel.csv(PS:因为我全部写成一行了,因为在cmd端只能写成一行,所以编辑器显示的不好看明白,下面是我把每一条语句分行,给大家更清楚的展示) 注意事项 所有要批量导入的文件都要提前放入path\neo4j-community-3.4.1\import文件夹下,所以导入文件这里使用的是相对路径neo4j-import.bat --into …/data/databases/graph.db --id-type string的意思是导入数据库graph.db,该数据库一开始应该不存在,检查path\neo4j-community-3.4.1\data\databases下是否已经存在该数据库,有请删除–nodes:bingyin …/import/bingyin.csv 其中nodes表明导入的是节点, "bingying"指的是该节点的 label,也即该实体的实体类型,后面的.csv是导入的文件–relationships:治疗 …/import/zhiliao_rel.csv其中relationships指的是导入的是关系,"治疗"指的是该关系的名称以上所有的语句,用空格来隔开就好,放入cmd窗口时一起运行的(3)以上命令输入之后,显示导入成功后,可以打开Neo4j服务器,同样是在cmd窗口下,在bin目录下,输入命令neo4j.bat console,OK之后,就可以用浏览器进入本地网址 http://localhost:7474/ 就可以看到你生成好的图数据库了。 四、几个简单的查询1、直接点按钮进行查询。打开本地网址,如图右边所示,上面的Nodes是我导入的所有实体,下面的 Relationship 是我导入的所有实体关系,点击一个“宜吃”的实体关系,会出现右边第一幅图。双击实体,点击红色框的按钮,可以看到该实体的所有关系出来,比如“游泳”这个实体出现了一个“忌吃”的关系。 2、显示某个关系(比如"宜吃")下的所有实体联系 MATCH p=()-[r:`宜吃`]->() RETURN p或者 MATCH p=(:jianfeishipu)-->(shiwu) RETURN p3、显示某个类型(比如“疾病”)的所有实体 MATCH (n:jibing) RETURN n 五、参考链接1、 我是参考这篇做成功的~Neo4j批量导入 2、Cypher查询入门 3、以及我没有用上的py2neo用法Py2neo使用指南 4、下载以及环境配置参考这篇文章和这篇文章 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |