передавать данные из datastax в gephi с помощью gremlin

Я использую gremlin-console (v3.2.7) в комплекте с Datastax Enterprise. При запуске он автоматически подключается к удаленному серверу gremlin. Затем я создаю псевдоним для доступа к правому графику :remote config alias g graph.g. Затем я подключаюсь к gephi (v0.9.2) :remote connect tinkerpop.gephi. Однако с этого момента я не могу перемещаться по графику g, так что :> g также логически терпит неудачу с java.lang.StackOverflowError. Это две связи:

gremlin> :remote list
==>0 - Gremlin Server - [localhost/127.0.0.1:8182]-[<uuid>]
==>*1 - Gephi - [workspace1]

У меня вопрос: есть ли способ передавать данные из одного удаленного соединения в другое, используя описанную выше настройку (Datastax -> gephi), и если да, то как? Если нет, есть ли обходной путь?

Примечание. Все подключения проходят успешно, локальная потоковая передача gephi, протестированная с TinkerGraph.createModern(), работает безупречно.


person Tom Trebicky    schedule 20.12.2017    source источник


Ответы (1)


Подключаемому модулю Gephi требуется локальный Graph экземпляр. Когда вы подключаете консоль Gremlin с помощью :remote, у вас этого больше нет (т.е. экземпляр Graph находится где-то на сервере, и вы отправляете через :> запрос на сервер, который будет там обрабатываться).

DSE Graph, Neptune, CosmosDB и подобные графики, которые предлагают только удаленный Graph экземпляр, единственный способ заставить плагин Gephi работать - это взять подграф и перенести его на консоль Gremlin. Затем, как вы обнаружили, TinkerGraph (т.е. держатель подграфа) будет нормально работать с плагином Gephi.

person stephen mallette    schedule 20.12.2017
comment
Не могли бы вы уточнить: взять подграф и перенести его на консоль Gremlin? Нужно ли сохранять удаленный подграф на диск, а затем загружать его обратно в локальный граф? Спасибо! - person zhibo; 31.01.2018
comment
В зависимости от базы данных графов, к которой вы подключены, вы можете просто вернуть TinkerGraph как результат вашей subgraph() операции. TinkerGraph должен быть полностью сериализуемым с помощью соединения Gryo. В зависимости от размера этого TinkerGraph это может быть приемлемым или неприемлемым. Если используемый вами график напрямую не поддерживает сериализацию TinkerGraph, вы можете записать этот TinkerGraph в String и вернуть String. Я предполагаю, что вы также можете записать подграф на удаленный диск и потенциально получить его там - если у вас есть доступ для таких вещей. - person stephen mallette; 31.01.2018