#java #gremlin #tinkerpop #amazon-neptune
Вопрос:
Может ли запрос «drop()» работать в сеансовом клиенте в запросах Gremlin на Java для AWS Neptune. Я пробовал несколько раз, но «drop()» работает только в том случае, если я использую iterate() и не оказывает никакого эффекта, если используется клиент сеанса и отправляется запрос.
Если это сработает, будет полезно привести несколько примеров. Это не очень понятно из документации.
Комментарии:
1. Я провел несколько экспериментов и не смог воспроизвести проблему — см. Ответ ниже. Не могли бы вы поделиться некоторыми примерами кода или точным способом настройки сеанса и шагов Gremlin, которые вы использовали?
2. Также — какую версию Java-клиента вы используете? В настоящее время Neptune поддерживает только текстовые запросы для сеансов, пока не произойдет обновление до TinkerPop 3.5.x
Ответ №1:
Я попробовал некоторые эксперименты, используя консоль Gremlin в «режиме сеанса». Обратите внимание, что транзакция будет зафиксирована только после закрытия сеанса.
$ bin/gremlin.sh
,,,/
(o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.tinkergraph
gremlin> :remote connect tinkerpop.server conf/krl6w.yaml session abc-123
==>Configured xxxx-[abc-123]
gremlin> :remote console
==>All scripts will now be sent to Gremlin Server - [xxx]-[abc-123] - type ':remote console' to return to local mode
gremlin> g.V().hasLabel('airport').count()
==>3503
gremlin> g.V().hasLabel('airport').drop()
gremlin> g.V().hasLabel('airport').count()
==>0
// This ends the session and commits the transaction
gremlin> :remote close
Теперь, чтобы убедиться, что это сработало
gremlin> :remote connect tinkerpop.server conf/krl6w.yaml
==>Configured xxxx
gremlin> :remote console
==>All scripts will now be sent to Gremlin Server - [xxxxx:8182] - type ':remote console' to return to local mode
gremlin> g.V().hasLabel('airport').count()
==>0
Комментарии:
1. Спасибо Кельвину, уверенность в том, что это работает, была очень полезной. Учитывая, что я новичок в Нептуне/Гремлине. Первопричина: В конечном итоге это сработало для меня с сеансами, так как я использовал гремлин на основе строк, я случайно создал некоторые условные выражения с %s вместо «%s», что на самом деле вызвало проблему. Спасибо