使用Gremlin GraphFactory连接到AWS Neptune

时间:2019-01-09 14:21:20

标签: java amazon-web-services gremlin tinkerpop3 amazon-neptune

AWS documentation上的示例显示如何使用Gremlin连接到AWS Neptune,如下所示:

Cluster.Builder builder = Cluster.build();
builder.addContactPoint("your-neptune-endpoint");
builder.port(8182);
builder.enableSsl(true);
builder.keyCertChainFile("SFSRootCAG2.pem");

Cluster cluster = builder.create();

GraphTraversalSource g = EmptyGraph.instance().traversal().withRemote(DriverRemoteConnection.using(cluster));

但是,我当前连接到通用Gremlin图的代码如下:

Configuration conf = new PropertiesConfiguration(...);
...    //Set configuration
Graph graph = GraphFactory.open(conf);

有人知道如何将第二种方法与GraphFactory一起使用以连接到Neptune吗?我在任何地方都找不到任何示例。

1 个答案:

答案 0 :(得分:2)

Neptune不提供Graph实例,因为Gremlin是在本地而不是远程执行的。 GraphFactory实际上仅适用于您拥有要创建的Graph实例的情况。曾经有一个RemoteGraph允许这样做(尽管在TinkerPop测试套件中仍然使用),但是这种方法早就被放弃了,不再推荐使用。

您最初介绍的用于连接到Neptune之类的远程Gremlin Provider的方法是建立GraphTraversalSource的推荐方法。但是,值得注意的是,从3.3.5版本开始,首选方法摆脱了EmptyGraph,并允许您匿名实例化GraphTraversalSource,如下所示:

import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;

GraphTraversalSource g = traversal().withRemote('conf/remote-graph.properties');

withRemote()的其他重载也应该看起来很熟悉。