本文介绍如何基于Gremlin控制台连接和操作图数据库GDB。
准备工作
进行以下操作时,请确保图数据库GDB的实例与您的ECS虚拟机处于同一个VPC网络环境。
Gremlin控制台需要在Java8环境中使用,如未安装请执行以下命令。
sudo yum install java-1.8.0-devel
如果您的ECS机器上有多个Java版本,请将Java8设置为默认运行。示例如下:
sudo /usr/sbin/alternatives --config java
共有4个提供“java”的程序。
+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java) 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64-debug/jre/bin/java) 3 java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.191-2.6.15.4.el7_5.x86_64/jre/bin/java) 4 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
从Apache Tinkerpop官方网站下载最新版本Gremlin控制台。
wget https://archive.apache.org/dist/tinkerpop/3.4.4/apache-tinkerpop-gremlin-console-3.4.4-bin.zip
解压并进入apache-tinkerpop-gremlin-console-3.4.4目录。
unzip apache-tinkerpop-gremlin-console-3.4.4-bin.zip cd apache-tinkerpop-gremlin-console-3.4.4
创建
conf/gdb-remote.yaml
文件,该文件为Gremlin控制台与GDB图数据库建立连接的配置文件。并且:将
${your_gdb_endpoint}
改为您的GDB实例的域名。将
${username}
改为您的GDB实例的用户名。将
${password}
改为您的GDB实例的密码。hosts: [ ${your_gdb_endpoint} ] port: 8182 username: ${username} password: ${password} serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { serializeResultToString: true } }
建立连接
在Gremlin控制台主目录中执行
./bin/gremlin.sh
命令启动控制台。返回结果如下:\,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities plugin activated: tinkerpop.tinkergraph gremlin>
执行以下命令连接到图数据库GDB实例(不要漏掉前面的冒号)。
:remote connect tinkerpop.server conf/gdb-remote.yaml
返回结果显示当前Gremlin控制台所连接的GDB实例的Host和Port。
==>Configured gds-uf6rge6e35594khg150010.graphdb.rds.aliyuncs.com/192.X.X.X:XXXX
执行以下命令切换到远程模式,此后您在Gremlin控制台输入的所有DSL均将发向远端的GDB实例(不要漏掉前面的冒号)。
:remote console
返回结果如下:
==>All scripts will now be sent to Gremlin Server - [iz2ze30qqhwn3ba5mu2qgiz/172.X.X.X:XXXX] - type ':remote console' to return to local mode
现在您就可以输入想要执行的Gremlin语句, 在语句后面加 .profile()便可以分析该语句的执行性能,如下:
g.V().count().profile()
现在默认30s超时,如果您需要调整超时时间可以执行以下语句(注意时间单位是毫秒)。
:remote config timeout 60000
文档内容是否对您有帮助?