我在 mysql 中有一个包含 60000 个项目的数据集,我正在尝试将其插入 neo4j。插入正在进行,但需要很长时间(大约每 3 秒 10-15 次)。有什么办法可以加快速度吗?还有什么办法我可以在neo4j中给出诸如唯一键之类的东西,这样重复索引就不会被索引?我是neo4j的新手。
我正在使用带有 PHP Everyman 驱动程序的 neo4j 1.8。
我在 mysql 中有一个包含 60000 个项目的数据集,我正在尝试将其插入 neo4j。插入正在进行,但需要很长时间(大约每 3 秒 10-15 次)。有什么办法可以加快速度吗?还有什么办法我可以在neo4j中给出诸如唯一键之类的东西,这样重复索引就不会被索引?我是neo4j的新手。
我正在使用带有 PHP Everyman 驱动程序的 neo4j 1.8。
如上所述,首选选项是批量导入器。
如果您需要通过 PHP 客户端,这里我举了一个使用 REST 批处理 api 的示例:http: //phpfiddle.org/main/code/mu3-sgk
您可以测试最适合您的系统的行/批次。对于我的笔记本电脑,它是 750,对于我的测试服务器,它是 1250。发生的 json_decode 在 CPU 上很重。
Max De Marzi 有一个很好的介绍,关于 ETL 到 Neo4j。
见:http ://www.slideshare.net/maxdemarzi/etl-into-neo4j
这取决于您要使用哪种语言,通过 jruby 嵌入的 java 和通过 ruby、php、python 远程嵌入的许多选项。
您可能希望在适当大小的交易中批量处理您的请求(例如,每笔交易 10k 个项目)。
可以使用我的批处理导入器或通过Neo4j 服务器的BATCH REST API将 CSV 文件直接导入数据库文件。