作者:_Yoha | 来源:互联网 | 2022-11-30 14:33
我使用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"的图形.
提前致谢...
1> Benoit Guiga..:
首先,您需要为JanusGraph安装一些jar文件来处理gremlin-python脚本:
./bin/gremlin-server.sh -i org.apache.tinkerpop gremlin-python 3.2.9
请注意,您安装的gremlin-python版本必须与JanusGraph兼容的Tinkerpop版本匹配.您可以在JanusGraph 版本页面上找到兼容性信息.例如,JanusGraph 0.2.2与Tinkerpop 3.2.9兼容.
接下来,您需要使用ConfiguredGraphFactory启动JanusGraph服务器.你只需要使用conf/gremlin-server/gremlin-server-configuration.yaml
ditribution中的文件.
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
在服务器的初始化脚本中加载图形.请创建一个init脚本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项目中,安装与您的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()