我正在使用DSE图从excel加载数据并通过java代码准备addE gremlin查询,最后通过DSE图执行它们。
在当前的测试中,需要使用两个边缘标签激发4,00,000个addE gremlin查询。
1)在几分钟内完成此执行的最佳做法是什么? 现在我将1000批次的gremlin查询给dseSession.executeGraph(新的SimpleGraphStatement("")),导致异常方法代码太大!在groovyjarjarasm.asm.MethodWriter
2)对于此用例中的边标签,我的模式定义为单基数。 还使用自定义顶点id作为顶点。 因此,如果边缘已经存在,那么DSE应该忽略它而没有任何异常吗?
答案 0 :(得分:1)
查询参数应该是一个如下所示的简单数组:
[[from1, to1, label1], [from2, to2, label2], ...]
然后你的脚本应该是这样的:
for (def triple in arg) {
def (id1, id2, lbl) = triple
def v1 = graph.vertices(id1).next()
def v2 = graph.vertices(id2).next()
if (!g.V(v1).outE(lbl).filter(inV().is(v2)).hasNext()) {
v1.addEdge(lbl, v2)
}
}
可替换地:
for (def triple in arg) {
def (id1, id2, lbl) = triple
def v1 = graph.vertices(id1).next()
if (!g.V(v1).outE(lbl).filter(inV().hasId(id2)).hasNext()) {
v1.addEdge(lbl, graph.vertices(id2).next())
}
}
尝试两种变体;其中至少有一个应该胜过任何其他解决方案。