知识图谱Neo4j 数据导入与数据库切换

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识图谱Neo4j 数据导入与数据库切换相关的知识,希望对你有一定的参考价值。

Neo4j 数据导入与数据库切换

1. 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--admin 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

2、Cypher上导入数据,使用Python操作Neo4j执行导入操作

2. 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
dbms.active_database=kg.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

Linux下的命令操作,记得备份graph.db

参考文献https://blog.csdn.net/ai_1046067944/article/details/85342494


加油!

感谢!

努力!

以上是关于知识图谱Neo4j 数据导入与数据库切换的主要内容,如果未能解决你的问题,请参考以下文章

知识图谱Neo4j基本操作及数据库文件导入(graph.db.dump)

知识图谱——Python操作Neo4j导入CSV文件建立图谱

MockNeo4j知识图谱数据集Mock问答训练数据集mock

快速导入大量数据到Neo4j实例实现.

快速导入大量数据到Neo4j实例实现.

快速导入大量数据到Neo4j实例实现.