Ruby 使用Neography将批量数据加载到neo4j中会导致连接错误

Ruby 使用Neography将批量数据加载到neo4j中会导致连接错误,ruby,neo4j,neography,Ruby,Neo4j,Neography,我正试图用一个简单的ruby脚本和Neography将大量数据(可能在1-2G左右)读入neo4j。我的代码主要由许多create_node和create_relationship方法组成 它似乎工作得很好,但在创建了大约5000个方法之后,我出现了一个错误: /home/earlz/.gem/ruby/2.1.0/gems/excon-0.44.3/lib/excon/socket.rb:127:in `connect_nonblock': Cannot assign requested ad

我正试图用一个简单的ruby脚本和Neography将大量数据(可能在1-2G左右)读入neo4j。我的代码主要由许多create_node和create_relationship方法组成

它似乎工作得很好,但在创建了大约5000个方法之后,我出现了一个错误:

/home/earlz/.gem/ruby/2.1.0/gems/excon-0.44.3/lib/excon/socket.rb:127:in `connect_nonblock': Cannot assign requested address - connect(2) for 127.0.0.1:7474 (Errno::EADDRNOTAVAIL) (Excon::Errors::SocketError)

我该如何解决这个问题?我已经尝试增加HTTP超时等,但这没有任何帮助。

您的脚本似乎打开了太多的连接,无法从中选择临时端口。试试这个:

echo "32768 61000" >/proc/sys/net/ipv4/ip_local_port_range

您可能还想查看neo4api()有趣的@BrianUnderwood。。这样也可以在不耗尽内存的情况下处理非常大的数据。。我的最终目标数据集可能在50Gy左右。您需要以某种方式从源数据加载数据,以避免使用太多内存(比如一次加载一个文件或一个链接/块,或者使用ActiveRecord的
批量查找
从数据库获取数据),但是Neo4API接受您提供的内容,并根据设置的
batch_size
批量执行
MERGE
命令。它将命令发送到Neo4j批处理语句端点