我写了一个快速的 ruby 例程来加载一些非常大的 csv 数据。我对尝试使用 load_csv 所以恢复为 ruby 的各种内存不足问题感到沮丧。我对neo4j 比较陌生,所以尝试Neography 只是调用我创建为字符串的密码查询。
密码代码使用合并来添加 2 个现有节点之间的关系:
cmdstr=match (a:Provider {npi: xxx}),(b:Provider {npi:yyy}) merge (a)-[:REFERS_TO {qty: 1}]->(b);
@neo.execute_query(cmdstr)
我只是遍历运行这些文件中的行。它在大约 30000 行后失败,并出现套接字错误“无法分配请求的地址”。我相信 GC 在某种程度上引起了问题。然而,日志并没有告诉我任何事情。我尝试过以不同方式调整 GC,并尝试不同数量的堆。每次都在同一个地方失败。任何帮助表示赞赏。
[编辑] 更多信息 - 运行 netstat --inet 显示数千个到 localhost:7474 的连接。execute_query 是否没有按设计重用连接,还是这是一个问题?
我现在尝试了参数并且行为是相同的。您将如何使用批处理编码这种查询并确保您使用 npi 上的索引?