首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Neo4j批量插入

用Neo4j批量插入
EN

Stack Overflow用户
提问于 2012-12-11 16:13:42
回答 2查看 2.5K关注 0票数 5

我从一个表中导入了23亿个关系,导入速度不是很快,达到每小时500万次,需要20天才能完成迁移。我听说过neo4j批处理插入和批插入实用程序。这个实用工具通过从csv文件中导入来做一些有趣的事情,但是最新的代码是如何破坏和不运行的。

我在neo4j有大约1亿的关系,我必须检查一下,没有重复的关系。

如何在neo4j中快速处理

按当前代码是类似的

代码语言:javascript
复制
begin transaction
for 50K relationships
create or get user node for user A
create or get user node for user B
check there is relationship KNOW between A to B if not create the relationhsip
end transaction

我亦曾阅读以下资料:

EN

回答 2

Stack Overflow用户

发布于 2012-12-12 09:36:52

在关系的情况下,如果您有足够的存储空间,我就不会在导入阶段建立唯一的关系--现在我实际上也在导入一个包含大约300万条记录的SQL表,但是我总是创建一个关系,并且不介意它是否是复制的。

在导入之后,您可以简单地执行一个密码查询,这个查询将显示如下所示的唯一关系:

代码语言:javascript
复制
START n=node(*) MATCH n-[:KNOW]-m
CREATE UNIQUE n-[:KNOW2]-m;

代码语言:javascript
复制
START r=rel(*) where type(r)='KNOW' delete r;

至少现在这是我的方法,运行后面的密码查询只需几分钟。问题可能是当您有大量节点时,密码查询可能会陷入内存错误(取决于您为neo4j引擎设置了多少缓存)。

票数 3
EN

Stack Overflow用户

发布于 2012-12-11 20:27:52

如何从索引中查找“为用户A获取用户节点”?索引查找确实会减缓批处理插入速度。尝试在索引的“前面”一个简单的HashMap中缓存尽可能大一部分用户,或者使用BatchInserterIndex#setCacheCapacity

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13823988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档