Tinkerpop3连接到远程TitanDB服务器

spa*_*pam 7 java gremlin titan tinkerpop-blueprint tinkerpop3

我正在尝试使用Java中的Tinkerpop3作为客户端从已经运行的TitanDB服务器获取Graph对象(我不想创建服务器).

换句话说,我正在尝试实现这样的功能:public Graph obtainGraph(String serverIp,String graphName);

我试图像这样做: AWS Lambda + Tinkerpop/Gremlin + TitanDB on EC2 + AWS DynamoDB in cloud

但据我了解,TitanFactory.open()启动服务器,我不想这样做 - 我只想连接到现有的服务器.

文档以及Internet中的大多数材料使用内存中的图表作为示例,我找不到一个,它显示了如何:

  • 创建新图并将其保存在远程服务器上

  • 从远程服务器检索现有图

  • 更新这样的远程Graph,所以在添加/删除边缘后提交更改

  • 删除整个图表

我不想通过Gremlin语言(字符串)来做上述事情,而是通过Java API(TinkerpopBlueprins).这个人正在接近我需要的东西: 在Java中将顶点添加到TitanDB Graph 但是,他的方法已经将Graph作为参数.

我在Internet的很多地方都看到过,GraphFactory.open()获取了属性文件的路径,但是我还没有看到这种文件内容的例子,尤其是TitanDB的相关数据,所以我更喜欢使用Configuration对象.

图形图形= GraphFactory.open(new BaseConfiguration())

说,没有gremlin.graph属性.

配置配置= new BaseConfiguration(); configuration.setProperty("gremlin.graph","titan");

图形图形= GraphFactory.open(配置);

说GraphFactory无法找到[titan] - 确保jar在类路径中

是否有任何静态类型的构建器,其中包含枚举和常量,而不是Map,它将告诉我,我必须提供哪些属性以及它们的类型是什么?是否有任何开源项目,使用Tinkerpop3作为客户端连接到远程TitanDB服务器,我可以用作例子吗?

我希望看到完整的工作示例,而不是内存与外部配置.

Jas*_*rad 7

以下是连接到正在运行的Titan Server的Titan驱动程序示例.https://github.com/pluradj/titan-tp3-driver-example正如您所知,这会将Gremlin作为字符串传递给远程Titan Server.

如果您不想这样做,因为您想直接使用Java API,则应该使用TitanFactory.open()直接连接到图形.TitanFactory.open()创建一个TitanGraph实例,您可以执行图形API调用.它没有启动Titan Server.在幕后,它创建了与后端存储和索引的客户端连接.

您可以参考此示例以获取没有Titan Server的Titan Java程序https://github.com/pluradj/titan-tp3-java-example

您可以使用属性文件(这是使用Cassandra和Elasticsearch 的示例配置)或Configuration通过代码构造对象(基本上设置属性文件中的相同键值对)来配置它.

  • 如果在初始连接之前图形不存在,Titan将在Cassandra中创建图形键空间并在Elasticsearch中创建索引.

  • 记下这些storage.hostname,index.search.hostname因为它们分别是你的Cassandra和Elasticsearch集群.这些基本上就是你的"图形服务器".您不需要运行单独的Titan Server.

  • Titan没有任何API可以从后端存储中删除图表.要删除整个图形,您需要通过Java客户端驱动程序连接到Cassandra ,并执行API以删除键空间.同样,您需要通过其Indices API连接到Elasticsearch ,并删除索引.