这是我要解决的方案:我有两个环境:本地计算机和Azure中托管的虚拟机
在虚拟机中,我启动了一个gremlin容器,其中包含gremlin客户端,服务器并连接到cassandra图形数据库。
这是我运行 docker container ls 命令时容器运行的信息:
CONTAINER ID: 029095e26f53
IMAGE: 3f03c6bfb0a2
COMMAND: "/bin/sh -c /gremlin…"
CREATED: 2 weeks ago
STATUS: Up 2 weeks
PORTS: 0.0.0.0:8182->8182/tcp
NAME: gremlin
当我进入容器内部时,我运行以下命令以运行gremlin客户端:
./bin/gremlin.sh
在gremlin控制台中,我运行以下命令以连接到tinkerpop服务器:
:remote connect tinkerpop.server conf/remote.yaml
==>已连接-localhost / 127.0.0.1:8182 --->来自gremlin控制台的答案
如果我运行以下gremlin查询:
:> g.V().count()
我得到一个不同于零的数字,告诉我图形数据库中有一条记录。
现在在另一面,我在本地计算机上有Gephi客户端,我希望它能够显示该图形数据库。或者至少让Gephi显示来自
的视觉数据graph = TinkerFactory.createModern()
在gremlin容器中运行。
我要这样做是因为我需要为gremlin和titan生态系统选择可视化工具。
我试图设置Gephi客户端功能以连接到虚拟机的ip和端口8182,但是它显示了红色的点,告诉我这是不可能的。我想念什么?我很确定还缺少一些步骤。预先感谢,
胡安·伊格纳西奥(Juan Ignacio)
答案 0 :(得分:1)
如果图形是“远程”的,并且不在Gremlin Console中的内存中,则您必须设计一种方法以使其在本地可用。对于在Gremlin Server中运行或完全远程的Graph(例如CosmosDB,DSE Graph或Amazon Neptune),这种情况是典型的。
使它们在本地可用的典型方法是使用[subgraph()][1]
-步骤仅拉出您关心的图形部分,并将其返回到Gremlin Console。对于支持subgraph()
步的图形,它将作为TinkerGraph返回(例如Titan,尽管我假设您将使用JanusGraph),所以对于您的测试,它使用TinkerFactory
和一个很小的图形图,您可以这样做:
gremlin> :remote connect tinkerpop.server conf/remote-objects.yaml
请注意“ remote-objects.yaml”的配置,因为该配置将返回实际对象-实际的TinkerGraph
而不是TinkerGraph的字符串表示形式。
gremlin> :> TinkerFactory.createModern()
这将远程创建“现代”图,并将TinkerGraph返回到Gremlin控制台。您可以访问该结果
gremlin> graph = result[0].object
:>
将来自服务器的响应存储在名为“结果”的变量中,该变量在TinkerGraph
中包含您的List
。 reference documentation中对此进行了说明。从那里可以像使用标准Gephi instructions一样使用“图形”对象。