通过Gremlin Console连接实例

本文介绍如何基于Gremlin控制台连接和操作图数据库GDB。

准备工作

进行以下操作时,请确保图数据库GDB的实例与您的ECS虚拟机处于同一个VPC网络环境。

  1. Gremlin控制台需要在Java8环境中使用,如未安装请执行以下命令。

    sudo yum install java-1.8.0-devel
  2. 如果您的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
  3. Apache Tinkerpop官方网站下载最新版本Gremlin控制台。

    wget https://archive.apache.org/dist/tinkerpop/3.4.4/apache-tinkerpop-gremlin-console-3.4.4-bin.zip
  4. 解压并进入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
  5. 创建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 }
      }

建立连接

  1. 在Gremlin控制台主目录中执行./bin/gremlin.sh命令启动控制台。返回结果如下:

     \,,,/
            (o o)
    -----oOOo-(3)-oOOo-----
    plugin activated: tinkerpop.server
    plugin activated: tinkerpop.utilities
    plugin activated: tinkerpop.tinkergraph
    gremlin>
  2. 执行以下命令连接到图数据库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
  3. 执行以下命令切换到远程模式,此后您在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
  4. 现在您就可以输入想要执行的Gremlin语句, 在语句后面加 .profile()便可以分析该语句的执行性能,如下:

    g.V().count().profile()

    现在默认30s超时,如果您需要调整超时时间可以执行以下语句(注意时间单位是毫秒)。

    :remote config timeout 60000