大规模导入数据之neo4j-import

对于将数据导入neo4j,比较常用的是LOAD CSV的方式,这种方法适用于中小规模数据,但对于大规模数据的导入,有三种方法Batch inserter(适用于java)、Batch import(基于Batch inserter编译好的jar包)和neo4j import。本文主要neo4j官方出品的neo4j-import,这种方法适用于未初始化数据库的数据导入。

neo4j是neo4j-admin 中一个特殊命令而已,作为一名技术人员举一反三是必然的,所以把neo4j-admin全部命令系统学习和研究才是技术演进的方式。

Neo4j-admin 常用的command

neo4j-admin

1. check-consistency 检查一致性

2. help 帮助

3. import 导入数据

4. memrec 内存使用推荐

5. store-info 数据仓存储的信息

6. set-default-admin 设置管理员账户

7. set-initial-password 设置初始密码

8. dump 数据备份

9. load 载入备份数据

import基本语法

neo4j-admin import [--mode=csv] [--database=]

[--additional-config=]

[--report-file=]

[--nodes[:Label1:Label2]=]

[--relationships[:RELATIONSHIP_TYPE]=]

[--id-type=]

[--input-encoding=]

[--ignore-extra-columns[=]]

[--ignore-duplicate-nodes[=]]

[--ignore-missing-nodes[=]]

[--multiline-fields[=]]

[--delimiter=]

[--array-delimiter=]

[--quote=]

[--max-memory=]

比如从三个文件导入数据:

neo4j-admin import --nodes import/movies.csv --nodes import/ac

tors.csv --relationships import/roles.csv

对于导入的数据CSV的设计原则

1.属性

字段名

数据类型 int, long, float, double, boolean, byte, short, char,string,默认为string

并列值的默认分隔符为; --array-delimiter用这个声明其他的分隔符

使用:IGNORE忽略字段的数据

2. node数据

:ID 有一个字段定义id,必须存在,而且唯一

:LABEL 定义标签,用;分割多标签

例子如下:

movieId:ID,title,year:int,:LABEL

tt0133093,"The Matrix",1999,Movie

tt0234215,"The Matrix Reloaded",2003,Movie;Sequel

tt0242653,"The Matrix Revolutions",2003,Movie;Sequel

3.关系数据

START_ID 起点id END_ID 终点id TYPE 关系类型

例子如下:

:START_ID,role,:END_ID,:TYPE

keanu,"Neo",tt0133093,ACTED_IN

keanu,"Neo",tt0234215,ACTED_IN

keanu,"Neo",tt0242653,ACTED_IN

laurence,"Morpheus",tt0133093,ACTED_IN

laurence,"Morpheus",tt0234215,ACTED_IN

laurence,"Morpheus",tt0242653,ACTED_IN

carrieanne,"Trinity",tt0133093,ACTED_IN

carrieanne,"Trinity",tt0234215,ACTED_IN

carrieanne,"Trinity",tt0242653,ACTED_IN

4.ID命明空间

ID()

例子:

START_ID() END_ID()

例子:

5.跳过某一列IGNORE

Dump 与Load

neo4j-admin dump--database= --to=

例子

neo4j-admin load --from=--database= [--force]

load数据需要关闭数据库

Cypher Shell (在终端执行cypher语句)

cypher-shell [-h] [-aADDRESS] [-u USERNAME] [-p PASSWORD] [--encryption ] [--format] [--debug] [--non-interactive] [-v] [--fail-fast |--fail-at-end] [cypher]

执行一个查询脚本

:param使用

事务:begin, :commit,:rollback

查看用户dbms.showCurrentUser().

参考内容:https://neo4j.com/docs/operations-manual/current/tools/neo4j-admin/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180427G093OF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券