Neo4j 加载csv合并性能

Neo4j 加载csv合并性能,neo4j,load-csv,Neo4j,Load Csv,我在neo4j中大容量插入时遇到性能问题 我有一个40万行的csv文件,它产生了大约350万行,我使用LOAD csv命令,最新版本在neo4j上 我注意到,当我创建用户语句时,加载大约需要4分钟,而没有索引,大约需要3.5分钟 我的第一个问题是,这是否是节点/分钟的正常速率 现在,我真正的问题是,出于数据完整性的原因,我需要使用merge,而当我使用它时,它甚至可能需要24小时以及索引 因此,另外两个问题是: 是最佳性能负载的建议负载CSV 而且: 对于此性能问题,我可以做些什么 编辑: 以下

我在neo4j中大容量插入时遇到性能问题

我有一个40万行的csv文件,它产生了大约350万行,我使用LOAD csv命令,最新版本在neo4j上

我注意到,当我创建用户语句时,加载大约需要4分钟,而没有索引,大约需要3.5分钟

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

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

因此,另外两个问题是:

是最佳性能负载的建议负载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

会话、用户、会话2、国家/地区、电视、传输协议和操作系统具有唯一约束,hit具有索引

**session1和session2可以有很多命中率(1到100,平均5次) 每个csv行的点击键guid不同

它的运行速度非常慢-相当强大的机器,每1000行最多需要10秒

还使用探查器进行了检查,没有“”

谢谢


Lior

您应该共享数据模型、索引、加载CSV查询以及概要文件输出。您是否使用定期提交

确保您不会遇到急切的问题,请参见此处:


一般来说,对于数据集,您的大小加载CSV是可以的,从10M行开始,我可能会切换到。

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