2013-09-18 3 views
6

Я новичок в этом, и я пытаюсь заставить Titan работать с Python. Я бил головой об этом полтора дня и никуда не могу. Я пробовал лампочки и rexpro-python, но ничего не работает.Как вы получаете базу данных диаграмм Титана, работающую с Python?

В RexPro-питона следующий код:

from rexpro import RexProConnection 
conn = RexProConnection('localhost', 8184, 'graph') 

будет висеть и сервер выдает следующее сообщение (для титановыми версий 0.3.2, 0.3.1 и 0.2.1)

13/09/18 16:59:27 WARN filter.RexProMessageFilter: unsupported rexpro version: 1 

В Луковицы:

from bulbs.config import Config, DEBUG 
from bulbs.rexster import Graph 

config = Config('http://localhost:8182/graphs/graph') 
g = Graph(config) 

Выдает следующую ошибку:

SystemError: ({'status': '500', 'transfer-encoding': 'chunked', 'server': 'grizzly/2.2.16', 'connection': 'close', 'date': 'Wed, 18 Sep 2013 21:06:27 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json'}, '{"message":"","error":"javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: groovy.lang.MissingMethodException.idx() is applicable for argument types:() values: []\\nPossible solutions: is(java.lang.Object), any(), find(), any(groovy.lang.Closure), with(groovy.lang.Closure), _(groovy.lang.Closure)","api":{"description":"evaluate an ad-hoc Gremlin script for a graph.","parameters":{"rexster.returnKeys":"an array of element property keys to return (default is to return all element properties)","rexster.showTypes":"displays the properties of the elements with their native data type (default is false)","load":"a list of \'stored procedures\' to execute prior to the \'script\' (if \'script\' is not specified then the last script in this argument will return the values","rexster.offset.end":"end index for a paged set of data to be returned","rexster.offset.start":"start index for a paged set of data to be returned","params":"a map of parameters to bind to the script engine","language":"the gremlin language flavor to use (default to groovy)","script":"the Gremlin script to be evaluated"}},"success":false}') 

с подобным исключением на сервере Titan. Кто-нибудь получил это, чтобы работать?

+0

Использование bulbs.titan не bulbs.rexster – espeed

ответ

1

В случае с rexpro-python у вас есть проблема с версией. Последняя версия RexPro Python будет подключаться к TinkerPop/Rexster 2.4.0. Titan пока не поддерживает эту версию. Начиная с Titan 0.3.2 он поддерживает TinkerPop 2.3.x. Похоже, это последнее обязательство перед отбойник на 2.4.0 совместимости для RexPro-питона:

https://github.com/bdeggleston/rexpro-python/commit/3597f4ce5a4da69ec64f174aa1a064abf7524693

но вы можете просмотреть коммита, истории немного, чтобы убедиться, что вы получите правильный ,

Луковицы выглядят так, как будто это делается для ручного индекса, то, что Titan не поддерживает. Есть несколько сообщений по этому поводу в списках рассылки gremlin-users и/или areuliusgraphs. Проверьте этот пост с ссылкой на ваш точный проблемы:

https://groups.google.com/forum/#!msg/gremlin-users/s7Ag1tjbxLs/nC5WjtHh6woJ

Короткий ответ, похоже, Луковицы был обновлен для поддержки Titan. Возможно, у вас есть некоторая несовместимость версий где-то еще.

+0

Я получил версию RexPro, которую вы упомянули о работе с Titan 0.3.1. Я подозреваю, что другие версии будут работать. –

+0

Повторяя это, я подозреваю, что интерфейс Bulbs не работает, потому что в Titan 0.3.2 (вероятно, 0.3.1 и т. Д.) Тоже была ошибка, из-за которой сервер REST (хотя и не RexPro) не запускался по умолчанию. Теперь я использую 0.4.0. –

+0

Использовать bubls.titan не bulbs.rexster – espeed

1

С Titan 1.0.0 или новее у нас есть лучшие способы подключения из python.

Теперь титан поставляется с сервером Gremlin. Сервер Gremlin обеспечивает возможность использования языков не-JVM (например, Python, Javascript и т. Д.) Для связи со стеком TinkerPop.

Gremlin Server заменяет Rexster.

Чтобы запустить сервер Gremlin (этот сценарий упакован с титаном):

sh gremlin-server.sh 

Похожие партии сценарий для окон в одном каталоге.

После запуска следующие драйверы питона должны помочь соединиться с сервером Gremlin:

  • aiogremlin - библиотека Python 3 на основе asyncio и aiohttp, который использует WebSockets для связи с Gremlin Server.
  • gremlinclient - Асинхронный клиент Python 2/3 для сервера Gremlin, который позволяет использовать гибкий синтаксис coroutine - Trollius, Tornado, Asyncio. Это от того же автора, что и Айогремлин. Я полагаю, aiogremlin больше не поддерживается, и это последний проект, над которым он работает.
  • gremlinrestclient - Библиотека Python 2/3, которая использует HTTP для связи с сервером Gremlin по REST.

библиотеки на основе Python языка запросов, которые могут помочь в процессе разработки:

  • gremlin-py - Напишите чистый Python Gremlin, который может быть отправлен Gremlin Server.
  • gremlin-python - Позволяет использовать синтаксис Python при прохождении графиков свойств.
Смежные вопросы