知识图谱(三):Neo4j数据导入与多库切换

一、Neo4j数据导入

1、import导入csv

  • import语法
neo4j-admin import [--mode=csv] [--database=<name>]
                          [--additional-config=<config-file-path>]
                          [--report-file=<filename>]
                          [--nodes[:Label1:Label2]=<"file1,file2,...">]
                          [--relationships[:RELATIONSHIP_TYPE]=<"file1,file2,...">]
                          [--id-type=<STRING|INTEGER|ACTUAL>]
                          [--input-encoding=<character-set>]
                          [--ignore-extra-columns[=<true|false>]]
                          [--ignore-duplicate-nodes[=<true|false>]]
                          [--ignore-missing-nodes[=<true|false>]]
                          [--multiline-fields[=<true|false>]]
                          [--delimiter=<delimiter-character>]
                          [--array-delimiter=<array-delimiter-character>]
                          [--quote=<quotation-character>]
                          [--max-memory=<max-memory-that-importer-can-use>]
                          [--f=<File containing all arguments to this import>]
                          [--high-io=<true/false>]
  • import案例

命令:

./bin/neo4j-import --into data/databases/graph_kg_merge_id.db --nodes:Persons data/csv_kg_merge_id/persons.csv --nodes:Industry data/csv_kg_merge_id/industry.csv --relationships:Director data/csv_kg_merge_id/director.csv --multiline-fields=true

各文件内容:

一、节点
name:ID 表示该列的属性名为name,ID 
表示该属性是唯一标示一个实体的属性(类似关系型数据库中的主码),括号表示一个id-group,即表示该ID唯一表示括号内种类的实体,而不是所有实体;

节点Persons.csv:

person_name:id,name
71927,乜标@1963-01-01
71928,冯泽舟@1954-01-01
71929,张宇锋@1965-01-01
71930,丁涛@1979-01-01
71931,周静尧@1963-05-01



节点industry.csv:

industry_name:id,id,name
71917,江苏新日新能源车辆有限公司,江苏新日新能源车辆有限公司
71918,北京新泉志和汽车饰件系统有限公司,北京新泉志和汽车饰件系统有限公司
71919,芜湖新泉汽车饰件系统有限公司,芜湖新泉汽车饰件系统有限公司
71920,宁波新泉志和汽车饰件系统有限公司,宁波新泉志和汽车饰件系统有限公司
71921,宁波新泉汽车饰件系统有限公司,宁波新泉汽车饰件系统有限公司


二、关系
START_ID 和END_ID 表示边的起点和终点的ID,可以加上它们各自的id-group;

关系 director.csv

:START_ID,:END_ID,position
71927,16816,3
71928,16840,4
71929,16047,3
71930,16573,4
71931,16918,4

参考文献:如何将大规模数据导入Neo4j  https://blog.csdn.net/xingxiupaioxue/article/details/71747284

2、Cypher上导入数据暂时还没有过,后面用了再补充

二、Neo4j多库切换

因为Neo4j的import导入时,只能导入一个不存的db,这就在想创建多个库时,需要去切换,Neo4j默认的库是graph.db,在./conf/neo4j.conf可以修改

#*****************************************************************
# Neo4j configuration
#
# For more details and a complete list of settings, please see
# https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/
#*****************************************************************

# The name of the database to mount
#dbms.active_database=graph.db

切换多个库的方法,将新库重新连接到默认库graph.db,然后重启Neo4j 

//软连接
>>>cd ./data/databases/
>>>ln -s graph_kg.db graph.db

//重启neo4j
>>>cd $NEO4j_HOME/bin
>>>./neo4j restart

// 删除软连接
>>>ln-s test_chk  test_chk_ln
>>>rm -rf  ./test_chk_ln

参考文献:neo4j 3.0多数库切换  https://blog.csdn.net/programmer_at/article/details/69570987

三、Neo4j单机多实例创建

目前试了一种方法,修改端口号和wraper,但好像结果不行,无法创建,后面再尝试其他方法。

猜你喜欢

转载自blog.csdn.net/ai_1046067944/article/details/85342494