通过查看orientdb-gremlin库的Java源代码,我注意到它似乎只是一个包装,可以获取gremlin命令并将其转换为orientdb SQL查询。
我正在尝试在 javascript(NodeJs)中将gremlin与orientdb一起使用,为此,我正在使用df3 = (data.groupby([data.index.day.rename('day'), s])['b']
.describe()
.reset_index())
print (df3)
day a count mean std min 25% 50% \
0 12 1.4-0.6 1.0 0.267070 NaN 0.267070 0.267070 0.267070
1 12 1.6-0.8 2.0 0.770542 0.187616 0.637877 0.704210 0.770542
2 12 1.8-1.0 3.0 0.366001 0.058221 0.299172 0.346126 0.393081
75% max
0 0.267070 0.267070
1 0.836874 0.903206
2 0.399415 0.405750
js库。我可以很好地连接到gremlin服务器(我使用的是OrientDB 3.0.14附带的服务器),但是由于两个原因,我仍无法使事务正常运行:
1)gremlin
js库在Graph对象中没有tx()方法。
2)我想:“我可以在其中添加它,但是让我首先在gremlin控制台中查看OrientDB是否支持从gremlin服务器打开事务” 。因此,从gremlin控制台尝试似乎也不起作用(请记住,我不要使用gremlin
插件,就像在javascript中一样,我将无法使用它):
orientdb-gremlin
最后一条命令的结果为gremlin> :remote connect tinkerpop.server conf/remote-secure.yaml
gremlin> :> g.tx().open()
gremlin> :> g.tx().isOpen()
,因此没有打开的事务。
是否可以通过gremlin服务器跨越OrientDB 3.0.14事务?
答案 0 :(得分:1)
假设orientdb-gremlin
支持g.tx()
(实际上是{{1}调用的graph.tx()
-即g.tx()
实例需要支持它),那么您唯一的方法如果您将基于字符串的脚本提交给Gremlin Server并通过session提交,则使用javascript进行事务处理。我认为,这可能就是为什么您以无会话方式连接到服务器时没有看到Graph
返回isOpen()
的原因-您可以通过以下方式进行更改:
true
在here中进行了讨论。
实际上,不建议使用基于字符串的脚本与Gremlin Server进行交互。只用您的本机编程语言“编写Gremlin”而不是将Gremlin嵌入字符串中,这是更好的开发经验。如果可以并且不依赖于特定于图形的事务,我将重新考虑这种方法。它们使您的代码远远less portable。