Подключение для создания Janusgraph из Java для удаленного обхода - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь подключиться к удаленному серверу compose-janusgraph, чтобы создать график и добавить вершины.Обратите внимание, что у меня нет доступа к настройкам сервера или возможности изменять настройки сервера.

Я могу сделать это через локальную консоль gremlin с

:remote connect tinkerpop.server conf/compose.yaml session
:remote console
graph=ConfiguredGraphFactory.create("mygraph")
graph=ConfiguredGraphFactory.open("mygraph")
g.addV("pat")
g.tx().commit()

Я хочу сделать то же самое с клиентом Java, использующим GraphTraversalSource.С Java я могу использовать опцию Cluser-> Client-> submit для успешной отправки Groovy-строк.Но у меня не получилось с GraphTraversalSource, я получил множество ошибок.

conf / compose.yaml, который я использую для настройки консоли gremlin, такой же, как ниже, и тот же, который я использую в remote-graph gremlin.remote.driver.clusterFile config

hosts: [portal-xxx.composedb.com] 
port: 15290 
username: admin 
password: pass 
connectionPool: { enableSsl: true } 
serializer: { className: 
    org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, 
    config: { serializeResultToString: true } }

свойства удаленного графа выглядят как

gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
# cluster file has the remote server configuration
#gremlin.remote.driver.clusterFile=gremlin-console.yaml
gremlin.remote.driver.clusterFile=/Users/julian.stephen/ibm.github/privacy-secbu/Privacy-DataViz/src/main/resources/gremlin-console.yaml
# source name is the global graph traversal source defined on the server
gremlin.remote.driver.sourceName=mygraph

Если я попытаюсь

Graph graph = EmptyGraph.instance();
GraphTraversalSource g = graph.traversal().withRemote(conf);
g.addV("Java Remote Test");
g.close();

Код выполняется без исключений, но вершина не создается в графе.Я думал, что это потому, что TX () не фиксируется.Поэтому я попытался получить ConfiguredGraphFactory вместо пустого графика, но все приведенные ниже параметры приводят к исключениям.

JanusGraph graph = ConfiguredGraphFactory.open("mygraph");

вместо EmptyGraph приводит к ошибке (такой же, как описано ниже).Когда я создаю конфигурацию ConfiguredGraphFactory.createConfiguration(new MapConfiguration(map));, а затем пытаюсь открыть график, я получаю сообщение об ошибке типа Please add a key named "ConfigurationManagementGraph" to the "graphs" property in your YAML file and restart the server to be able to use the functionality of the ConfigurationManagementGraph class. . У меня нет доступа к серверу, как указано вначале.

Я также пробовал разные варианты использования JanusGraphFactory безрезультатно.

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 03 апреля 2019

Оказалось, что это неверная конфигурация параметра channelizer на сервере Janusgraph, который не создавал динамические привязки для новых графиков, созданных с помощью GraphConfiguration Factory.Как только это было исправлено командой сервера и обновлено развертывание, динамические обходы стали связываться, и код начал работать.

...