Gremlin-Console
Gremlin-Console 是 TinkerPop 的交互式客户端,支持离线操作图,也可以连接 Server 提交查询。
- 单机离线调用模式
- Client/Server 请求模式
Gremlin-Console 适合学习和调试。生产应用建议使用对应语言的客户端。
1 单机离线调用模式
Server 发行包内的 Console 已包含 HugeGraph-Core JAR 和插件,可以直接执行 Groovy 脚本操作图,无需启动 Server。
先在 hugegraph.properties 中配置 Memory 后端。其他后端可能需要额外初始化。
然后运行示例脚本。
这里的
--会被 getopts 解析为最后一个 option,这样后面的 options 就可以传入 Gremlin-Console 进行处理了。-i代表Execute the specified script and leave the console open on completion,更多的选项可以参考 Gremlin-Console 的源代码。
其中 example.groovy 是 scripts 目录下的一个示例脚本,该脚本插入了一些数据,并在最后查询图中顶点和边的数量。
脚本执行后,可以继续输入 Gremlin 语句。
更多的 Gremlin 语句请参考 Tinkerpop 官网。
2 Client/Server 请求模式
Gremlin-Console 通过 WebSocket 连接 HugeGraph-Server。使用与 Server 同版本发行包中的 Console 和 conf/remote.yaml,
保留文件中的序列化器配置,只修改地址,以及启用鉴权时需要的凭据。旧版配置可能引用已经不存在的序列化器类。
准备连接配置并启动 Server。
检查
conf/gremlin-server.yaml中的host、port。默认的WsAndHttpChannelizer同时处理 WebSocket 和 HTTP 请求,无需修改。conf/remote.yaml中的hosts应填写 Console 能访问的 Server 地址,port应与 Gremlin 端口一致(默认为8182,不是 REST 端口8080)。 按照快速上手启动 Server。当前 master 配置使用 GraphBinary V1 和 HugeGraph 类型注册器。
如果 Server 开启了鉴权,在同一个文件中填写实际凭据。
随包的
remote-objects.yaml和gremlin-driver-settings.yaml使用相同的序列化器配置;使用这些文件时也要保持一致。从 Server 发行包目录启动 Console,并创建带 traversal 别名的客户端。
Server 端将默认图空间下的图绑定为
DEFAULT-hugegraph,其 traversal source 绑定为__g_DEFAULT-hugegraph。 由于连字符-在 Groovy 中不能直接用作变量名,通过 Java Driver 连接时,使用.alias(['g': '__g_DEFAULT-hugegraph'])将其映射为g。通过客户端提交查询。
若启动 Server 时预加载了示例图,两条查询均返回
6(其他图返回其实际顶点数)。 通过 Driver 的client.submit()提交脚本时,无需在语句前加:>前缀。使用结束后关闭客户端和集群连接。
此外,也可以使用 Gremlin Console 内置的 :remote 命令连接:
使用 :remote 连接时,以 :> 开头的语句会被发送至远端 Server 执行,普通语句则在 Console 本地执行。
更多用法见 TinkerPop Gremlin Console 参考。