AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 JDBC 驱动程序版本 1.0 连接
您可以使用 JDBC 驱动程序版本 1.0 连接从许多第三方 SQL 客户端工具连接到 Amazon Redshift 集群。为此,请下载 JDBC 驱动程序。
如果要使用 JDBC 连接,请执行以下步骤。
下载 Amazon Redshift JDBC 驱动程序
Amazon Redshift 为与 JDBC 4.2 API 兼容的工具提供驱动程序。 有关这些驱动程序支持的功能的信息,请参阅 Amazon Redshift JDBC 驱动程序发行说明。
有关如何安装 JDBC 驱动程序版本 1.0、引用 JDBC 驱动程序库和注册驱动程序类的详细信息,请参阅 Amazon RedshiftJDBC 驱动程序安装和配置指南。
JDBC 驱动程序版本 1.2.27.1051 及更高版本支持 Amazon Redshift 存储过程。有关更多信息,请参阅 中的在 Amazon Redshift 中创建存储过程。Amazon Redshift Database Developer Guide
对于您在其上使用 Amazon Redshift JDBC 驱动程序的每台计算机,请确保已安装 Java 运行时环境 (JRE) 8.0。
如果将 Amazon Redshift JDBC 驱动程序用于数据库身份验证,请确保 Java 类路径中包含适用于 Java 的 AWS 开发工具包 1.11.118
版或更高版本。如果没有安装适用于 Java 的 AWS 开发工具包,则可以使用包含该 AWS 开发工具包的驱动程序。
此驱动程序的类名是 com.amazon.redshift.jdbc42.Driver。
此 ZIP 文件包含与 JDBC4.2 兼容的驱动程序(不含 AWS 开发工具包)及其依赖库文件。–将相关 jar 文件解压缩到与 JDBC 驱动程序相同的位置。只有
JDBC 驱动程序需要位于 CLASSPATH 中,因为驱动程序清单文件包含与 JDBC 驱动程序位于同一目录中的所有相关库文件名。有关如何安装 JDBC 驱动程序的更多信息,请参阅
Amazon Redshift JDBC 驱动程序安装和配置指南。
将 Amazon Redshift JDBC 驱动程序与 IAM 数据库身份验证所需的 AWS 开发工具包一起使用。
如果您的工具需要使用某个早期版本的驱动程序,请参阅在某些情况下使用以前的 JDBC 驱动程序版本。
获取 JDBC URL
您需要获知您的 Amazon Redshift 集群的 JDBC URL,才能将 SQL 客户端工具连接到该集群。JDBC URL 采用以下格式:jdbc:redshift://endpoint:port/database。
注意
使用以前的格式 jdbc:postgresql://endpoint:port/database 指定的 JDBC URL 仍有效。
前面显示的格式的字段具有以下值。
字段
值
jdbc
连接协议。
redshift
用于指定使用 Amazon Redshift 驱动程序连接到数据库的子协议。
endpoint
Amazon Redshift 集群的终端节点。
port (远程调试端口)
您在启动集群时指定的端口号。如果您启用了防火墙,请确保此端口处于打开状态,可供您使用。
database
您为集群创建的数据库。
以下是一个示例 JDBC URL:jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com.cn:5439/dev
有关如何获取 JDBC 连接的信息,请参阅 查找集群连接字符串。
如果客户端计算机无法连接到数据库,您可以进行故障排除,解决可能存在的问题。有关更多信息,请参阅解决 Amazon Redshift 中的连接问题。
为 JDBC 连接配置身份验证和 SSL
配置 Amazon Redshift JDBC 驱动程序,以根据要连接到的 Amazon Redshift 服务器的安全要求对连接进行身份验证。
要对连接进行身份验证,请始终提供您的 Amazon Redshift 用户名和密码。该密码是使用密码的加盐 MD5 哈希传输的。根据服务器上是否启用或需要 SSL,您可能还需要将驱动程序配置为通过
SSL 进行连接。您可能需要使用单向 SSL 身份验证,以便客户端 (驱动程序本身) 验证服务器的身份。
为 JDBC 连接配置 TCP Keepalive
默认情况下,Amazon Redshift JDBC 驱动程序将配置为使用 TCP Keepalive 来防止连接超时。可以指定驱动程序开始发送 Keepalive
包的时间或通过在连接 URL 中设置相关属性来禁用该功能。
为 JDBC 连接配置日志记录
要帮助解决问题,您可以在 JDBC 驱动程序中启用日志记录。
使用 Apache Maven 配置 JDBC 连接
Apache Maven 是一款软件项目管理及理解工具。适用于 Java 的 AWS 开发工具包支持 Apache Maven 项目。有关更多信息,请参阅 中的将开发工具包与 Apache Maven 一起使用。AWS SDK for Java Developer Guide
如果您使用 Apache Maven,可以配置并生成您的项目,以使用 Amazon Redshift JDBC 驱动程序与 Amazon Redshift 集群连接。为此,在项目的
pom.xml 文件中将 JDBC 驱动程序添加为依赖项。如果您使用 Maven 生成项目并希望使用 JDBC 连接,请执行以下部分中的步骤。
将 JDBC 驱动程序配置为 Maven 依赖项
将 JDBC 驱动程序配置为 Maven 依赖项
将以下存储库添加到 pom.xml 文件的存储库部分。
注意
以下代码示例中的 URL 如果用在浏览器中,将返回错误。仅在 Maven 项目的上下文中使用此 URL。
redshift
http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release
要使用 SSL 进行连接,请将以下存储库添加到您的 pom.xml 文件。
redshift
https://s3.amazonaws.com/redshift-maven-repository/release
在 pom.xml 文件的依赖项部分中,声明您要使用的驱动程序版本。
Amazon Redshift 为与 JDBC 4.2 API 兼容的工具提供了驱动程序。 有关这些驱动程序支持的功能的信息,请参阅下载 Amazon Redshift JDBC 驱动程序。
从以下列表中添加驱动程序的依赖项。
注意
对于 1.2.1.1001 版和更高版本,您可以使用通用驱动程序类名 com.amazon.redshift.jdbc.Driver 或下面列表中随驱动程序列出的特定于版本的类名,例如 com.amazon.redshift.jdbc42.Driver。 对于 1.2.1.1001 之前的版本,只有特定于版本的类名受支持。
替换 driver-version (位于下面的驱动程序版本中)。例如:1.2.45.1069。
与 JDBC 4.2 兼容的驱动程序:–
com.amazon.redshift
redshift-jdbc42
driver-version
此驱动程序的类名是 com.amazon.redshift.jdbc42.Driver。
标准 Amazon Redshift JDBC 驱动程序包括使用 IAM 数据库身份验证所需的 AWS 开发工具包。我们建议使用标准驱动程序,除非驱动程序文件的大小对您的应用程序来说是一个问题。如果您需要更小的驱动程序文件,并且不使用
IAM 数据库身份验证,或如果您的 Java 类路径中已有适用于 Java 的 AWS 开发工具包 1.11. 118 或更高版本,则请从以下列表中添加驱动程序的依赖项。
替换 driver-version (位于下面的驱动程序版本中)。例如:1.2.45.1069。
与 JDBC 4.2 兼容的驱动程序:–
com.amazon.redshift
redshift-jdbc42-no-awssdk
driver-version
此驱动程序的类名是 com.amazon.redshift.jdbc42.Driver。
不带 Amazon Redshift 的 SDKs Maven 驱动程序包括以下必需依赖项,您必须将其包含在您的项目中。
org.antlr
antlr4
4.5.3
runtime
false
无 Amazon Redshift 的 SDKs Maven 驱动程序包括以下可选依赖项,您可以根据需要将其包含在项目中。
com.amazonaws
aws-java-sdk-core
1.11.118
runtime
true
com.amazonaws
aws-java-sdk-redshift
1.11.118
runtime
true
com.amazonaws
aws-java-sdk-sts
1.11.118
runtime
true
将驱动程序升级到最新版本
要将 Amazon Redshift JDBC 驱动程序升级或更改到最新版本,请先将依赖项的版本部分修改为驱动程序的最新版本。然后用 Maven Clean Plugin
清除您的项目,如下所示。
mvn clean
配置 JDBC 驱动程序选项
要控制 Amazon Redshift JDBC 驱动程序的行为,您可以将配置选项附加到 JDBC URL。例如,以下 JDBC URL 使用安全套接字层 (SSL)、用户
(UID) 和密码 (PWD) 连接到您的集群。
jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev?ssl=true&UID=your_username&PWD=your_password
有关 SSL 选项的更多信息,请参阅使用 SSL 进行连接。
在某些情况下使用以前的 JDBC 驱动程序版本
仅当您的工具需要使用某个早期版本的 Amazon Redshift JDBC 驱动程序时,才下载此特定的驱动程序版本。有关这些驱动程序版本支持的功能的信息,请参阅
下载 Amazon Redshift JDBC 驱动程序。
对于使用 AWS Identity and Access Management (IAM) 凭证或身份提供商 (IdP) 凭证的身份验证,请使用 Amazon Redshift
JDBC 驱动程序版本 1.2.8.1005 或更高版本。
重要
Amazon Redshift 改变了管理 SSL 证书的方式。如果您必须使用早于 1.2.8.1005 的驱动程序版本,则可能需要更新当前的信任根 CA 证书,才能继续使用
SSL 连接集群。有关更多信息,请参阅将 SSL 连接过渡到 ACM 证书。
如果将 Amazon Redshift JDBC 驱动程序用于数据库身份验证,请确保 Java 类路径中包含适用于 Java 的 AWS 开发工具包 1.11.118
版或更高版本。如果没有安装适用于 Java 的 AWS 开发工具包,则可以使用包含该 AWS 开发工具包的驱动程序。有关更多信息,请参阅将以前的 JDBC 驱动程序版本与适用于 Java 的 AWS 开发工具包一起使用。
注意
中国(北京)区域中最早提供的 JDBC 驱动程序版本是 1.1.17.1017。
这些是与 JDBC 4.2 兼容的驱动程序:–
这些 ZIP 文件包含 JDBC4.2 兼容的驱动程序(不含 AWS 开发工具包)及其依赖库文件。将相关 jar 文件解压缩到与 JDBC 驱动程序相同的位置。只有
JDBC 驱动程序需要位于 CLASSPATH 中,因为驱动程序清单文件包含与 JDBC 驱动程序位于同一目录中的所有相关库文件名。有关如何安装 JDBC 驱动程序的更多信息,请参阅
Amazon Redshift JDBC 驱动程序安装和配置指南。
以下是与 JDBC 4.1 兼容的早期驱动程序:–
以下是与 JDBC 4.0 兼容的早期驱动程序:–
将以前的 JDBC 驱动程序版本与适用于 Java 的 AWS 开发工具包一起使用
如果将 JDBC 驱动程序用于数据库身份验证,请确保 Java 类路径中包含适用于 Java 的 AWS 开发工具包 1.11.118 版或更高版本。如果没有安装适用于
Java 的 AWS 开发工具包,则可以使用包含该 AWS 开发工具包的下列驱动程序之一。
将以前的 JDBC 驱动程序版本与 Maven 一起使用
只有当您的工具需要特定版本的驱动程序时,才向项目中添加 Amazon Redshift JDBC 驱动程序的上一版本。有关这些驱动程序版本支持的功能的信息,请参阅下载 Amazon Redshift JDBC 驱动程序。有关使用 Maven 进行配置的信息,请参阅使用 Apache Maven 配置 JDBC 连接。