将JanusGraph管理API连接到远程JanusGraph服务器

4
我有一个正在运行的JanusGraph Server实例,我可以使用EmptyGraph进行读写连接。但是我无法使用EmptyGraph创建JanusGraphManagement实例。我希望使用API来定义我的schema,但我能找到的唯一选项是:
  • 使用Cluster创建Client以提交命令字符串
  • 将嵌入式的JanusGraph实例直接连接到我的Cassandra后端
我更喜欢通过JanusGraph Server完成所有操作。是否有办法使用Java API实现这一点?或者我只能困在上述两种选项中吗?

可以通过以下方式获取JanusGraph - JanusGraphFactory.open("conf/janusgraph-cassandra.properties")。 - Ajay Srivastava
1
抱歉,我匆忙回复了。我猜你所描述的只有两个选项。嵌入式实例适用于创建模式,因为操作不太频繁,很可能只需要执行一次。 - Ajay Srivastava
你最终解决了这个问题吗? :) - Jarvis
1
@Jarvis,有一些在Java中实现的方法请参见我的示例,但应该避免使用。应该使用Client.SessionedClient来执行管理任务,而不是使用client.submit()。请参见我在这里回答的结尾部分。 - foxtrotuniform6969
@Jarvis 请查看我制作的gist - foxtrotuniform6969
显示剩余2条评论
1个回答

1
如 JanusGraph 的更新文档 这里 所述:

所描述的连接使用 GraphBinary 和 janusgraph-driver,它不允许访问内部 JanusGraph 组件,例如 ManagementSystem。要访问 ManagementSystem,必须提交基于 Java 的脚本,参见“提交脚本”,或者直接通过本地打开 JanusGraph 实例来访问 JanusGraph。

因此,目前没有其他选择。

1
添加一个Kotlin示例:// 获取会话,以便您可以使用管理实例并在服务器端保存变量 val cluster = Cluster.build("localhost").create() val session = cluster.connect() // 现在获取管理系统实例 client.submit("mgmt = ConfiguredGraphFactory.open('myGraph').openManagement()").all().get() // 之后您可以使用它: client.submit("// do stuff with mgmt").all().get() // 不要忘记关闭会话! session.close()请参见我的答案这里 - foxtrotuniform6969
1
更好的是,这里有一个要点 - foxtrotuniform6969

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接