本文介绍如何基于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