py2neo - Neo4j - 系统错误 - 创建批次节点/关系

时间:2013-07-27 21:44:59

标签: python neo4j py2neo

尝试批量创建节点&关系 - 批量创建失败 - 帖子末尾的回溯

注意具有较小节点子集的代码函数 - 在遇到大量关系时失败,不清楚这种情况发生了什么限制。

  • 想知道我是否需要增加超过40,000个打开文件的ulimit
  • 在进行批量创建的同时阅读人们在使用REST API遇到Xstream问题的地方 - 不清楚问题集是在频谱的py2neo末端,还是在Neo4j服务器调整/配置上,或者在Python的末端光谱。 任何指导都将不胜感激。

数据集中的一个群集最终在700多个节点中拥有大约625525个关系。 总关系将是1M + - 利用带有x86_64的Apple Macbook Pro Retina - Ubuntu 13.04,SSD,8GB内存。

  • Neo4j:配置auto_indexing& auto_relationships设置为ON
  • 通过Python Panadas DataFrame.groupby()
  • 群集/分组的节点
  • 节点:包含3个属性
  • 关系属性:1 - > IN&创建了关系
  • ulimit设置为打开40,000个文件

代码

https://github.com/alienone/OSINT/blob/master/MANDIANTAPT/spitball.py

  • 操作系统:Ubuntu 13.04
  • Python版本:2.7.5
  • py2neo版本:1.5.1
  • Java版本:1.7.0_25-b15
  • Neo4j版本:Community Edition 1.9.2

追溯

  

追踪(最近一次通话):     文件“/home/alienone/Programming/Python/OSINT/MANDIANTAPT/spitball.py”,第63行,       主要()     文件“/home/alienone/Programming/Python/OSINT/MANDIANTAPT/spitball.py”,第59行,主要       graph_db.create(* sorted_nodes)     在创建文件“/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/neo4j.py”,第420行       return batch.submit()     提交“/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/neo4j.py”,第2123行,提交       用于self._submit()中的响应     在提交文件“/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/neo4j.py”,第2092行       对于id ,请求枚举(self.requests)     在_send中输入文件“/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/rest.py”,第428行       return self._client()。send(request)     文件“/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/rest.py”,第365行,发送       return Response(request.graph_db,rs.status,request.uri,rs.getheader(“Location”,None),rs_body)     在 init 中输入文件“/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/rest.py”,第279行       引发SystemError(正文)   SystemError:无

使用退出代码1完成处理

1 个答案:

答案 0 :(得分:1)

我有类似的问题。处理它的一种方法是为数据块而不是整个数据集执行batch.submit()。当然这速度较慢,但​​是以5000块为单位拆分一百万个节点仍然比单独添加每个节点更快。

我使用一个小帮助器类来执行此操作,请注意我的所有节点都已建立索引:https://gist.github.com/anonymous/6293739