我该如何使用 Graphexp 对 Amazon Neptune 的 Gremlin 图形进行可视化?

上次更新时间:2020 年 9 月 1 日

我想要使用 Graphexp 对储存在 Amazon Neptune 中的 Gremlin 图形进行可视化。该如何操作?

简短描述

要使用 Graphexp 对 Gremlin 图形进行可视化,请完成以下先决条件:

1.    创建 Neptune 数据库集群

2.    在与 Neptune 集群相同的 Virtual Private Cloud (VPC) 内创建 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例。确保可以通过 SSH 连接从您的本地计算机访问该实例。

3.    创建 VPC 安全组以允许 EC2 实例从 VPC 内连接至 Neptune 集群。有关更多信息,请参阅访问 Amazon VPC 中的 Neptune 数据库集群

4.    确认您的 AWS Identity and Access Management (IAM) 身份验证已禁用。

5.    在 EC2 实例上,安装 Gremlin 控制台并连接到 Neptune

注意:如果您的数据库的 neptune_enforce_ssl 参数被设置为“true”,则使用 HTTPS (wss) 连接。或者,如果您通过 HTTPS 使用 REST,请将您的 REST_USE_HTTPS 参数设置为“true”。否则,您会收到连接错误。有关更多信息,请参阅传输中加密:使用 SSL/HTTPS 连接到 Neptune

解决方法

加载 Gremlin 图形

注:以下示例使用 Apache TinkerPop GitHub 文档的图形属性。

Gremlin 控制台中,执行以下步骤:

1.    添加顶点:

g.addV('person').property(id,'v1').property('name','marko').property('age','29').
  addV('person').property(id,'v2').property('name','vadas').property('age','27').
  addV('software').property(id,'v3').property('name','lop').property('lang','java').
  addV('person').property(id,'v4').property('name','josh').property('age','32').
  addV('software').property(id,'v5').property('name','ripple').property('lang','java').
  addV('person').property(id,'v6').property('name','peter').property('age','35')

2.    添加边缘:

g.addE('created').from(g.V('v1')).to(g.V('v3')).property(id,'e9').property('weight','0.4')
g.addE('created').from(g.V('v4')).to(g.V('v5')).property(id,'e10').property('weight','1.0')
g.addE('created').from(g.V('v4')).to(g.V('v3')).property(id,'e11').property('weight','0.4')
g.addE('created').from(g.V('v6')).to(g.V('v3')).property(id,'e12').property('weight','0.2')
g.addE('knows').from(g.V('v1')).to(g.V('v2')).property(id,'e7').property('weight','0.4')
g.addE('knows').from(g.V('v1')).to(g.V('v4')).property(id,'e8').property('weight','1.0')

设置 SSH 隧道

SSH 隧道允许您的本地计算机连接到 EC2 服务器,然后通过本地端口转发连接到 Neptune 实例。您可以使用 SSH 客户端或 PuTTY 创建 SSH 隧道。

要通过 SSH 客户端进行连接,运行以下命令。示例使用这些值:

8182:Neptune 集群的端口
mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com:Neptune 集群终端节点
my_keypair.pem:您的私有密钥对文件
ec2-user@ec2-11-111-11-111.eu-west-1.compute.amazonaws.com:EC2 实例的公有 DNS 主机名

ssh -L 8182:mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com:8182 -i my_keypair.pem ec2-user@ec2-11-111-11-111.eu-west-1.compute.amazonaws.com

PuTTY:

1.    在 Category(类别)窗格中,选择 Session(会话),然后完成以下字段:
对于 Host Name(主机名),请输入 EC2 实例的公有 DNS 主机名。
Port(端口)中,确保其值为 22

2.    在 Category(类别)列表中,展开 Connection > SSH(连接 > SSH),然后选择 Tunnels(隧道)。完成以下字段:
Source port(源端口)中,输入您在创建 Neptune 集群时选择的端口,如 8182
Destination(目的地)中,输入 Neptune 集群终端节点和端口。示例:mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com:8182.
选择本地自动选项。

3.    选择添加,然后选择打开。在会话打开时会显示事件日志:

[timestamp] Local port 8182 forwarding to mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com:8182

设置 Graphexp

1.    从 GitHub 下载 Graphexp 程序包

2.    在您的本地文件系统上提取 zip 文件。

3.    打开 scripts/graphConf.js 文件,并设置以下参数:

const host = "localhost";
const SINGLE_COMMANDS_AND_NO_VARS = true

在您的浏览器中访问 Neptune 图形

1.    在您的浏览器中,输入 graphexp.html 文件在未解压 Graphexp 目录中的路径。例如:

file:///C:/Neptune/graphexp-main/graphexp-main/graphexp.html

2.    选择 Get graph info(获取图形信息),然后选择 Search(搜索)以加载并显示 Gremlin 图形。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?