gpt4 book ai didi

java - Tinkerpop3 连接到远程 TitanDB 服务器

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:13 25 4
gpt4 key购买 nike

我正在尝试使用 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 上的大多数资料都使用内存中的图表作为示例,但我找不到一个说明如何:

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

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

  • 更新此类远程图,因此在添加/删除边后提交更改

  • 删除整个图

我不想通过 Gremlin 语言(字符串)来做上述事情,而是通过 Java API(TinkerpopBlueprins)。这家伙越来越接近我需要的东西了: Add vertices to TitanDB Graph in Java然而,他的方法已经将 Graph 作为参数。

我在 Internet 的很多地方都看到 GraphFactory.open() 获取属性文件的路径,但是我还没有看到此类文件内容的示例,尤其是与 TitanDB 相关的数据,所以我更愿意使用 Configuration对象。

Graph graph = GraphFactory.open(new BaseConfiguration())

说,没有 gremlin.graph 属性。

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

Graph graph = GraphFactory.open(configuration);

GraphFactory 找不到 [titan] - 确保 jar 在类路径中

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

我希望看到完整的工作示例,而不是在内存中使用外部配置。

最佳答案

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

如果你不想这样做,因为你想直接使用 Java API,你应该使用 TitanFactory.open()直接连接到您的图表。 TitanFactory.open() 创建一个 TitanGraph您可以对其执行图形 API 调用的实例。 它不会启动 Titan 服务器。在幕后,它会创建到后端存储和索引的客户端连接。

没有Titan Server的Titan Java程序可以引用这个例子https://github.com/pluradj/titan-tp3-java-example

您可以使用属性文件(这里是使用 Cassandra 和 Elasticsearch 的 example configuration)或通过构建 Configuration 来配置它通过代码对象(基本上设置与属性文件中相同的键值对)。

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

  • 记下 storage.hostnameindex.search.hostname,因为它们分别是您的 Cassandra 和 Elasticsearch 集群。 这些本质上是您的“图形服务器”。您不需要运行单独的 Titan 服务器。

  • Titan 没有任何 API 可以从后端存储中删除图形。要删除整个图表,您需要通过 Java client driver 连接到 Cassandra。 ,并执行 API 以删除 key 空间。同样,您需要通过其 Indices API 连接到 Elasticsearch , 并删除索引。

关于java - Tinkerpop3 连接到远程 TitanDB 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38747193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com