从postgres到Neo4j的数据导入在Talend中花费了大量时间

从postgres到Neo4j的数据导入在Talend中花费了大量时间,neo4j,etl,talend,Neo4j,Etl,Talend,我是Talend的新手,我正在尝试设计一个数据流,将我的数据从postgres传输到neo4j。我正在使用“Talend open studio for big data”开源版本6.2.1 现在,我有一个初始设计,它获取用户和项目,将它们导入neo4j,然后创建“USER-[Has_Rated]->ITEM”关系。问题是插入用户和项目节点的速度异常缓慢!像每秒100个用户!我有大约300万用户。我使用的是现有的db连接,因此性能低下的根本原因来自其他地方。我启用了多线程选项,但这没有改变任何事

我是Talend的新手,我正在尝试设计一个数据流,将我的数据从postgres传输到neo4j。我正在使用“Talend open studio for big data”开源版本6.2.1

现在,我有一个初始设计,它获取用户和项目,将它们导入neo4j,然后创建“USER-[Has_Rated]->ITEM”关系。问题是插入用户和项目节点的速度异常缓慢!像每秒100个用户!我有大约300万用户。我使用的是现有的db连接,因此性能低下的根本原因来自其他地方。我启用了多线程选项,但这没有改变任何事情。我想并行执行可能是一个解决方案,但我找不到如何将其添加到我的设计中。 有人知道我该如何加快速度吗? 谢谢 丽娜


另外,我确信导出-导入过程可以更快地工作,因为我已经实现了一个示例代码(使用LOAD CSV),它在一分钟内插入了超过一百万个节点

性能瓶颈有时很难找到。。。只有在事先准备好批处理的情况下,并行执行才有帮助。为什么速度如此不同?另一个过程是做什么的?你在做任何类型的批处理,或者限制你正在创建的用户吗?您在neo4j中对标签的相关属性有约束吗?tobi6,并行执行是Enterprise edition的一部分,不是吗?另一个过程是我已经实现的java代码,我使用的是周期提交,这是一种批插入。我无法在talend中使用批插入,因为在talend中,neo4j的批插入仅在嵌入式模式下受支持,我使用的是独立的neo4j服务器:(@InverseFalcon否我没有在talend中使用任何批处理,因为独立的neo4j服务器不支持该批处理。否我对正在创建的用户没有任何限制。我在创建用户节点时创建索引。talend支持该批处理。例如@Lina,open studio edition中提供并行执行,请尝试添加更多备忘与作业的JVM相关。性能瓶颈有时很难找到…只有在事先准备好批处理的情况下,并行执行才有帮助。为什么速度如此不同?另一个过程做了什么?您是否正在进行任何类型的批处理,或限制您创建的用户?并且您是否在neo4j中对标签的相关属性?tobi6,并行执行是Enterprise edition的一部分,不是吗?另一个过程是我已经实现的java代码,我使用的是周期提交,这是一种批插入。我不能在talend中使用批插入,因为在talend中,neo4j的批插入仅支持嵌入式模式,我使用的是独立的neo4j服务器:(@InverseFalcon否我没有在talend中使用任何批处理,因为独立的neo4j服务器不支持该批处理。否我对正在创建的用户没有任何限制。我在创建用户节点时创建索引。talend支持该批处理。例如@Lina,open studio edition中提供并行执行,请尝试添加更多备忘向作业的JVM发送请求。