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

配置 JDBC 连接

您可以使用 JDBC 连接将多种第三方 SQL 客户端工具连接到您的 Amazon Redshift 集群。为此,请下载 JDBC 驱动程序。

如果要使用 JDBC 连接,请执行以下步骤。

下载 Amazon Redshift JDBC 驱动程序

Amazon Redshift 向与 JDBC 4.2 API 兼容的工具提供驱动程序。有关这些驱动程序支持的功能的信息,请参阅 Amazon Redshift JDBC 驱动程序发行说明在 中国(北京) 区域中,使用以下链接:Amazon Redshift JDBC 驱动程序发行说明

有关如何安装 JDBC 驱动程序、引用 JDBC 驱动程序库和注册驱动程序类的详细信息,请参阅 Amazon Redshift JDBC 驱动程序安装和配置指南在 中国(北京) 区域中,使用以下链接:Amazon Redshift JDBC 驱动程序安装和配置指南

JDBC 驱动程序版本 1.2.27.1051 及更高版本支持 Amazon Redshift 存储过程。有关更多信息,请参阅 Amazon Redshift Database Developer Guide 中的在 Amazon Redshift 中创建存储过程

JDBC 驱动程序版本 1.2.8.1005 及更高版本支持使用 AWS Identity and Access Management (IAM) 凭证或身份提供商 (IdP) 凭证的数据库身份验证。有关更多信息,请参阅使用 IAM 身份验证生成数据库用户凭证

对于您在其上使用 Amazon Redshift JDBC 驱动程序的每台计算机,请确保已安装 Java 运行时环境 (JRE) 8.0。

如果将 Amazon Redshift JDBC 驱动程序用于数据库身份验证,请确保 Java 类路径中包含适用于 Java 的 AWS 开发工具包 1.11.118 版或更高版本。如果没有安装适用于 Java 的 AWS 开发工具包,则可以使用包含该 AWS 开发工具包的驱动程序。

有关以前的驱动程序版本的更多信息,请参阅 将以前的 JDBC 驱动程序版本与适用于 Java 的 AWS 开发工具包一起使用

然后,下载并查看 Amazon Redshift ODBC 和 JDBC 驱动程序许可协议在中国(北京)区域中,使用以下链接:https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf

如果您的工具需要使用某个早期版本的驱动程序,请参阅在某些情况下使用以前的 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 用户名和密码。根据服务器上是否启用或需要 SSL,您可能还需要将驱动程序配置为通过 SSL 进行连接。或者,您可能需要使用单向 SSL 身份验证,以便客户端(驱动程序本身)验证服务器的身份。

有关配置 JDBC 驱动程序以对连接进行身份验证的信息,请参阅 Amazon Redshift JDBC 驱动程序安装和配置指南在 中国(北京) 区域中,使用以下链接:Amazon Redshift JDBC 驱动程序安装和配置指南

为 JDBC 连接配置 TCP Keepalive

默认情况下,Amazon Redshift JDBC 驱动程序将配置为使用 TCP Keepalive 来防止连接超时。可以指定驱动程序开始发送 Keepalive 包的时间或通过在连接 URL 中设置相关属性来禁用该功能。

有关为 JDBC 驱动程序配置 TCP Keepalive 的信息,请参阅 Amazon Redshift JDBC 驱动程序安装和配置指南在 中国(北京) 区域中,使用以下链接:Amazon Redshift JDBC 驱动程序安装和配置指南

为 JDBC 连接配置日志记录

要帮助解决问题,您可以在 JDBC 驱动程序中启用日志记录。

有关为 JDBC 连接配置日志记录的信息,请参阅 Amazon Redshift JDBC 驱动程序安装和配置指南在 中国(北京) 区域中,使用以下链接:Amazon Redshift JDBC 驱动程序安装和配置指南

使用 Apache Maven 配置 JDBC 连接

Apache Maven 是一款软件项目管理及理解工具。适用于 Java 的 AWS 开发工具包支持 Apache Maven 项目。有关更多信息,请参阅 AWS SDK for Java Developer Guide 中的将开发工具包与 Apache Maven 一起使用

如果您使用 Apache Maven,可以配置并生成您的项目,以使用 Amazon Redshift JDBC 驱动程序与 Amazon Redshift 集群连接。为此,在项目的 pom.xml 文件中将 JDBC 驱动程序添加为依赖项。如果您使用 Maven 生成项目并希望使用 JDBC 连接,请执行以下部分中的步骤。

将 JDBC 驱动程序配置为 Maven 依赖项

将 JDBC 驱动程序配置为 Maven 依赖项

  1. 将以下存储库添加到 pom.xml 文件的存储库部分。

    注意

    以下代码示例中的 URL 如果用在浏览器中,将返回错误。仅在 Maven 项目的上下文中使用此 URL。

    <repositories> <repository> <id>redshift</id> <url>http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release</url> </repository> </repositories>

    要使用 SSL 进行连接,请将以下存储库添加到您的 pom.xml 文件。

    <repositories> <repository> <id>redshift</id> <url>https://s3.amazonaws.com/redshift-maven-repository/release</url> </repository> </repositories>
  2. 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 兼容的驱动程序:–

      <dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42</artifactId> <version>driver-version</version> </dependency>

      此驱动程序的类名是 com.amazon.redshift.jdbc42.Driver

  3. 下载并查看 Amazon Redshift ODBC 和 JDBC 驱动程序许可协议在 中国(北京) 区域中,使用以下链接:Amazon Redshift ODBC 和 JDBC 驱动程序许可协议

标准 Amazon Redshift JDBC 驱动程序包括使用 IAM 数据库身份验证所需的 AWS 开发工具包。我们建议使用标准驱动程序,除非驱动程序文件的大小对您的应用程序来说是一个问题。如果您需要更小的驱动程序文件,并且不使用 IAM 数据库身份验证,或如果您的 Java 类路径中已有适用于 Java 的 AWS 开发工具包 1.11. 118 或更高版本,则请从以下列表中添加驱动程序的依赖项。

将以下示例中的 driver-version 替换为您的驱动程序版本。例如:1.2.45.1069

  • 与 JDBC 4.2 兼容的驱动程序:–

    <dependency> <groupId>com.amazon.redshift</groupId> <artifactId>redshift-jdbc42-no-awssdk</artifactId> <version>driver-version</version> </dependency>

    此驱动程序的类名是 com.amazon.redshift.jdbc42.Driver

无开发工具包的 Amazon Redshift Maven 驱动程序包含以下可选依赖项,您在项目中可以根据需要包含这些依赖项。

<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-core</artifactId> <version>1.11.118</version> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-redshift</artifactId> <version>1.11.118</version> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-sts</artifactId> <version>1.11.118</version> <scope>runtime</scope> <optional>true</optional> </dependency>

如果您的工具需要使用某个早期版本的驱动程序,请参阅将以前的 JDBC 驱动程序版本与 Maven 一起使用

将驱动程序升级到最新版本

要将 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 驱动程序安装和配置指南

在某些情况下使用以前的 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 兼容的驱动程序:

以下是与 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 连接