小编pla*_*d87的帖子

使用REST优化Neo4j中的大批量批量插入

我需要通过REST API的Batch端点将大量节点与它们之间的关系插入Neo4j,大约5k记录/秒(仍在增加).

这将是24x7的连续插入.每条记录可能只需要创建一个节点,但其他记录可能需要创建两个节点和一个关系.

我可以通过更改程序或修改Neo4j的设置来提高插入的性能吗?

我到目前为止的进展:

1.我一直在测试Neo4j,但是我无法获得所需的性能

测试服务器盒:24核+ 32GB RAM

Neo4j 2.0.0-M06作为独立服务安装.

在同一台服务器上运行我的Java应用程序.(Neo4j和Java应用程序将来需要在自己的服务器上运行,因此无法使用嵌入式模式)

REST API端点:/ db/data/batch(target:/ cypher)

使用模式索引,约束,MERGE,CREATE UNIQUE.

2.我的架构:

neo4j-sh (0)$ schema
==> Indexes
==>   ON :REPLY(created_at)   ONLINE                             
==>   ON :REPLY(ids)          ONLINE (for uniqueness constraint) 
==>   ON :REPOST(created_at) ONLINE                             
==>   ON :REPOST(ids)        ONLINE (for uniqueness constraint) 
==>   ON :Post(userId)      ONLINE                             
==>   ON :Post(postId)    ONLINE (for uniqueness constraint) 
==> 
==> Constraints
==>   ON (post:Post) ASSERT post.postId IS UNIQUE
==>   ON (repost:REPOST) ASSERT repost.ids IS UNIQUE
==>   ON (reply:REPLY) ASSERT reply.ids IS …
Run Code Online (Sandbox Code Playgroud)

java rest neo4j cypher batch-insert

4
推荐指数
1
解决办法
5016
查看次数

标签 统计

batch-insert ×1

cypher ×1

java ×1

neo4j ×1

rest ×1