Прежде всего вам нужно будет установить несколько файлов jar для JanusGraph для обработки скриптов gremlin-python:
./bin/gremlin-server.sh -i org.apache.tinkerpop gremlin-python 3.2.9
Обратите внимание, что версия gremlin-python, которую вы устанавливаете, должна соответствовать версии Tinkerpop, с которой совместим JanusGraph. Информацию о совместимости можно найти на странице выпусков JanusGraph. Например, JanusGraph 0.2.2 совместим с Tinkerpop 3.2.9.
Затем вам нужно запустить сервер JanusGraph с помощью ConfiguredGraphFactory. Вам просто нужно использовать файл conf/gremlin-server/gremlin-server-configuration.yaml
из дистрибутива.
bin/gremlin-server.sh conf/gremlin-server/gremlin-server-configuration.yaml
Этот файл отличается от традиционного conf/gremlin-server/gremlin-server.yaml
несколькими строками
graphManager: org.janusgraph.graphdb.management.JanusGraphManager
graphs: {
ConfigurationManagementGraph: conf/janusgraph-cql-configurationgraph.properties
}
Затем нам нужно загрузить график MYGRAPH
во время сценария инициализации сервера. Создайте сценарий инициализации scripts/init.groovy
. Здесь вы можете загрузить столько разных графиков, сколько захотите.
def globals = [:]
myGraph = ConfiguredGraphFactory.open("MYGRAPH")
globals << [myGraphTraversal : myGraph.traversal()]
Убедитесь, что этот сценарий выполняется при запуске сервера gremlin в conf/gremlin-server/gremlin-server-configuration.yaml
scriptEngines: {
gremlin-groovy: {
imports: [java.lang.Math],
staticImports: [java.lang.Math.PI],
scripts: [scripts/init.groovy]}}
Наконец, в своем проекте Python установите пакет gremlin-python, который соответствует версии Tinkerpop вашей версии JanusGraph. В случае JanusGraph 0.2.2 это версия 3.2.9.
pip install gremlin-python==3.2.9
Запустите оболочку Python и начните кодирование:
>>> from gremlin_python import statics
>>> from gremlin_python.structure.graph import Graph
>>> from gremlin_python.process.graph_traversal import __
>>> from gremlin_python.process.strategies import *
>>> from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
>>> graph = Graph()
>>> myGraphTraversal = graph.traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','myGraphTraversal'))
>>> myGraphTraversal.V().count()
person
Benoit Guigal
schedule
07.11.2018