gpt4 book ai didi

java - DSE 5.0 Graph with Java 真的需要 executeGraph() 吗?

转载 作者:行者123 更新时间:2023-11-30 06:50:35 26 4
gpt4 key购买 nike

似乎在这两种方法中都存储了顶点,以后可以正确检索。

常用配置:

DseCluster dseCluster = DseCluster.builder()
.addContactPoint("192.168.1.43")
.build();
DseSession dseSession = dseCluster.connect();
GraphTraversalSource g = DseGraph.traversal(
dseSession, new GraphOptions().setGraphName("graph")
);

方法一:

Vertex v = g.addV("User").property("uuid","testuuid231").next();

方法二:

GraphStatement graphStatement =  DseGraph.statementFromTraversal(
g.addV("User").property("uuid","testuuid231")
);
GraphResultSet grs = dseSession.executeGraph(graphStatement.setGraphName("graph"));
Vertex v = grs.one().asVertex() // as(Vertex.class) is not allowed after 1.1

最佳答案

看起来您正在使用 java-dse-graph , 是对的吗?这是一个相对较新的 API(仍处于测试阶段),它允许您在后台使用 DataStax Enterprise Java 驱动程序使用 Apache Tinkerpop 制作 Gremlin Traversals。

方法 1 的好处是你可以确定你正在为一个形成有效的遍历,尽管你也可以通过 statementFromTraversal 获得它(你也可以传递一个 StringGraphStatementexecuteGraph 中,此时您无法确定您正在执行有效的遍历)。此外,您可以编写与供应商无关的代码,因为您使用的是 Tinkerpop API 而不是 datastax 驱动程序。好吧,您仍在使用它,但一旦您从 DseSession 获得了 GraphTraversalSource,就不会直接使用它。

方法 2 有一些方法 1 所没有的好处(目前):

  1. 如果您熟悉 datastax 驱动程序,则可以使用许多您熟悉的相同 API(ResultSetStatement 等)。
  2. TinkerPop ( TINKERPOP-1490 ) 的异步 API 是最近添加的,我不确定它是否可以与 java-dse-graph 一起使用(还没有尝试过)。使用 statementFromTraversal,您可以将生成的 GraphStatement 传递给 DseSession.executeAsync 以执行异步操作。
  3. DSE Graph 有一个不属于 Gremlin 的架构 API。因此,您不能单独使用 TinkerPop 更改架构。 JAVA-1061将引入一个模式 API 来使用 java-dse-graph 执行此操作。在那之前,您将不得不使用 executeGraph(String|GraphStatement)
  4. 您可以使用方法 2 执行完整的 groovy/gremlin 代码。这允许您执行事务管理等操作并在一次调用中执行多个遍历,这是您目前无法使用方法 1 执行的操作。

我希望 java-dse-graph(方法 1)将来会成为与 DSE Graph 交互的更惯用的方式。 statementFromTraversal 提供了一种很好的方式来获得两全其美(Apache TinkerPop 的优势 + DataStax java 驱动程序的接口(interface))。

关于java - DSE 5.0 Graph with Java 真的需要 executeGraph() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41231912/

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