使用pythongremlin

时间:2018-04-17 12:17:44

标签: python gremlin amazon-neptune

我正在使用gremlinpython版本3.3.2和AWS NEPTUNE 我尝试丢弃所有边缘(也尝试了顶点)并且每次都失败。
g.E().drop().iterate()
给我:

  

gremlin_python.driver.protocol.GremlinServerError:597:异常   根据请求处理脚本[RequestMessage {,   requestId = ae49cbb7-e034-4e56-ac76-b62310f753c2,op ='bytecode',   processor ='traversal',args = {gremlin = [[],[V(),drop()]],   别名= {G =克}}}]。

有没有人已成功删除AWS Neptune中图表的所有顶点/边缘?

编辑: 删除特定ID有效:
g.E(id).drop().iterate()

EDIT2:
这是使用gremlin控制台完成的回溯:

  

的gremlin> g.E()。count()。next()

     

==> 740839个
  的gremlin> g.E()。滴()。迭代()
  在评估[RequestMessage {,requestId = 24c3d14c-c8be-4ed9-a297-3fd2b38ace9a,op ='eval',>期间,脚本内发生超时。 processor ='',args = {gremlin = g.E()。drop()。iterate(),bindings = {},batchSize = 64}}] - 考虑增加超时
  输入':help'或':h'获取帮助   显示堆栈跟踪? [YN - ] Y
  org.apache.tinkerpop.gremlin.jsr223.console.RemoteException:在评估[RequestMessage {,>期间]脚本内发生超时requestId = 24c3d14c-c8be-4ed9-a297-3fd2b38ace9a,op ='eval',processor ='',args = {gremlin = g.E()。drop()。iterate(),bindings = {},> batchSize = 64}}] - 考虑增加超时
    在org.apache.tinkerpop.gremlin.console.jsr223.DriverRemoteAcceptor.submit(DriverRemoteAcceptor.java:178)
    在org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:99)
    在org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:122)
    在org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:95)
    在org.codehaus.groovy.tools.shell.InteractiveShellRunner.super $ 2 $ work(InteractiveShellRunner.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    在java.lang.reflect.Method.invoke(Method.java:498)
    在org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
    在groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    在groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
    在org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:145)
    在org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:165)
    在org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:130)
    在org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:59)
    在org.codehaus.groovy.tools.shell.InteractiveShellRunner.super $ 2 $ run(InteractiveShellRunner.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    在java.lang.reflect.Method.invoke(Method.java:498)
    在org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
    在groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    在groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
    在org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:145)
    在org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:165)
    在org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:89)
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:236)
    在org.apache.tinkerpop.gremlin.console.Console。(Console.groovy:146)
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:236)
    在org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:453)
  的gremlin>

我会说这是一个超时问题,对吧?

1 个答案:

答案 0 :(得分:2)

好的,所以在与@stephen mallette进行一些交流后,在评论问题和AWS支持后,我终于找到了问题所在。 由于它仍然是一个预览,NEPTUNE仍然会遇到一些小问题,drop()就是一个 支持人员给出的解决方法是通过并行连接批量执行drop()

  

g.V()。limit(1000).drop()

因此,即使有5分钟超时和700.000边缘,丢弃表也会立即达到超时 我将在NEPTUNE的发布中更新这个答案。