Csv 如何在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我担心创建关系会花费更长的时间。因此,我想知道加速数据导入的可能方法 这

我正在使用neo4j导入命令行将大型csv文件加载到neo4j中。我已经用数据子集测试了命令行,它运行得很好。csv文件的大小约为200G,包含~10M个节点和~B个关系。目前,我使用的是默认的neo4j配置,创建节点需要几个小时,而它却被困在
[*排序:20.89 GB-----------------------------------------------------------------------------]0
我担心创建关系会花费更长的时间。因此,我想知道加速数据导入的可能方法

  • 这是一台16GB的机器,neo4j导入输出消息显示如下内容。
    可用机器内存:166.94 MB最大堆内存:3.48 GB
    我是否应该更改neo4j配置以增加内存?会有帮助吗

  • 我正在设置neo4j导入——进程=8。然而,JAVA命令的CPU使用率只有约1%。看起来对吗

  • 考虑到我的数据集的大小,有人能给我一个大概的加载时间吗?它是一台8核、16GB内存的独立机器

  • 我还需要看些什么来加速数据导入


  • 更新:

  • 机器没有SSD磁盘

  • 我运行
    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

  • 4.Posts\u Header
    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是什么意思“如果将同一个文件重新用于具有不同标题的节点和关系”?我面临相同的问题,但我在每个文件中都有标题(不是单独的),每个文件包含不同的标签,但也卡在排序部分。