Csv 如何在neo4j中加速大数据导入
我正在使用neo4j导入命令行将大型csv文件加载到neo4j中。我已经用数据子集测试了命令行,它运行得很好。csv文件的大小约为200G,包含~10M个节点和~B个关系。目前,我使用的是默认的neo4j配置,创建节点需要几个小时,而它却被困在Csv 如何在neo4j中加速大数据导入,csv,import,neo4j,graph-databases,Csv,Import,Neo4j,Graph Databases,我正在使用neo4j导入命令行将大型csv文件加载到neo4j中。我已经用数据子集测试了命令行,它运行得很好。csv文件的大小约为200G,包含~10M个节点和~B个关系。目前,我使用的是默认的neo4j配置,创建节点需要几个小时,而它却被困在[*排序:20.89 GB-----------------------------------------------------------------------------]0我担心创建关系会花费更长的时间。因此,我想知道加速数据导入的可能方法 这
[*排序:20.89 GB-----------------------------------------------------------------------------]0
我担心创建关系会花费更长的时间。因此,我想知道加速数据导入的可能方法
可用机器内存:166.94 MB最大堆内存:3.48 GB
我是否应该更改neo4j配置以增加内存?会有帮助吗更新:
top
命令,它显示JAVA进程正在使用85%的RAM,我认为这属于neo4j import命令neo4j导入--into/var/lib/neo4j/data/graph.db/--节点:Post Posts_Header.csv,Posts.csv--节点:User User User_Header.csv,likes.csv--关系:likes likes_Header.csv,likes.csv--跳过重复节点true--错误容差100000000--处理器8
Post\u ID:ID(Post),Message:string,Created\u Time:string,Num\u Shares:int,e:IGNORE,f:IGNORE
User\u Header:a:IGNORE,User\u Name:string,User\u ID:ID(User)
喜欢\u Header:
我运行了示例数据导入,速度非常快,大约几秒钟。由于我使用默认的neo4j堆设置和默认的Java内存设置,配置这些数字是否会有所帮助 一些问题:
- 您有什么类型的磁盘(最好是SSD)李>
- 看起来所有的RAM都已经用光了,请与top或ps一起检查其他进程是否使用了内存并将其杀死
- 您可以共享完整的neo4j导入命令吗李>
- CSV和标题行的示例是什么样的李>
head-100000 file.csv>file100k.csv
通常,它可以使用高速磁盘以每秒1M的速度导入记录。
这包括节点、属性和关系记录。嘿,迈克尔,谢谢你的回答。请查看更新。导入10M节点最多需要几分钟。能否给出csv文件中
:ID
字段中的值的一些示例?当线程到达停止点时,您还可以抓取线程转储吗?提前感谢。我已经修复了问题,按照在上的建议,我们有完全相同的问题,因为我们重复使用具有不同标题的相同csv文件。Neo4j import在尝试对节点进行排序和重复数据消除的阶段遇到了问题。我建议您可以在文档中指出此问题。您可以指定,如果您将同一文件用于具有不同头的节点和关系,请注意导入程序需要重复数据消除重复ID(这可能需要时间)。您所说的重复ID是什么意思“如果将同一个文件重新用于具有不同标题的节点和关系”?我面临相同的问题,但我在每个文件中都有标题(不是单独的),每个文件包含不同的标签,但也卡在排序部分。