Amazon Neptune JDBC 连接 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Neptune JDBC 连接

Amazon Neptune 已经发布了开源 JDBC 驱动程序它支持 OpenPher、Gremlin、SQL-gremlin 和 SPARQL 查询。JDBC 连接使用 Tableau 等商业智能 (BI) 工具轻松连接到 Neptune。将 JDBC 驱动程序与 Neptune 一起使用没有额外的成本-您仍然只需为消耗的 Neptune 资源付费。

驱动程序与 JDBC 4.2 兼容,至少需要 Java 8。请参阅JDBC API 文档有关如何使用 JDBC 驱动程序的信息。

GitHub 项目可以在其中提交问题和打开功能请求,其中包含驱动程序的详细文档:

开始使用 Neptune JDBC 驱动程序

要使用 Neptune JDBC 驱动程序连接到 Neptune 实例,必须将 JDBC 驱动程序部署在与 Neptune 数据库集群所在的同一 VPC 中的 Amazon EC2 实例上,或者该实例必须通过 SSH 隧道或负载均衡器提供。SSH 隧道可以在驱动程序内部设置,也可以在外部设置。

你可以下载驱动程序这里. 驱动程序打包为单个 JAR 文件,名称如下:neptune-jdbc-1.0.0-all.jar. 要使用它,请将 JAR 文件放在classpath您的应用程序。或者,如果您的应用程序使用 Maven 或 Gradle,则可以使用相应的 Maven 或 Gradle 命令从 JAR 安装驱动程序。

驱动程序需要一个 JDBC 连接 URL 才能与 Neptune 连接,格式如下:

jdbc:neptune:(connection type)://(host);property=value;property=value;...;property=value

GitHub 项目中每种查询语言的章节描述了可以在 JDBC 连接 URL 中为该查询语言设置的属性。

如果 JAR 文件在你的应用程序中classpath无需进行其他配置。你可以使用 JDBC 连接驱动程序DriverManager接口和 Neptune 连接字符串。例如,如果您的 Neptune 数据库集群可以通过终端节点访问neptune-example.com在端口 8182 上,你可以像这样连接 OpenPher:

import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; void example() { String url = "jdbc:neptune:opencypher://bolt://neptune-example:8182"; Connection connection = DriverManager.getConnection(url); Statement statement = connection.createStatement(); connection.close(); }

GitHub 项目中针对每种查询语言的文档部分描述了在使用该查询语言时如何构建连接字符串。

将 Tableau 与 Neptune JDBC 驱动程序结合使用

要将 Tableau 与 Neptune JDBC 驱动程序一起使用,请首先下载并安装最新版本的Tableau 桌面. 下载 Neptune JDBC 驱动程序的 JAR 文件,以及 Neptune Tableau 连接器文件(a.taco文件)。

在 Mac 上连接到 Tableau 获取 Neptune

  1. 将 Neptune JDBC 驱动程序 JAR 文件放在/Users/(your user name)/Library/Tableau/Driversfolder。

  2. 放置 Neptune Tableau 连接器.taco中的文件/Users/(your user name)/Documents/My Tableau Repository/Connectorsfolder。

  3. 如果您启用了 IAM 身份验证,请为其设置环境。请注意,中设置的环境变量.zprofile/.zshenv/.bash_profile等等,将不起作用。必须设置环境变量,以便可以由 GUI 应用程序加载它们。

    将您的凭证设置方法之一是将您的访问密钥和私有密钥放在/Users/(your user name)/.aws/credentials文件。

    设置服务区域的一种简单方法是打开终端并输入以下命令,使用应用程序的区域(例如,us-east-1):

    launchctl setenv SERVICE_REGION region name

    还有其他方法可以设置重启后仍然存在的环境变量,但是无论使用什么技术,都必须设置 GUI 应用程序可以访问的变量。

  4. 要让环境变量加载到 Mac 上的 GUI 中,请在终端上输入以下命令:

    /Applications/Tableau/Desktop/2021.1.app/Contents/MacOS/Tableau

在 Windows 计算机上连接到 Tableau 为 Neptune

  1. 将 Neptune JDBC 驱动程序 JAR 文件放在C:\Program Files\Tableau\Driversfolder。

  2. 放置 Neptune Tableau 连接器.taco中的文件C:\Users\(your user name)\Documents\My Tableau Repository\Connectorsfolder。

  3. 如果您启用了 IAM 身份验证,请为其设置环境。

    这可以很简单,不如设置用户。ACCESS_KEYSECRET_KEY, 和SERVICE_REGION环境变量。

打开 Tableau 后,选择更多窗户左侧。如果 Tableau 连接器文件位于正确位置,则可以选择Amazon NeptuneAmazon在显示的列表中:

在 Tableau 中选择 SQL

您不应该编辑端口,也不必添加任何连接选项。输入你的 Neptune 终端节点并设置 IAM 和 SSL 配置(如果使用 IAM,则必须启用 SSL)。

当你选择登录,如果你的图形很大,可能需要 30 秒以上的时间才能连接。Tableau 正在收集顶点和边缘表并在边缘上连接顶点,以及创建可视化效果。

排查 JDBC 驱动程序连接问题

如果驱动程序无法连接服务器,请使用isValidJDBC 的功能Connection对象以检查连接是否有效。如果函数返回false,这意味着连接无效,请检查要连接的终端节点是否正确,以及您位于 Neptune 数据库集群的 VPC 中,或者您是否拥有通往集群的有效 SSH 隧道。

如果你得到No suitable driver found for (connection string)来自DriverManager.getConnection调用,连接字符串的开头可能存在问题。确保你的连接字符串像这样开始:

jdbc:neptune:opencypher://...

要收集有关该连接的更多信息,您可以添加LogLevel像这样转换到连接字符串:

jdbc:neptune:opencypher://(JDBC URL):(port);logLevel=trace

或者,您也可以添加properties.put("logLevel", "trace")在输入属性中记录跟踪信息。