【问题标题】:Load csv merge performance加载 csv 合并性能
【发布时间】:2015-05-22 21:44:57
【问题描述】:

我在将批量插入到 neo4j 时遇到性能问题。

我有一个包含 400k 行的 csv 文件,它产生大约 350 万行,我使用 LOAD CSV 命令,最新版本在 neo4j 上。

我注意到,当我使用 Create 语句时,加载大约需要 4 分钟,而根本没有索引 - 大约 3.5 分钟。

我的第一个问题是,这是否是节点/分钟的正常速率。

现在,我真正的问题是,出于数据完整性的原因,我需要使用合并,而当我使用它时,甚至可能需要 24 小时,连同索引。

所以另外两个问题是:

是否推荐 LOAD CSV 以获得最佳性能负载,

还有: 对于这个性能问题我能做些什么?

编辑:

这里是查询:

 LOAD CSV WITH HEADERS FROM 'file:///import.csv' AS line FIELDTERMINATOR '|' 
 MERGE (session :Session { session:line.session })  
 MERGE (hit :Hit { key:line.key,date_time:line.date_time,session:line.session })  
 MERGE (user :User { id:line.user_id })   
 MERGE (session2 :Session2 { session2:line.session2 })  
 MERGE (country :Country{ name:line.country})   
 MERGE (tv :TV { name:tv.Model })  
 MERGE (transfer_protocol :Protocol { name:line.transfer_protocol })  
 MERGE (os :OS { name:line.os_name ,version:line.os_version, row_key:line.os_name+line.os_version}) 

示例:session_guid|hit_key_guid|useridguid|session2_guid|PANASONIC|TCP|ANDROID|5.0

session,user,session2,country,tv,transfer_protocol 和 os 有唯一约束,hit 有索引

**session1 和 session2 可以有很多点击(1 到 100,平均 5) 每个 csv 行的 hit_key_guid 都不同

它的运行速度真的很慢——相当强大的机器,每 1000 行可能需要长达 10 秒。

还用分析器检查过,没有“Eager”

谢谢

里尔

【问题讨论】:

    标签: neo4j load-csv


    【解决方案1】:

    您应该共享您的数据模型、索引、LOAD CSV 查询以及配置文件输出。你在使用 PERIODIC 提交吗?

    确保您没有遇到 Eager 问题,请参见此处:

    http://neo4j.com/developer/guide-import-csv/#_load_csv_for_medium_sized_datasets http://www.markhneedham.com/blog/2014/10/23/neo4j-cypher-avoiding-the-eager/

    一般而言,对于数据集,您的 LOAD CSV 大小是可以的,从 10M 行我可能会切换到 import-tool。

    【讨论】:

      【解决方案2】:

      似乎服务器端代码没有正确创建索引,一旦创建索引,负载就以良好的性能完成

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-16
        相关资源
        最近更新 更多