neo4j 大量数据的批量导入

这篇文章 将记录使用neo4j-import 工具进行大批量数据快速导入neo4j数据库中的具体过程。

Super Fast Batch Importer For Huge Datasets Into Neo4j Graph Database


官方文档在这里:

https://neo4j.com/developer/guide-import-csv/#_super_fast_batch_importer_for_huge_datasets


1. 数据准备

使用批量数据导入的时候,需要将数据准备为csv格式,即每个字段使用,

进行分隔。比如我们现在有人名,地名,组织名三种属性的实体(这些实体也即是neo4j中的节点),实体的属性为了简单只有name和id,实体之间的关系也为了简单只有一个种关系,所有存在的关系标签都叫relation。下面我们将三种实体和关系分为三个csv文件保存,文件的内容大致如下:

    1. person.csv
id:ID name
1 马云
2 柳传志
….

- 2. location.csv

id:ID name
3 北京
4 上海
….

- 3. organization.csv

id:ID name
5 阿里巴巴集团
6 联想集团
….

- 4. relation.csv

:SATART_ID :END_ID links
1 5 董事局主席
2 6 xxx
….

需要注意的是,三个实体表中的:ID是必须写的,并且ID 全局唯一,也就是三个表格中的ID都是唯一的,不可以有重复,在关系表中,不可以存在没有ID指向的实体


2. 导入

导入的时候我是在windows上进行的,所以请在cmd中将路径转到pat/neo4j/bin目录下。
使用如下命令进行四个csv文件的导入:

neo4j-import.bat --into ../data/databases/graph.db --id-type string
--nodes:person ../import/person.csv 
--nodes:organization ../import/organization.csv 
--relationships:Links ../import/relation.csv

我将文件放在了path/neo4j/import目录下了,所以的路径使用的是相对路径指向文件所在。上述命名的第一行的graph.db是配置文件中激活默认的数据库名,路径在path/neo4j/data/databases/下。如果该目录下graph.db存在,那么会创建失败,因为batch import是为了初次数据导入准备的,这个数据库目录必须是不存在的。

导入成功的截图:

neo4j 大量数据的批量导入_第1张图片

3.需要注意点

3.1 使用LOAD CSV 批量导入数据

可以在浏览器端或者是neo4j的console下进行这种方式的数据导入,但是这种方式只适用于20M以内的数据导入,对于大量数据是不适用的。

3.2 –nodes:xxx

这里:后面表示的是节点的LABEL-NAME,和使用create(“马云”:Person)中的Label-Name等效.

同理relationships:xxx这个冒号后面的等同[R:XXX]是一样的

3.3 停止数据库服务

在使用上面的import的时候,必须关闭neo4j的数据库服务,如果–into后面的数据表不是conf中配置的db,请修改后再启动。否则是查不到任何导入的数据的。

Reference

  1. https://neo4j.com/developer/guide-import-csv/#_super_fast_batch_importer_for_huge_datasets

你可能感兴趣的:(nlp)