赞
踩
neo4j 版本:neo4j-community-4.4.23
系统:win11
一般我们进行小规模数据,如几百几千数据使用 py2neo 脚本,存储。并不会觉得速度慢或者快。但是当数据量达到几万甚至几百万时候,用脚本就相当耗费时间。解决方法很多,这里一起讨论一个相对简单的方法,利用csv文件进行存储。
这里说一下:有的
版本 import
文件是在bin
文件夹下,但是
使用的版本不在。
以下是 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
: 指定一个配置文件来设置其他导入选项。
neo4j-admin import \
--database=my-database \
--nodes=nodes.csv \
--relationships=relationships.csv \
--delimiter=,
在这个示例中,我们将从名为 nodes.csv
的文件导入节点,并从名为 relationships.csv
的文件导入关系。CSV 文件中的字段将使用逗号作为分隔符。
在这里进行处理,打开conf文件中的 配置文件
类似这样进行创建,即可
启动命令
neo4j.bat console
打开data 文件夹(该文件在安装目录)
可以看到创建成功了。数据库在 database
文件下
数据解释:
实体文件格式:<nodeId:ID>, <propertyName1>, <propertyName2>, ..., <:LABEL>
开始为编号:ID
,是唯一
的,用于创建关系
等后续import操作时索引到指定节点(创建关系的时候,需要指定实体ID与实体ID的关系,因此这个ID要唯一
,避免冲突,建议:英文加数字免得冲突)
中间为节点属性:最好用英文
结束为标签:LABEL
不是必须的 一个节点有多个标签
注意:大小写以及 :
不要遗漏,这里的 ID指定
,比较灵活(可以是任意属性,比如我使用的是ID属性,也可以是name属性,使用name就是 name:ID 形式
),可以根据需要来。
:
前面的是,该字段的原来属性名字,后面用于创建关系等后续import操作时索引到指定节点
.关系文件格式:<:START_ID>, <:END_ID>, <:TYPE>,<RelationshipPropertiesName1>,...<RelationshipPropertiesName2>
:START_ID
:关系起点节点的ID编号 必须有 (这个就是 实体指定的 ID)
:END_ID
:关系结束点节点的ID编号 必须有 (实体指定的ID)
:TYPE
:关系的类别 必须有
RelationshipPropertiesName
:关系属性 非必须
我这里给关系添加了一个 name
属性
注意csv文件的编码格式,若内容含有中文,要将编码转为“UTF-8”
输入neo4j-admin import语句
先关闭neo4j
:neo4j stop
其中Product
和Sod
为标签
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
我的 neo4j 安装路径
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。