Neo4j中使用neo4j-admin import导入大量数据

关于如何使用neo4j-admin import,最好是参考官方文档。我这里记录的内容适用于Neo4j的3.5.22版本。

1、A quick start

假设我需要导入三类实体、两类关系,那么,可以利用5个csv文件来分别存储上述数据。其中一类实体的数据格式为:

nameid:ID:LABEL
北京平谷区110kV变电站gs0GIS;SUBS
北京顺义区35kV变电站gs2GIS;SUBS

对于表头,nameid分别为节点的属性,其中,:ID意味着对声明id属性的值是全局唯一的;LABEL为节点的标签,可以设置多个标签,用;分割。

Note:
这里说的「全局唯一」的意思是,在那些表示实体的csv中的用:ID修饰了的属性值里,是唯一的。对于了解Neo4j的读者来说,可能会存在疑问,因为用:ID修饰的是节点的属性而不是原生<id>。关于这一点,会在第二部分进行说明。

其余两类实体对应的csv的格式类似。

其中一类关系的数据格式为:

:START_ID:END_ID:TYPE
gs32gl0connect
gs157gl1connect

其中,:START_ID:END_ID均指代一个节点的进行了ID声明的属性的值,:TYPE指代的关系的类型。在这个例子里,没有对关系的属性进行定义。

2、Some deeper thoughts

在表示关系的csv文件中,通过将gs32gl0放在一行,表明将为idgs32gl0的节点建立一条有向关系。更准确地说,是为被:ID修饰的属性中值为gs32gl0的节点建立一条有向关系。被修饰的属性名称不一定是id,也可以是其他的任何合法的名称。

因此,第一部分要求被:ID修饰的属性中的值是「全局唯一」的目的,就是为了在创建关系时可以准确地定位到目标节点,无论其在哪个csv文件中。

但实际上,这种全局唯一性不是必须的:因为对于不同类的实体已经用不同的csv文件进行了区分,因此,只需要保证在当前csv文件中,被:ID修饰的属性值是唯一的即可。这就引出了ID空间的用法。

对上面的文件例子进行修改:

实体类别1.csv:

nameid:ID(SpaceA-ID):LABEL
北京平谷区110kV变电站1GIS;SUBS
北京顺义区35kV变电站2GIS;SUBS

实体类别2.csv:

nameid:ID(SpaceB-ID):LABEL
万州区6kVⅢ线1GIS;LINE
合川区10kV③线2GIS;LINE

关系.csv:

:START_ID(SpaceA-ID):END_ID(SpaceB-ID):TYPE
12connect
11connect

可以看出,通过在关系中指定了节点的id来自哪个ID空间,从而可以避免保证id的全局唯一性。

3、Import nodes and relationships

在Neo4j安装的根目录位置进入shell,然后执行:

bin/neo4j-admin import --nodes=import/yx_sub.csv --nodes=import/yx_line.csv --nodes=import/yx_tran.csv \
--nodes=import/gis_sub.csv --nodes=import/gis_line.csv --nodes=import/gis_tran.csv \
--relationships=import/yx_sub_line.csv --relationships=import/yx_line_tran.csv \
--relationships=import/gis_sub_line.csv --relationships=import/gis_line_tran.csv

即,把要导入的csv文件放到根目录下的import路径下,先配置--nodes,再配置--relationships,如果有多个文件,重复配置多次即可。

创建好的测试数据在这里

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芳樽里的歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值