neo4j图数据库,如何利用apoc插件导出csv兼容数据?
发布于 作者:苏南大叔 来源:程序如此灵动~neo4j
图数据库,一般需要配置一个十分强大的apoc
插件,可以为neo4j
增加非常多的实用功能。在本文中,将会来探讨apoc
插件导出csv
数据的可能性,这些导出的csv
数据经过微调,又可以作为neo4j-admin import
的输入项目。这些就是本文要探讨的主要内容。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文试图通过apoc
插件导出csv
数据,同时在通过neo4j-admin import
导入这些数据。本文测试环境:win10
,neo4j社区版@4.4.3
,apoc@4.4.0
。
前置内容
本文有两篇前置内容:
第一篇是如何通过neo4j-admin
导入csv
数据:
另外一篇,是如何安装启用apoc
插件:
apoc
插件导出数据的文档说明地址:
apoc
插件如果想要顺利导入导出数据,需要配置neo4j.conf
文件。配置项目如下:
apoc.import.file.use_neo4j_config=true
apoc.export.file.enabled=true
apoc.import.file.enabled=true
默认导入导出的文件,存放在<neo4j home>/import/
目录下面。
导出一个大文件
下面的代码可以导出一个csv
文件,是neo4j
数据库内的所有数据,包括结点和关系等。
数据都堆在一个数据表里面,基本上没有啥实际的价值,因为把所有的数据都堆一起了,字段堆在一起,数据也是。结点和关系都混到了一起。实在想不出,这种结构有啥使用价值。
CALL apoc.export.csv.all(
'a.csv',
{
quotes:'none',
useTypes:true
}
)
导出多个文件
这个代码就比较强大了,主要的参数就是bulkImport:true
,设置它之后,导出的数据,就按照nodes
和relationships
分开了。
nodes
根据标签的不同,分为多个文件。relationships
按照类型不同,分为多个文件。
CALL apoc.export.csv.all(
"a.csv",
{
quotes:'none',
useTypes:true,
bulkImport:true
}
)
输入输出对比
在导入的时候,苏南大叔的输入是两个文件,分别是:nodes.csv
和relationships.csv
。参考链接:
现在同样的数据导出后,变成了N
个文件。nodes(*).csv
和relationship(*).csv
。
经过文件对比,苏南大叔发现:导出的csv
字段名有多余的,必要的字段名有被改名的。虽然整体上来说,数据是差不多合适的。但是,还需要进行细微的调整,才能被再次导入利用。
如果把这些分开的nodes(*).csv
和relationships(*).csv
,再次导入的话,需要重复设置--nodes
和--relationships
参数(据文档记载)。例如:
neo4j-admin import --database=neo4j --nodes=import/nodes1.csv --nodes=import/nodes2.csv --relationships=import/relationship1.csv --relationships=import/relationship2.csv --force
参考文献
- https://newsn.net/say/neo4j-import-csv.html
- https://neo4j.com/labs/apoc/4.4/overview/apoc.export/apoc.export.csv.all/
综述
通过csv
文件为媒介,就打开了neo4j
和其它程序进行数据交换的门槛。更多neo4j
的经验文章,请点击苏南大叔的博客文章:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。