知识图谱基本工具Neo4j使用笔记 四 :使用csv文件批量导入图谱数据

news/2024/11/24 1:09:51/

文章目录

  • 一、系统说明
  • 二、说明
  • 三、简单介绍
    • 1. 相关代码以及参数
    • 2. 简单示例
  • 四、实际数据实践
    • 1. 前期准备
      • (1) 创建一个用于测试的neo4j数据库
      • (2)启动neo4j 查看数据库
    • 2. 实践
      • (1) OK 上面完成后,准备数据
        • 1. 示例实体数据
        • 2. 示例 关系数据
        • 3. 示例 存放位置
      • (2) 数据准备好开始存储
        • 1. 注意事项
        • 2. 存储代码 编写
        • 3. 打开终端 在终端 键入上面命令 注意路径
        • 4. 查看效果

一、系统说明

neo4j 版本:neo4j-community-4.4.23
系统:win11

二、说明

一般我们进行小规模数据,如几百几千数据使用 py2neo 脚本,存储。并不会觉得速度慢或者快。但是当数据量达到几万甚至几百万时候,用脚本就相当耗费时间。解决方法很多,这里一起讨论一个相对简单的方法,利用csv文件进行存储。
这里说一下:有的版本 import 文件是在bin文件夹下,但是使用的版本不在。

在这里插入图片描述

三、简单介绍

1. 相关代码以及参数

以下是 neo4j-admin import 命令的语法:

neo4j-admin import \--database=<database> \[--mode=<import-mode>] \[--nodes=<node-file> [--nodes=<node-file> ...]] \[--relationships=<relationship-file> [--relationships=<relationship-file> ...]] \[--delimiter=<delimiter>] \[--array-delimiter=<array-delimiter>] \[--ignore-missing-nodes=<true/false>] \[--skip-duplicate-nodes=<true/false>] \[--ignore-duplicate-relationships=<true/false>] \[--additional-config=<config-file>]

现在我们来解释每个字段的含义并举例说明:

--database: 指定要导入的数据库名称。
--mode: 指定导入模式,有两种可选值:csv 和 database。默认为 csv 模式,表示从 CSV 文件导入数据。
--nodes: 指定包含节点数据的 CSV 文件路径。可以指定多个节点文件。
--relationships: 指定包含关系数据的 CSV 文件路径。可以指定多个关系文件。
--delimiter: 指定 CSV 文件中字段之间的分隔符,默认为逗号 ,。
--array-delimiter: 指定 CSV 文件中数组类型字段中元素之间的分隔符,默认为 ;。
--ignore-missing-nodes: 如果关系中的节点不存在是否忽略,默认为 false。
--skip-duplicate-nodes: 是否跳过重复的节点,默认为 false。
--ignore-duplicate-relationships: 是否忽略重复的关系,默认为 false。
--additional-config: 指定一个配置文件来设置其他导入选项。

2. 简单示例

neo4j-admin import \--database=my-database \--nodes=nodes.csv \--relationships=relationships.csv \--delimiter=,

在这个示例中,我们将从名为 nodes.csv 的文件导入节点,并从名为 relationships.csv 的文件导入关系。CSV 文件中的字段将使用逗号作为分隔符。

四、实际数据实践

1. 前期准备

(1) 创建一个用于测试的neo4j数据库

在这里进行处理,打开conf文件中的 配置文件
在这里插入图片描述

类似这样进行创建,即可
在这里插入图片描述

(2)启动neo4j 查看数据库

启动命令
neo4j.bat console

在这里插入图片描述

打开data 文件夹(该文件在安装目录)

在这里插入图片描述

可以看到创建成功了。数据库在 database 文件下

在这里插入图片描述

2. 实践

(1) OK 上面完成后,准备数据

1. 示例实体数据

数据解释:
实体文件格式:<nodeId:ID>, <propertyName1>, <propertyName2>, ..., <:LABEL>

开始为编号:ID,是唯一的,用于创建关系等后续import操作时索引到指定节点
中间为节点属性:最好用英文
结束为标签:LABEL 不是必须的 一个节点有多个标签

注意:大小写以及 不要遗漏,这里的 ID指定,比较灵活,可以根据需要来。
: 前面的是,该字段的原来属性名字,后面用于创建关系等后续import操作时索引到指定节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 示例 关系数据

