Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从mysql加速neo4j的插入?_Mysql_Nosql_Neo4j_Graph Databases - Fatal编程技术网

如何从mysql加速neo4j的插入?

如何从mysql加速neo4j的插入?,mysql,nosql,neo4j,graph-databases,Mysql,Nosql,Neo4j,Graph Databases,我在mysql中有一个60000个项目的数据集,我正试图将它插入neo4j。插入正在进行,但需要很长时间(大约每3秒10-15次)。有什么办法可以加快速度吗?还有什么方法可以在neo4j中提供一些东西,比如unique key,这样重复索引就不会被索引了吗?我是neo4j的新手 我正在将neo4j 1.8与PHP Everyman驱动程序一起使用。Max De Marzi做了一个很好的演示,介绍了如何将ETL转换为neo4j 见: 这取决于您想要使用哪种语言,从java到jruby嵌入,再到ru

我在mysql中有一个60000个项目的数据集,我正试图将它插入neo4j。插入正在进行,但需要很长时间(大约每3秒10-15次)。有什么办法可以加快速度吗?还有什么方法可以在neo4j中提供一些东西,比如unique key,这样重复索引就不会被索引了吗?我是neo4j的新手


我正在将neo4j 1.8与PHP Everyman驱动程序一起使用。

Max De Marzi做了一个很好的演示,介绍了如何将ETL转换为neo4j

见:

这取决于您想要使用哪种语言,从java到jruby嵌入,再到ruby、php、python远程嵌入,都有很多选项

您可能希望在适当大小的事务中批处理您的请求(例如,每发送10000个项目)


可以使用my或通过Neo4j服务器的直接将CSV文件导入数据库文件。

如上所述,首选的选项是批量导入器

如果您需要查看PHP客户端,这里我提供了一个使用REST批处理api的示例:

您可以测试行/批处理哪些最适合您的系统。 我的笔记本电脑是750,测试服务器是1250。
发生的json_解码对CPU来说是一个沉重的负担。

您能更具体地说明这个操作吗?据我所知,你不能只在MySQL文件中解析Neo4j;这意味着,您必须首先从MySQL中提取数据,然后将其存储在Neo4j中;其次,性能取决于这两个步骤。您使用BatchInserter吗?数据是使用select查询从mysql中提取的,我没有为此使用BatchInserter。由于我对这一点还不熟悉,我将遵循jadell()的示例。有更好的方法吗?您提到的php代码对每个节点的创建和属性设置都执行一个http操作,这至少应该是rest批处理的,最好使用cypher(也是rest批处理的),或者使用导入工具完成。您给我举了一个例子,在php中将数据从mysql传输到neo4j?这对我真的很有帮助。Neo4j在插入过程中总是很慢。通过批量插入,我最多可以达到每秒100个节点。有没有办法插入,我有大约2M个节点要从我的MySQL数据库中创建,然后将它们关联起来。这似乎与neo4j没有直接关系。我从来没有这么慢的插入时间,我做了很多psql->neo4j导入。我猜您是在移动中从mysql查询数据-尝试首先查询数据并将其插入graphML或geoff xml格式。然后简单地使用一些内置函数,比如gremlins g.loadGraphML('mysqlexport.xml')-neo可以每秒导入多达1M个节点:)使用类似于上述批插入器的东西,它只需要csv文件,即使使用php,您也可以轻松地从mysql生成这些文件。