Gremlin-Python 连接到现有的 JanusGraph
Gremlin-Python Connecting to existing JanusGraph
我已经使用 gremlin 控制台创建了一个图表
gremlin> ConfiguredGraphFactory.graphNames
==>MYGRAPH
gremlin> ConfiguredGraphFactory.getConfiguration('MYGRAPH')
==>storage.backend=cql
==>graph.graphname=MYGRAPH
==>storage.hostname=127.0.0.1
==>Template_Configuration=false
gremlin> g.V().properties()
==>vp[name->SFO]
==>vp[country->USA]
==>vp[name->ALD]
==>vp[country->IND]
==>vp[name->BLR]
==>vp[country->IND]
gremlin>
我想使用 gremlin-python 连接 MYGRAPH。
有人可以告诉我如何使用 gremlin-python.
访问名为 "MYGRAPH" 的图表吗
提前致谢...
首先,您需要为 JanusGraph 安装一些 jar 文件来处理 gremlin-python 脚本:
./bin/gremlin-server.sh -i org.apache.tinkerpop gremlin-python 3.2.9
请注意,您安装的 gremlin-python 版本必须与 JanusGraph 兼容的 Tinkerpop 版本相匹配。您可以在 JanusGraph releases page 上找到兼容性信息。例如 JanusGraph 0.2.2 与 Tinkerpop 3.2.9 兼容。
接下来您需要使用 ConfiguredGraphFactory 启动 JanusGraph 服务器。您只需要使用分发中的文件 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()]
确保在 conf/gremlin-server/gremlin-server-configuration.yaml
启动 gremlin 服务器时执行此脚本
scriptEngines: {
gremlin-groovy: {
imports: [java.lang.Math],
staticImports: [java.lang.Math.PI],
scripts: [scripts/init.groovy]}}
最后,在您的 Python 项目中,安装与您的 JanusGraph 版本的 Tinkerpop 版本匹配的 gremlin-python 包。对于 JanusGraph 0.2.2,这是版本 3.2.9。
pip install gremlin-python==3.2.9
开始 Python shell 并开始编码:
>>> 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()
我已经使用 gremlin 控制台创建了一个图表
gremlin> ConfiguredGraphFactory.graphNames
==>MYGRAPH
gremlin> ConfiguredGraphFactory.getConfiguration('MYGRAPH')
==>storage.backend=cql
==>graph.graphname=MYGRAPH
==>storage.hostname=127.0.0.1
==>Template_Configuration=false
gremlin> g.V().properties()
==>vp[name->SFO]
==>vp[country->USA]
==>vp[name->ALD]
==>vp[country->IND]
==>vp[name->BLR]
==>vp[country->IND]
gremlin>
我想使用 gremlin-python 连接 MYGRAPH。 有人可以告诉我如何使用 gremlin-python.
访问名为 "MYGRAPH" 的图表吗提前致谢...
首先,您需要为 JanusGraph 安装一些 jar 文件来处理 gremlin-python 脚本:
./bin/gremlin-server.sh -i org.apache.tinkerpop gremlin-python 3.2.9
请注意,您安装的 gremlin-python 版本必须与 JanusGraph 兼容的 Tinkerpop 版本相匹配。您可以在 JanusGraph releases page 上找到兼容性信息。例如 JanusGraph 0.2.2 与 Tinkerpop 3.2.9 兼容。
接下来您需要使用 ConfiguredGraphFactory 启动 JanusGraph 服务器。您只需要使用分发中的文件 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()]
确保在 conf/gremlin-server/gremlin-server-configuration.yaml
scriptEngines: {
gremlin-groovy: {
imports: [java.lang.Math],
staticImports: [java.lang.Math.PI],
scripts: [scripts/init.groovy]}}
最后,在您的 Python 项目中,安装与您的 JanusGraph 版本的 Tinkerpop 版本匹配的 gremlin-python 包。对于 JanusGraph 0.2.2,这是版本 3.2.9。
pip install gremlin-python==3.2.9
开始 Python shell 并开始编码:
>>> 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()