.关系文件格式:<:START_ID>, <:END_ID>, <:TYPE>,<RelationshipPropertiesName1>,...<RelationshipPropertiesName2>

:START_ID :关系起点节点的ID编号 必须有
:END_ID:关系结束点节点的ID编号 必须有
:TYPE:关系的类别 必须有
RelationshipPropertiesName:关系属性 非必须

我这里给关系添加了一个 name属性

在这里插入图片描述
在这里插入图片描述

3. 示例 存放位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2) 数据准备好开始存储

1. 注意事项

  1. 注意csv文件的编码格式,若内容含有中文,要将编码转为“UTF-8”

  2. 输入neo4j-admin import语句

    关闭neo4j:neo4j stop
    其中ProductSod为标签

2. 存储代码 编写

neo4j-admin import 
--database=GkyProKgV1.db 
--nodes=Product="D:\AI_Tool\neo4j\neo4j-community-4.4.23\import\entity\product.csv" 
--nodes=Sod="D:\AI_Tool\neo4j\neo4j-community-4.4.23\import\entity\sod.csv" 
--relationships="D:\AI_Tool\neo4j\neo4j-community-4.4.23\import\relation\relation.csv" 
--force

3. 打开终端 在终端 键入上面命令 注意路径

我的 neo4j 安装路径

在这里插入图片描述

4. 查看效果

在这里插入图片描述


http://www.ppmy.cn/news/1026982.html

相关文章

从KM到Cure Models:常用生存分析方法的优缺点

一、引言 生存分析是一种用于研究个体生命长度或事件发生时间的统计方法。在许多领域中&#xff0c;如医学、社会学、经济学和工程学等&#xff0c;生存分析被广泛应用于分析个体的生存时间&#xff0c;并研究相关因素对生存时间的影响。通过生存分析&#xff0c;我们可以评估特…

hadoop3.3 50070端口起不来

有人会让你在 hdfs-site.xml中添加: <property><name>dfs.namenode.http.address</name><value>slave1:50070</value></property> 但是不起作用. 新版本name变了,应该配置如下: </configuration><property><name>dfs.h…

fastApi基础

1、fastApi简介 官方文档&#xff1a;https://fastapi.tiangolo.com/ 源码&#xff1a; https://github.com/tiangolo/fastapi 2、环境准备 安装python 安装pycharm 安装fastAPI 安装 uvicorn 查看已经安装的第三方库&#xff1a;pip list 查看pip 配置信息&#xff1a;pip co…

2308d的静态构造函数循环依赖示例

原文 //Steve: __gshared string[string] dict; shared static this() {dict ["a" : "b"]; }这里有两个论点:这不能是CRT构造器,因为它依赖于D运行时,并且认为它应该进入自己的模块是一个QoL问题,当你想要私有到类而不是私有到模块时,可为类提供它,因为语…

【python】pycharm 2023.02导入matplotlib报错

换新电脑、重装系统后&#xff0c;新装的pycharm 2023.02版本导入matplotlib会报错&#xff1a;找不到指定的模块 需要重新安装 Microsoft Visual C 2015 Redistributable Update 3或更高版本 下载链接&#xff1a;Download Microsoft Visual C 2015 Redistributable Update …

Vue关闭语法检查

在创建项目的时候&#xff0c;如果不小心开启了 eslint 语法检查&#xff0c;就会导致页面经常报错。 eslint 是一个 JavaScript 的效验插件&#xff0c;用来效验语法和代码的书写风格。 eslint 可以规范开发人员的代码。但是有些像缩进、空格、空行之类的规范&#xff0c;在…

Spring MVC 简介

目录 1. 什么是MVC2. 什么是SpringMVC 1. 什么是MVC MVC是一种常用的软件架构模式。可以看作是一种设计模式&#xff0c;也可以看作是一种软件框架。经典MVC模式中&#xff0c;M是指模型&#xff0c;V是视图&#xff0c;C则是控制器&#xff0c;使用MVC的目的是将M和V的实现代…

uniapp点击输入框时键盘不上推页面

adjust-position设置为false&#xff0c;然后监听键盘的高度赋值给输入框bottom 这里还一个非常重要的地方&#xff0c;在根元素设置touchmove.stop.prevent&#xff0c;这样在ios上页面就不会滚动&#xff0c;不影响其他组件内部滚动 onReady() {// 监听键盘高度变化&#x…