通過Gremlin Console連接實例
本文介紹如何基于Gremlin控制臺連接和操作圖數(shù)據(jù)庫GDB。
準(zhǔn)備工作
進(jìn)行以下操作時,請確保圖數(shù)據(jù)庫GDB的實例與您的ECS虛擬機處于同一個VPC網(wǎng)絡(luò)環(huán)境。
Gremlin控制臺需要在Java8環(huán)境中使用,如未安裝請執(zhí)行以下命令。
sudo yum install java-1.8.0-devel
如果您的ECS機器上有多個Java版本,請將Java8設(shè)置為默認(rèn)運行。示例如下:
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官方網(wǎng)站下載最新版本Gremlin控制臺。
wget https://archive.apache.org/dist/tinkerpop/3.4.4/apache-tinkerpop-gremlin-console-3.4.4-bin.zip
解壓并進(jìn)入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
創(chuàng)建
conf/gdb-remote.yaml
文件,該文件為Gremlin控制臺與GDB圖數(shù)據(jù)庫建立連接的配置文件。并且:將
${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控制臺主目錄中執(zhí)行
./bin/gremlin.sh
命令啟動控制臺。返回結(jié)果如下:\,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities plugin activated: tinkerpop.tinkergraph gremlin>
執(zhí)行以下命令連接到圖數(shù)據(jù)庫GDB實例(不要漏掉前面的冒號)。
:remote connect tinkerpop.server conf/gdb-remote.yaml
返回結(jié)果顯示當(dāng)前Gremlin控制臺所連接的GDB實例的Host和Port。
==>Configured gds-uf6rge6e35594khg150010.graphdb.rds.aliyuncs.com/192.X.X.X:XXXX
執(zhí)行以下命令切換到遠(yuǎn)程模式,此后您在Gremlin控制臺輸入的所有DSL均將發(fā)向遠(yuǎn)端的GDB實例(不要漏掉前面的冒號)。
:remote console
返回結(jié)果如下:
==>All scripts will now be sent to Gremlin Server - [iz2ze30qqhwn3ba5mu2qgiz/172.X.X.X:XXXX] - type ':remote console' to return to local mode
現(xiàn)在您就可以輸入想要執(zhí)行的Gremlin語句, 在語句后面加 .profile()便可以分析該語句的執(zhí)行性能,如下:
g.V().count().profile()
現(xiàn)在默認(rèn)30s超時,如果您需要調(diào)整超時時間可以執(zhí)行以下語句(注意時間單位是毫秒)。
:remote config timeout 60000