

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 在 Amazon Redshift 中配置连接
<a name="configuring-connections"></a>

在以下章节中，了解如何配置 JDBC、Python 和 ODBC 连接以从 SQL 客户端工具连接到集群。此部分介绍如何设置 JDBC、Python 和 ODBC 连接。它还介绍了如何使用安全套接字层 (SSL) 和服务器证书来加密客户端和服务器之间的通信。

## 适用于 Amazon Redshift 的 JDBC、Python 和 ODBC 驱动程序
<a name="connecting-drivers"></a>

要处理集群中的数据，您必须具有 JDBC、Python 或 ODBC 驱动程序，以便从客户端计算机或实例进行连接。对应用程序进行编码以使用 JDBC、Python 或 ODBC 数据访问 API 操作，并使用支持 JDBC 或 ODBC 的 SQL 客户端工具。

Amazon Redshift 提供 JDBC、Python 和 ODBC 驱动程序以供下载。这些驱动程序受 支持 支持。PostgreSQL 驱动程序未经过测试，也不受 Amazon Redshift 团队的支持。连接到 Amazon Redshift 集群时，请使用 Amazon Redshift 特定的驱动程序。Amazon Redshift 驱动程序具有以下优势：
+ 支持 IAM、SSO 和联合身份验证。
+ 支持新的 Amazon Redshift 数据类型。
+ 支持身份验证配置文件。
+ 结合 Amazon Redshift 增强功能提升性能。

 有关如何下载 JDBC 和 ODBC 驱动程序和配置到集群的连接的更多信息，请参阅 [为 Amazon Redshift 配置 JDBC 驱动程序版本 2.x 连接](jdbc20-install.md)、[Amazon Redshift Python 连接器](python-redshift-driver.md) 和 [为 Amazon Redshift 配置 ODBC 驱动程序版本 2.x 连接](odbc20-install.md)。

有关管理 IAM 身份的更多信息，包括 IAM 角色的最佳实践，请参阅 [Amazon Redshift 中的 Identity and Access Management](redshift-iam-authentication-access-control.md)。

# 查找集群连接字符串
<a name="connecting-connection-string"></a>

要使用 SQL 客户端工具连接到您的集群，您必须具有集群连接字符串。您可以在 Amazon Redshift 控制台中的集群详细信息页面上查找集群连接字符串。

**查找集群的连接字符串**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择**集群**，然后从列表中选择集群名称以打开其详细信息。

1. **一般信息**部分中提供有 **JDBC URL** 和 **ODBC URL** 连接字符串以及其他详细信息。每个字符串均基于运行集群的 AWS 区域。点击相应连接字符串旁边的图标复制该字符串。

要连接到集群端点，可以使用 [DescribeClusters API 请求](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html)中的集群端点 URL。以下是集群端点 URL 的示例。

```
mycluster.cmeaswqeuae.us-east-2.redshift.amazonaws.com
```

如果您为集群设置了自定义域名，还可以使用该域名连接到您的集群。有关创建自定义域名的更多信息，请参阅[设置自定义域名](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME-connect.html)。

**注意**  
连接时，请勿使用集群节点的 IP 地址或 VPC 端点的 IP 地址。请务必使用 Redshift 端点以避免不必要的中断。使用端点 URL 的唯一例外是使用自定义域名时。有关更多信息，请参阅[使用自定义域名进行客户端连接](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html)。

# 为 Amazon Redshift 配置 JDBC 驱动程序版本 2.x 连接
<a name="jdbc20-install"></a>

可以使用 JDBC 驱动程序版本 2.x 连接从多种第三方 SQL 客户端工具连接到 Amazon Redshift 集群。Amazon Redshift JDBC 连接器提供了一个开源解决方案。您可以浏览源代码、请求增强功能、报告问题和提供文章。

有关 JDBC 驱动程序更改的最新信息，请参阅 [change log](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)。

预设情况下，Amazon Redshift JDBC 驱动程序将配置为使用 TCP Keepalive 来防止连接超时。可以指定驱动程序开始发送 Keepalive 包的时间或通过在连接 URL 中设置相关属性来关闭该功能。有关连接 URL 的语法的更多信息，请参阅 [构建连接 URL](jdbc20-build-connection-url.md)。


| 属性 | 说明 | 
| --- | --- | 
|  `TCPKeepAlive`  |  要关闭 TCP Keepalive，请将此属性设置为 `FALSE`。  | 

**Topics**
+ [

# 下载 Amazon Redshift JDBC 驱动程序版本 2.1
](jdbc20-download-driver.md)
+ [

# 安装 Amazon Redshift JDBC 驱动程序版本 2.2
](jdbc20-install-driver.md)
+ [

# 获取 JDBC URL
](jdbc20-obtain-url.md)
+ [

# 构建连接 URL
](jdbc20-build-connection-url.md)
+ [

# 使用 Apache Maven 配置 JDBC 连接
](configure-jdbc20-connection-with-maven.md)
+ [

# 配置身份验证和 SSL
](jdbc20-configure-authentication-ssl.md)
+ [

# 配置日志记录
](jdbc20-configuring-logging.md)
+ [

# 数据类型转换
](jdbc20-data-type-mapping.md)
+ [

# 使用预编译的语句支持
](jdbc20-prepared-statement-support.md)
+ [

# JDBC 驱动程序 2.2 版本与 1.x 版本之间的差异
](jdbc20-jdbc10-driver-differences.md)
+ [

# 为 JDBC 驱动程序版本 2.x 创建初始化 (.ini) 文件
](jdbc20-ini-file.md)
+ [

# JDBC 驱动程序版本 2.x 配置的选项
](jdbc20-configuration-options.md)
+ [

# JDBC 驱动程序版本 2.x 的以前版本
](jdbc20-previous-driver-version-20.md)

# 下载 Amazon Redshift JDBC 驱动程序版本 2.1
<a name="jdbc20-download-driver"></a>

**注意**  
Amazon Redshift JDBC 2.x 驱动程序并不是为线程安全而设计的。两个或更多线程并发尝试使用同一个连接可能会导致死锁、错误、不正确的结果或其它意外行为。  
如果您有多线程应用程序，我们建议您同步对驱动程序的访问，以避免并发访问。

Amazon Redshift 向与 JDBC 4.2 API 兼容的工具提供驱动程序。此驱动程序的类名是 `com.amazon.redshift.Driver`。

有关如何安装 JDBC 驱动程序、引用 JDBC 驱动程序库和注册驱动程序类的详细信息，请参阅以下主题。

对于您在其上使用 Amazon Redshift JDBC 驱动程序版本 2.x 的每台计算机，请确保已安装 Java 运行时环境（JRE）8.0。

如果将 Amazon Redshift JDBC 驱动程序用于数据库身份验证，请确保您的 Java 类路径中包含 适用于 Java 的 AWS SDK 1.11.118 或更高版本。如果您没有安装 适用于 Java 的 AWS SDK，请下载带有与 JDBC 4.2 兼容的驱动程序和 AWS SDK 驱动程序相关库的 ZIP 文件：
+ [与 JDBC 4.2 兼容的驱动程序版本 2.x 和 AWS SDK 驱动程序依赖库](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.zip) 

  此 ZIP 文件包含与 JDBC 4.2 兼容的驱动程序版本 2.x 和适用于 Java 的 AWS SDK 1.x 驱动程序相关库文件。将相关 jar 文件解压缩到与 JDBC 驱动程序相同的位置。只有 JDBC 驱动程序需要位于 CLASSPATH 中。

  此 ZIP 文件不包含完整的 AWS SDK for Java 1.x。但是，它包含适用于 AWS Identity and Access Management (IAM) 数据库身份验证所需的 Java 1.x 驱动程序相关库的 AWS 开发工具包。

  将此 Amazon Redshift JDBC 驱动程序与 IAM 数据库身份验证所需的 AWS SDK 一起使用。

  要安装完整的 AWS SDK for Java 1.x，请参阅《适用于 Java 的 AWS SDK 开发人员指南》**中的 [AWS SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html)。
+ [与 JDBC 4.2 兼容的驱动程序版本 2.x（不含 AWS SDK）](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.jar) 

查看 JDBC 驱动程序版本 2.x 软件许可证并更改日志文件：
+ [JDBC 驱动程序版本 2.x 许可证](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/LICENSE) 
+ [JDBC 驱动程序版本 2.x 更改日志](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)

JDBC 驱动程序版本 1.2.27.1051 及更高版本支持 Amazon Redshift 存储过程。有关更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的[在 Amazon Redshift 中创建存储过程](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html)。

# 安装 Amazon Redshift JDBC 驱动程序版本 2.2
<a name="jdbc20-install-driver"></a>

要安装与 Amazon Redshift JDBC 4.2 兼容的驱动程序版本 2.x 和 AWS SDK 的驱动程序相关库，请将文件从 ZIP 归档提取到您选择的目录。

要安装与 Amazon Redshift JDBC 4.2 兼容的驱动程序版本 2.x（不含 AWS SDK），请将 JAR 文件复制到您选择的目录。

要使用 Amazon Redshift JDBC 驱动程序访问 Amazon Redshift 数据存储，您需要执行如下配置。

**Topics**
+ [

# 引用 JDBC 驱动程序库
](jdbc20-driver-libraries.md)
+ [

# 注册驱动程序类
](jdbc20-register-driver-class.md)

# 引用 JDBC 驱动程序库
<a name="jdbc20-driver-libraries"></a>

用于连接到数据的 JDBC 应用程序或 Java 代码必须访问驱动程序 JAR 文件。在应用程序或代码中，指定从 ZIP 归档中提取的所有 JAR 文件。

## 在 JDBC 应用程序中使用驱动程序
<a name="jdbc20-use-driver-jdbc-app"></a>

JDBC 应用程序通常提供一组用于添加驱动程序库文件列表的配置选项。使用提供的选项将 ZIP 归档中的所有 JAR 文件作为应用程序中的驱动程序配置的一部分。有关更多信息，请参阅您 JDBC 应用程序的文档。

## 在 Java 代码中使用驱动程序
<a name="jdbc20-use-driver-java-code"></a>

您必须在类路径中包含所有驱动程序库文件。这是 Java 运行时环境搜索类和其他资源文件的路径。有关更多信息，请参阅相应的 Java SE 文档，以便为操作系统设置类路径。
+ Windows：[https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html)
+ Linux 和 Solaris：[https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html)
+ macOS：默认 macOS 类路径是安装 JDBC 驱动程序的目录。

# 注册驱动程序类
<a name="jdbc20-register-driver-class"></a>

请确保您为您的应用程序注册了适当的类。您可以使用以下类将 Amazon Redshift JDBC 驱动程序连接到 Amazon Redshift 数据存储：
+ `Driver` 类扩展 `java.sql.Driver`。
+ `DataSource` 类扩展 `javax.sql.DataSource` 和 `javax.sql.ConnectionPoolDataSource`。

驱动程序支持以下独立于 JDBC 版本的完全限定类名：
+ `com.amazon.redshift.jdbc.Driver`
+ `com.amazon.redshift.jdbc.DataSource`

以下示例说明了如何使用 DriverManager 类建立 JDBC 4.2 的连接。

```
            private static Connection connectViaDM() throws Exception
{
Connection connection = null;
connection = DriverManager.getConnection(CONNECTION_URL);
return connection;
}
```

下面的示例展示了如何使用 `DataSource` 类建立连接。

```
 private static Connection connectViaDS() throws Exception
{
Connection connection = null;
11
Amazon Redshift JDBC Driver Installation and Configuration Guide
DataSource ds = new com.amazon.redshift.jdbc.DataSource
();
ds.setURL(CONNECTION_URL);
connection = ds.getConnection();
return connection;
}
```

# 获取 JDBC URL
<a name="jdbc20-obtain-url"></a>

您需要获知您的 Amazon Redshift 集群的 JDBC URL，才能将 SQL 客户端工具连接到该集群。JDBC URL 采用以下格式：`jdbc:redshift://endpoint:port/database`。

上述格式的字段具有以下值。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/jdbc20-obtain-url.html)

以下是一个示例 JDBC URL：`jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev`

如果您的 URL 值包含以下任何 URI 预留字符，则这些值必须经过 URL 编码：
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  一个空格 

例如，如果 `PWD` 的值为 `password:password`，则使用该值的连接 URL 将如下所示：

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

有关如何获取 JDBC 连接的信息，请参阅[查找集群连接字符串](connecting-connection-string.md)。

如果客户端计算机无法连接到数据库，您可以进行故障排除，解决可能存在的问题。有关更多信息，请参阅 [解决 Amazon Redshift 中的连接问题](troubleshooting-connections.md)。

# 构建连接 URL
<a name="jdbc20-build-connection-url"></a>

使用连接 URL 向您正在访问的数据存储提供连接信息。以下是 Amazon Redshift JDBC 驱动程序版本 2.x 的连接 URL 的格式。此处，[主机] 是 Amazon Redshift 服务器的端点，[端口] 是服务器用于侦听客户端请求的传输控制协议 (TCP) 端口的编号。

```
jdbc:redshift://[Host]:[Port]
```

以下是指定某些可选设置的连接 URL 的格式。

```
jdbc:redshift://[Host]:[Port]/[database];[Property1]=[Value];
[Property2]=[Value];
```

如果您的 URL 值包含以下任何 URI 预留字符，则这些值必须经过 URL 编码：
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  一个空格 

例如，如果 `PWD` 的值为 `password:password`，则使用该值的连接 URL 将如下所示：

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

例如，假设您希望在 AWS 上连接到位于美国西部（加利福尼亚北部）区域的 Amazon Redshift 集群上的端口 9000。您还希望访问名为 `dev` 的数据库，并使用数据库用户名和密码对连接进行身份验证。在此情况下，您使用以下连接 URL。

```
jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=amazon
```

您可以使用以下字符将配置选项与 URL 字符串的其余部分分隔开：
+ ;
+ ?

例如，以下 URL 字符串等效：

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev?ssl=true;defaultRowFetchSize=100
```

您可以使用以下字符将 URL 字符串中的配置选项彼此分隔开：
+ ;
+ &

例如，以下 URL 字符串等效：

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev;ssl=true&defaultRowFetchSize=100
```

以下 URL 示例指定日志级别 6 和日志的路径。

```
jdbc:redshift://redshift.amazonaws.com:5439/dev;DSILogLevel=6;LogPath=/home/user/logs;
```

不要复制连接 URL 中的属性。

有关可指定的配置选项的完整列表，请参阅 [JDBC 驱动程序版本 2.x 配置的选项](jdbc20-configuration-options.md)。

**注意**  
连接时，请勿使用集群节点的 IP 地址或 VPC 端点的 IP 地址。请务必使用 Redshift 端点以避免不必要的中断。使用端点 URL 的唯一例外是使用自定义域名时。有关更多信息，请参阅[使用自定义域名进行客户端连接](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html)。

# 使用 Apache Maven 配置 JDBC 连接
<a name="configure-jdbc20-connection-with-maven"></a>

Apache Maven 是一款软件项目管理及理解工具。适用于 Java 的 AWS SDK 支持 Apache Maven 项目。有关更多信息，请参阅《适用于 Java 的 AWS SDK 开发人员指南》**中的[将开发工具包与 Apache Maven 一起使用](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html)。

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

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

1. 将 Amazon 存储库或 Maven Central 存储库添加到您的 `pom.xml` 文件的存储库部分。
**注意**  
以下代码示例中的 URL 如果用在浏览器中，将返回错误。仅在 Maven 项目的上下文中使用此 URL。

   要使用安全套接字层 (SSL) 进行连接，请将以下存储库添加到您的 `pom.xml` 文件。

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://s3.amazonaws.com/redshift-maven-repository/release</url>
       </repository>
   </repositories>
   ```

   对于 Maven Central 存储库，请将以下内容添加到您的 `pom.xml` 文件。

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://repo1.maven.org/maven2</url>
       </repository>
   </repositories>
   ```

1. 在 `pom.xml` 文件的依赖项部分中，声明您要使用的驱动程序版本。

   Amazon Redshift 向与 JDBC 4.2 API 兼容的工具提供驱动程序。有关这些驱动程序支持的功能的信息，请参阅 [下载 Amazon Redshift JDBC 驱动程序版本 2.1](jdbc20-download-driver.md)。

   将以下示例中的 `driver-version` 替换为您的驱动程序版本，例如 `2.1.0.1`。对于兼容 JDBC 4.2 的驱动程序，请使用以下内容。

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

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

当您使用 IAM 数据库身份验证时，Amazon Redshift Maven 驱动程序需要以下可选依赖项。

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

要将 Amazon Redshift JDBC 驱动程序升级或更改到最新版本，请先将依赖项的版本部分修改为驱动程序的最新版本。然后用 Maven Clean Plugin 清除您的项目，如下所示。

```
mvn clean
```

# 配置身份验证和 SSL
<a name="jdbc20-configure-authentication-ssl"></a>

为了防止数据遭到未经授权的访问，Amazon Redshift 数据存储要求所有连接都使用用户凭据进行身份验证。某些数据存储还要求通过安全套接字层 (SSL) 协议建立连接，无论是否使用单向身份验证。

Amazon Redshift JDBC 驱动程序版本 2.x 提供了对这些身份验证协议的完全支持。

驱动程序支持的 SSL 版本取决于您使用的 JVM 版本。有关每个 Java 版本支持的 SSL 版本的信息，请参阅 Java 平台组产品管理博客上的[诊断 TLS、SSL 和 HTTPS](https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https)。

用于连接的 SSL 版本是驱动程序和服务器都支持的最高版本，该版本在连接时确定。

配置 Amazon Redshift JDBC 驱动程序版本 2.x，以根据要连接到的 Redshift 服务器的安全要求对连接进行身份验证。

要对连接进行身份验证，您必须始终提供您的 Redshift 用户名和密码。根据服务器上是否启用或需要 SSL，您可能还需要将驱动程序配置为通过 SSL 进行连接。或者，您可能要使用单向 SSL 身份验证，以便客户端（驱动程序本身）验证服务器的身份。

在连接 URL 中将配置信息提供给驱动程序。有关连接 URL 的语法的更多信息，请参阅 [构建连接 URL](jdbc20-build-connection-url.md)。

*SSL* 表示 TLS/SSL，包括传输层安全性和安全套接字层。驱动程序支持 TLS/SSL 的行业标准版本。

## 配置 IAM 身份验证
<a name="jdbc20-configure-iam-authentication"></a>

如果您使用 IAM 身份验证连接到 Amazon Redshift 服务器，请将以下属性设置为数据来源连接字符串的一部分。

 有关 IAM 身份验证的更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](redshift-iam-authentication-access-control.md)。

要使用 IAM 身份验证，请使用以下连接字符串格式之一：


| 连接字符串 | 描述 | 
| --- | --- | 
|  `jdbc:redshift:iam:// [host]:[port]/[db]`  |  常规连接字符串。驱动程序从主机推断 ClusterID 和区域。  | 
|  `jdbc:redshift:iam:// [cluster-id]: [region]/[db]`  |  在已知 ClusterID 和区域的情况下，驱动程序将检索主机信息。  | 
|  `jdbc:redshift:iam:// [host]/[db]`  |  驱动程序默认为端口 5439，并从主机推断 ClusterID 和区域。根据您在创建、修改或迁移集群时选择的端口，允许访问所选端口。  | 

## 指定配置文件
<a name="jdbc20-aws-credentials-profiles"></a>

如果您使用 IAM 身份验证，则可以在配置文件名称下指定任何其他必需或可选的连接属性。通过这样做，您可以避免将某些信息直接放入连接字符串中。您可以使用 Profile 属性在连接字符串中指定配置文件名称。

配置文件可以添加到 AWS 凭证文件。此文件的默认位置为：`~/.aws/credentials`

您可以通过在以下环境变量中设置路径更改默认值：`AWS_CREDENTIAL_PROFILES_FILE`

 有关配置文件的更多信息，请参阅 *适用于 Java 的 AWS SDK* 中的[使用 AWS 凭证](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html)。

## 使用实例配置文件凭证
<a name="jdbc20-instance-profile-credentials"></a>

如果您在与 IAM 角色关联的 Amazon EC2 实例上运行应用程序，则可以使用实例配置文件凭证进行连接。

为此，请使用上表中的 IAM 连接字符串格式之一，并将 dbuser 连接属性设置为您正要以其身份连接的 Amazon Redshift 用户名。

有关实例配置文件的更多信息，请参阅《IAM 用户指南》**中的[访问控制](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

## 使用凭证提供程序
<a name="jdbc20-aws-credentials-provider"></a>

驱动程序还支持来自以下服务的凭证提供程序插件：
+ AWS IAM Identity Center
+ Active Directory 联合身份验证服务 (ADFS)
+ JSON Web Token (JWT) 服务
+ Microsoft Azure Active Directory (AD) 服务和浏览器 Microsoft Azure Active Directory (AD) 服务
+ Okta 服务
+ PingFederate 服务 
+ 适用于 SAML 服务（如 Okta、Ping 或 ADFS）的浏览器 SAML

如果您使用上述服务之一，则连接 URL 需要指定以下属性：
+ **Plugin\$1Name** – 凭证提供程序插件类的完全限定类路径。
+ **IdP\$1Host：**– 您用于对 Amazon Redshift 进行身份验证的服务的主机。
+ **IdP\$1Port** – 身份验证服务的主机侦听的端口。Okta 不需要。
+ **User** – idp\$1host 服务器的用户名。
+ **Password** – 与 idp\$1host 用户名关联的密码。
+ **DbUser** – 您连接时使用的 Amazon Redshift 用户名。
+ **SSL\$1Insecure** – 指示是否应验证 IDP 服务器证书。
+ **Client\$1ID** – 与 Azure AD 门户中的用户名关联的客户端 ID。仅用于 Azure AD。
+ **Client\$1Secret** – 与 Azure AD 门户中的客户端 ID 关联的客户端密钥。仅用于 Azure AD。
+ **IdP\$1Tenant** – 适用于您的 Amazon Redshift 应用程序的 Azure AD 租户 ID。仅用于 Azure AD。
+ **App\$1ID** – 您的 Amazon Redshift 应用程序的 Okta 应用程序 ID。仅适用于 Okta。
+ **应用程序名称** – 您的 Amazon Redshift 应用程序的可选 Okta 应用程序名称。仅适用于 Okta。
+ **Partner\$1SPID** – 可选的合作伙伴 SPID（服务提供商 ID）值。仅用于 PingFederate。
+ **Idc\$1Region** – AWS IAM Identity Center 实例所在的 AWS 区域。仅用于 AWS IAM Identity Center。
+ **Issuer\$1Url** – AWS IAM Identity Center 服务器的实例端点。仅用于 AWS IAM Identity Center。

如果您将浏览器插件用于这些服务之一，则连接 URL 还可以包括：
+ **Login\$1URL** – 通过浏览器插件使用安全断言标记语言 (SAML) 或 Azure AD 服务时，身份提供者网站上的资源的 URL。如果使用浏览器插件，则此参数是必需的。
+ **Listen\$1Port** – 通过浏览器插件使用 SAML、Azure AD 或 AWS IAM Identity Center 服务时，驱动程序用于从身份提供者获取 SAML 响应的端口。
+ **IdP\$1Response\$1Timeout** – 通过浏览器插件使用 SAML、Azure AD 或 AWS IAM Identity Center 服务时，驱动程序等待身份提供者的 SAML 响应的时间（以秒为单位）。

有关其他连接字符串属性的信息，请参阅[JDBC 驱动程序版本 2.x 配置的选项](jdbc20-configuration-options.md)。

# 仅使用用户名和密码
<a name="jdbc20-authentication-username-password"></a>

如果要连接的服务器不使用 SSL，则只需提供 Redshift 用户名和密码即可对连接进行身份验证。

**仅使用您的 Redshift 用户名和密码配置身份验证**

1. 将 `UID` 属性设置为您的 Redshift 用户名，以便访问 Amazon Redshift 服务器。

1. 将 PWD 属性设置为与您的 Redshift 用户名相对应的密码。

# 在不验证身份的情况下使用 SSL
<a name="jdbc20-use-ssl-without-identity-verification"></a>

如果要连接的服务器使用 SSL 但不需要身份验证，则可以将驱动程序配置为使用非验证 SSL 出厂设置。

**要在不进行身份验证的情况下配置 SSL 连接**

1. 将 `UID` 属性设置为您的 Redshift 用户名，以便访问 Amazon Redshift 服务器。

1. 将 `PWD` 属性设置为与您的 Redshift 用户名相对应的密码。

1. 将 `SSLFactory` 属性设置为 `com.amazon.redshift.ssl.NonValidatingFactory`。

# 使用单向 SSL 身份验证
<a name="jdbc20-use-one-way-SSL-authentication"></a>

如果要连接的服务器使用 SSL 并且具有证书，则您可以将驱动程序配置为使用单向身份验证来验证服务器的身份。

单向身份验证需要签名、受信任的 SSL 证书来验证服务器的身份。您可以将驱动程序配置为使用特定证书或访问包含相应证书的 TrustStore。如果您未指定证书或 TrustStore，则驱动程序将使用默认的 Java TrustStore（通常为 `jssecacerts` 或 `cacerts`）。

**要配置单向 SSL 身份验证**

1. 将 UID 属性设置为您的 Redshift 用户名，以便访问 Amazon Redshift 服务器。

1. 将 PWD 属性设置为与您的 Redshift 用户名相对应的密码。

1. 将 SSL 属性设置为 true。

1. 将 SSLRootCert 属性设置为根 CA 证书的位置。

1. 如果您未使用默认的 Java TrustStore 之一，请执行以下操作之一：
   + 要指定服务器证书，请将 SSLRootCert 属性设置为证书的完整路径。
   + 要指定 TrustStore，请执行以下操作：

     1. 使用 keytool 程序将服务器证书添加到要使用的 TrustStore 中。

     1. 指定使用驱动程序启动 Java 应用程序时要使用的 TrustStore 和密码。例如：

        ```
        -Djavax.net.ssl.trustStore=[TrustStoreName]
        -Djavax.net.ssl.trustStorePassword=[TrustStorePassword]
        -Djavax.net.ssl.trustStoreType=[TrustStoreType]
        ```

1. 请选择一种：
   + 要验证证书，请将 SSLMode 属性设置为 verify-ca。
   + 要验证证书并确认证书中的主机名，请将 SSLMode 属性设置为 verify-full。

# 配置日志记录
<a name="jdbc20-configuring-logging"></a>

您可以在驱动程序中打开日志记录以帮助诊断问题。

您可以使用以下方法记录驱动程序信息：
+ 要将记录的信息保存在 .log 文件中，请参阅 [使用日志文件](jdbc20-using-log-files.md)。
+ 要将记录的信息发送到 DriverManager 中指定的 LogStream 或 LogWriter，请参阅 [使用 LogStream 或 LogWriter](jdbc20-logstream-option.md)。

在连接 URL 中将配置信息提供给驱动程序。有关连接 URL 的语法的更多信息，请参阅 [构建连接 URL](jdbc20-build-connection-url.md)。

# 使用日志文件
<a name="jdbc20-using-log-files"></a>

只有打开足够长的日志记录才能捕获问题。日志记录会降低性能，并会占用大量磁盘空间。

在连接 URL 中设置 LogLevel 键以打开日志记录并指定包含在日志文件中的详细信息量。下表列出了 Amazon Redshift JDBC 驱动程序版本 2.x 提供的日志记录级别，按从最不详细到最详细的顺序排列。


| LogLevel 值 | 描述 | 
| --- | --- | 
|  1  |  记录将导致驱动程序中止的严重错误事件。  | 
|  2  |  记录也许不会导致驱动程序中止运行的错误事件。  | 
|  3  |  记录在未执行操作时可能导致错误的事件。此日志记录级别和高于此级别的日志记录级别也会记录用户的查询。  | 
|  4  |  记录描述驱动程序进程的一般信息。  | 
|  5  |  记录用于调试驱动程序的详细信息。  | 
|  6  |  记录所有驱动程序活动。  | 

**要设置使用日志文件的日志记录**

1. 将 LogLevel 属性设置为要包含在日志文件中的所需信息级别。

1. 将 LogPath 属性设置为您要保存日志文件的目标文件夹的完整路径。

   例如，以下连接 URL 启用日志记录级别 3 并将日志文件保存在 C:\$1temp 文件夹中：`jdbc:redshift://redshift.company.us-west- 1.redshift.amazonaws.com:9000/Default;DSILogLevel=3;LogPath=C:\temp`

1. 要确保新设置生效，请重新启动 JDBC 应用程序并重新连接到服务器。

   Amazon Redshift JDBC 驱动程序在 LogPath 属性中指定的位置生成以下日志文件：
   +  redshift\$1jdbc.log 文件，该文件记录不特定于连接的驱动程序活动。
   + 与数据库建立的每个连接的 redshift\$1jdbc\$1connection\$1[Number].log 文件，其中 [Number] 是标识每个日志文件的编号。此文件记录特定于连接的驱动程序活动。

如果 LogPath 值无效，则驱动程序将记录的信息发送到标准输出流（`System.out`）

# 使用 LogStream 或 LogWriter
<a name="jdbc20-logstream-option"></a>

只有打开足够长的日志记录才能捕获问题。日志记录会降低性能，并会占用大量磁盘空间。

在连接 URL 中设置 LogLevel 键以打开日志记录，并指定发送到 DriverManager 中指定的 LogStream 或 LogWriter 的详细信息量。

**要打开使用 LogStream 或 LogWriter 的日志记录：**

1. 要将驱动程序配置为记录描述驱动程序进度的一般信息，请将 LogLevel 属性设置为 1 或 INFO。

1. 要确保新设置生效，请重新启动 JDBC 应用程序并重新连接到服务器。

# 数据类型转换
<a name="jdbc20-data-type-mapping"></a>

Amazon Redshift JDBC 驱动程序版本 2.x 支持许多常见的数据格式，从而可在 Amazon Redshift、SQL 和 Java 数据类型之间进行转换。

下表列出了支持的数据类型映射。


| Amazon Redshift 类型 | SQL 类型 | Java 类型 | 
| --- | --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  |  长整型  | 
|  BOOLEAN  |  SQL\$1BIT  |  Boolean  | 
|  CHAR  |  SQL\$1CHAR  |  字符串  | 
|  DATE  |  SQL\$1TYPE\$1DATE  |  java.sql.Date  | 
|  DECIMAL  |  SQL\$1NUMERIC  |  BigDecimal  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  |  Double  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  |  byte[]  | 
|  INTEGER  |  SQL\$1INTEGER  |  整数  | 
|  OID  |  SQL\$1BIGINT  |  长整型  | 
|  SUPER  |  SQL\$1LONGVARCHAR  |  字符串  | 
|  REAL  |  SQL\$1REAL  |  Float  | 
|  SMALLINT  |  SQL\$1SMALLINT  |  短型  | 
|  TEXT  |  SQL\$1VARCHAR  |  字符串  | 
|  TIME  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  VARCHAR  |  SQL\$1VARCHAR  |  字符串  | 

# 使用预编译的语句支持
<a name="jdbc20-prepared-statement-support"></a>

Amazon Redshift JDBC 驱动程序支持预编译的语句。您可以使用预编译的语句来提高需要在同一连接过程中多次运行的参数化查询的性能。

*预编译的语句*是在服务器端编译但不立即运行的 SQL 语句。在关闭对象或连接之前，已编译的语句作为 PreparedStatement 对象存储在服务器上。当该对象存在时，您可以根据需要使用不同的参数值多次运行预编译的语句，而无需再次编译该语句。此操作降低了开销，可以更快地运行一组查询。

有关预编译语句的更多信息，请参阅[来自 Oracle 的 JDBC 基础知识教程](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)中的“使用预编译语句”。

您可以预编译包含多个查询的语句。例如，以下预编译语句包含两个 INSERT 查询：

```
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
MyTable VALUES (1, 'abc'); INSERT INTO CompanyTable VALUES
(1, 'abc');");
```

请注意，这些查询不依赖于在同一预编译语句内指定的其他查询的结果。由于查询在预编译步骤期间未运行，因此尚未返回结果，并且不可用于同一预编译语句中的其他查询。

例如，不允许使用以下预编译语句，该语句将创建一个表，然后将值插入到该新创建的表中：

```
PreparedStatement pstmt = conn.prepareStatement("CREATE
TABLE MyTable(col1 int, col2 varchar); INSERT INTO myTable
VALUES (1, 'abc');");
```

如果您尝试预编译此语句，服务器将返回一个错误，指出目标表 (myTable) 尚不存在。必须先运行 CREATE 查询，然后才能预编译 INSERT 查询。

# JDBC 驱动程序 2.2 版本与 1.x 版本之间的差异
<a name="jdbc20-jdbc10-driver-differences"></a>

本节介绍 JDBC 驱动程序的 2.2 和 1.x 版本返回的信息的差异。JDBC 驱动程序 1.x 版本已停产。

下表列出了由 getDatabaseProductName() 和 getDatabaseProductVersion() 函数为每个版本的 JDBC 驱动程序返回的 DatabaseMetadata 信息。JDBC 驱动程序版本 2.2 在建立连接时获取值。JDBC 驱动程序版本 1.x 通过查询获取值。


| JDBC 驱动程序版本 | getDatabaseProductName() 结果 | getDatabaseProductVersion() 结果 | 
| --- | --- | --- | 
|  2.2  |  Redshift  |  8.0.2  | 
|  1.x  |  PostgreSQL  |  08.00.0002  | 

下表列出了由 getTypeInfo 函数为每个版本的 JDBC 驱动程序返回的 DatabaseMetadata 信息。


| JDBC 驱动程序版本 | getTypeInfo 结果 | 
| --- | --- | 
|  2.2  |  与 Redshift 数据类型一致  | 
|  1.x  |  与 PostgreSQL 数据类型保持一致  | 

# 为 JDBC 驱动程序版本 2.x 创建初始化 (.ini) 文件
<a name="jdbc20-ini-file"></a>

通过对 Amazon Redshift JDBC 驱动程序版本 2.x 使用初始化 (.ini) 文件，可以指定系统级别的配置参数。例如，联合 IdP 身份验证参数可能因每个应用程序而异。.ini 文件为 SQL 客户端提供了获取所需配置参数的常见位置。

可以创建包含 SQL 客户端配置选项的 JDBC 驱动程序版本 2.x 初始化 (.ini) 文件。文件的默认名称为 `rsjdbc.ini`。JDBC 驱动程序版本 2.x 在按优先级顺序列出的以下位置检查 .ini 文件：
+ `IniFile`连接 URL 或 SQL 客户端的连接属性对话框中的 参数。请确保 `IniFile` 参数包含 .ini 文件的完整路径，其中包括文件名。有关 `IniFile` 参数的信息，请参阅 [IniFile](jdbc20-configuration-options.md#jdbc20-inifile-option)。如果 `IniFile` 参数错误地指定了 .ini 文件的位置，将显示错误。
+ 环境变量，例如具有完整路径 AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE，包括文件名。您可以使用 `rsjdbc.ini` 或指定文件名。如果 AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE 环境变量错误地指定了 .ini 文件的位置，将显示一个错误。
+ 驱动程序 JAR 文件所在的目录。
+ 用户主目录。
+ 系统的临时目录。

您可以将 .ini 文件组织成各个部分，例如 [DRIVER]。每个部分都包含键-值对，这些键-值对将指定各种连接参数。您可以使用 `IniSection` 参数来指定 .ini 文件中的部分。有关 `IniSection` 参数的信息，请参阅 [IniSection](jdbc20-configuration-options.md#jdbc20-inisection-option)。

以下是 .ini 文件格式的示例，其中包含了 [DRIVER]、[DEV]、[QA] 和 [PROD] 的部分。[DRIVER] 部分可以应用于任何连接。

```
[DRIVER]
key1=val1
key2=val2

[DEV]
key1=val1
key2=val2

[QA]
key1=val1
key2=val2

[PROD]
key1=val1
key2=val2
```

JDBC 驱动程序版本 2.x 从按优先级顺序列出的以下位置加载配置参数：
+ 应用程序代码中的默认配置参数。
+ .ini 文件中的 [DRIVER] 部分属性（如果包含）。
+ 自定义部分配置参数，如果 `IniSection` 选项在连接 URL 或 SQL 客户端的连接属性对话框中提供。
+ `getConnection` 调用中指定的连接属性对象的属性。
+ 连接 URL 中指定的配置参数。

# JDBC 驱动程序版本 2.x 配置的选项
<a name="jdbc20-configuration-options"></a>

下面，您可以找到您可以为 Amazon Redshift JDBC 驱动程序 2.2 版本指定的选项的说明。配置选项不区分大小写。

您可以使用连接 URL 设置配置属性。有关更多信息，请参阅 [构建连接 URL](jdbc20-build-connection-url.md)。

**Topics**
+ [

## AccessKeyID
](#jdbc20-accesskeyid-option)
+ [

## AllowDBUserOverride
](#jdbc20-allowdbuseroverride-option)
+ [

## App\$1ID
](#jdbc20-app-id-option)
+ [

## App\$1Name
](#jdbc20-app-name-option)
+ [

## ApplicationName
](#jdbc20-applicationname-option)
+ [

## AuthProfile
](#jdbc20-authprofile-option)
+ [

## AutoCreate
](#jdbc20-autocreate-option)
+ [

## Client\$1ID
](#jdbc20-client_id-option)
+ [

## Client\$1Secret
](#jdbc20-client_secret-option)
+ [

## ClusterID
](#jdbc20-clusterid-option)
+ [

## 压缩
](#jdbc20-compression-option)
+ [

## connectTimeout
](#jdbc20-connecttimeout-option)
+ [

## connectionTimezone
](#jdbc20-connecttimezone-option)
+ [

## databaseMetadataCurrentDbOnly
](#jdbc20-databasemetadatacurrentdbonly-option)
+ [

## DbUser
](#jdbc20-dbuser-option)
+ [

## DbGroups
](#jdbc20-dbgroups-option)
+ [

## DBNAME
](#jdbc20-dbname-option)
+ [

## defaultRowFetchSize
](#jdbc20-defaultrowfetchsize-option)
+ [

## DisableIsValidQuery
](#jdbc20-disableisvalidquery-option)
+ [

## enableFetchRingBuffer
](#jdbc20-enablefetchringbuffer-option)
+ [

## enableMultiSqlSupport
](#jdbc20-enablemultisqlsupport-option)
+ [

## fetchRingBufferSize
](#jdbc20-fetchringbuffersize-option)
+ [

## ForceLlowcase
](#jdbc20-forcelowercase-option)
+ [

## groupFederation
](#jdbc20-groupFederation-option)
+ [

## HOST
](#jdbc20-host-option)
+ [

## IAMDisableCache
](#jdbc20-iamdisablecache-option)
+ [

## IAMDuration
](#jdbc20-iamduration-option)
+ [

## Idc\$1Client\$1Display\$1Name
](#jdbc20-idc_client_display_name)
+ [

## Idc\$1Region
](#jdbc20-idc_region)
+ [

## IdP\$1Host
](#jdbc20-idp_host-option)
+ [

## IdP\$1Partition
](#jdbc20-idp_partition-option)
+ [

## IdP\$1Port
](#jdbc20-idp_port-option)
+ [

## IdP\$1Tenant
](#jdbc20-idp_tenant-option)
+ [

## IdP\$1Response\$1Timeout
](#jdbc20-idp_response_timeout-option)
+ [

## IniFile
](#jdbc20-inifile-option)
+ [

## IniSection
](#jdbc20-inisection-option)
+ [

## isServerless
](#jdbc20-isserverless-option)
+ [

## Issuer\$1Url
](#jdbc20-issuer-url)
+ [

## Listen\$1Port
](#jdbc20-listen-port)
+ [

## Login\$1URL
](#jdbc20-login_url-option)
+ [

## loginTimeout
](#jdbc20-logintimeout-option)
+ [

## loginToRp
](#jdbc20-logintorp-option)
+ [

## LogLevel
](#jdbc20-loglevel-option)
+ [

## LogPath
](#jdbc20-logpath-option)
+ [

## OverrideSchemaPatternType
](#jdbc20-override-schema-pattern-type)
+ [

## Partner\$1SPID
](#jdbc20-partner_spid-option)
+ [

## 密码
](#jdbc20-password-option)
+ [

## Plugin\$1Name
](#jdbc20-plugin_name-option)
+ [

## PORT
](#jdbc20-port-option)
+ [

## Preferred\$1Role
](#jdbc20-preferred_role-option)
+ [

## 配置文件
](#jdbc20-profile-option)
+ [

## PWD
](#jdbc20-pwd-option)
+ [

## queryGroup
](#jdbc20-querygroup-option)
+ [

## readOnly
](#jdbc20-readonly-option)
+ [

## Region
](#jdbc20-region-option)
+ [

## reWriteBatchedInserts
](#jdbc20-rewritebatchedinserts-option)
+ [

## reWriteBatchedInsertsSize
](#jdbc20-rewritebatchedinsertssize-option)
+ [

## roleArn
](#jdbc20-rolearn-option)
+ [

## roleSessionName
](#jdbc20-roleaessionname-option)
+ [

## 范围
](#jdbc20-scope-option)
+ [

## SecretAccessKey
](#jdbc20-secretaccesskey-option)
+ [

## SessionToken
](#jdbc20-sessiontoken-option)
+ [

## serverlessAcctId
](#jdbc20-serverlessacctid-option)
+ [

## serverlessWorkGroup
](#jdbc20-serverlessworkgroup-option)
+ [

## socketFactory
](#jdbc20-socketfactory-option)
+ [

## socketTimeout
](#jdbc20-sockettimeout-option)
+ [

## SSL
](#jdbc20-ssl-option)
+ [

## SSL\$1Insecure
](#jdbc20-ssl_insecure-option)
+ [

## SSLCert
](#jdbc20-sslcert-option)
+ [

## SSLFactory
](#jdbc20-sslfactory-option)
+ [

## SSLKey
](#jdbc20-sslkey-option)
+ [

## SSLMode
](#jdbc20-sslmode-option)
+ [

## SSLPassword
](#jdbc20-sslpassword-option)
+ [

## SSLRootCert
](#jdbc20-sslrootcert-option)
+ [

## StsEndpointUrl
](#jdbc20-stsendpointurl-option)
+ [

## tcpKeepAlive
](#jdbc20-tcpkeepalive-option)
+ [

## 令牌
](#jdbc20-token-option)
+ [

## token\$1type
](#jdbc20-token-type-option)
+ [

## UID
](#jdbc20-uid-option)
+ [

## 用户
](#jdbc20-user-option)
+ [

## webIdentityToken
](#jdbc20-webidentitytoken-option)

## AccessKeyID
<a name="jdbc20-accesskeyid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您可以指定此参数以输入用户或角色的 IAM 访问密钥。您通常可以通过查看现有的字符串或用户配置文件来查找密钥。如果您指定此参数，还必须指定 `SecretAccessKey` 参数。如果在 JDBC URL 中传递，则 AccessKeyID 必须采用 URL 编码。

此参数为可选的。

## AllowDBUserOverride
<a name="jdbc20-allowdbuseroverride-option"></a>
+ **默认值** - 0
+ **数据类型** – 字符串

此选项指定驱动程序是使用 SAML 断言中的 `DbUser` 值，还是连接 URL 的 `DbUser` 连接属性中指定的值。

此参数为可选的。

**1**  
驱动程序使用 SAML 断言中的 `DbUser` 值。  
如果 SAML 断言没有为 `DBUser` 指定值，则驱动程序将使用 `DBUser` 连接属性中指定的值。如果连接属性也没有指定值，则驱动程序将使用连接配置文件中指定的值。

**0**  
驱动程序使用 `DBUser` 连接属性中指定的 `DBUser` 值。  
如果 `DBUser` 连接属性没有指定值，则驱动程序将使用连接配置文件中指定的值。如果连接配置文件也没有指定值，则驱动程序将使用 SAML 断言中的值。

## App\$1ID
<a name="jdbc20-app-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Okta 提供的与您的 Amazon Redshift 应用程序关联的唯一 ID。

如果通过 Okta 服务进行身份验证，则此参数是必需的。

## App\$1Name
<a name="jdbc20-app-name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您用于验证与 Amazon Redshift 的连接的 Okta 应用程序的名称。

此参数为可选的。

## ApplicationName
<a name="jdbc20-applicationname-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

传递给 Amazon Redshift 以供审计的应用程序的名称。

此参数为可选的。

## AuthProfile
<a name="jdbc20-authprofile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于连接到 Amazon Redshift 的身份验证配置文件的名称。

此参数为可选的。

## AutoCreate
<a name="jdbc20-autocreate-option"></a>
+ **默认值** – false
+ **数据类型** – Boolean

此选项指定在指定用户不存在时驱动程序是否导致新用户被创建。

此参数为可选的。

**true**  
如果通过 `DBUser` 或唯一 ID (UID) 指定的用户不存在，则会创建具有该名称的新用户。

**false**  
驱动程序不会导致新用户被创建。如果指定的用户不存在，则身份验证将失败。

## Client\$1ID
<a name="jdbc20-client_id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

使用 Azure AD 服务对连接进行身份验证时使用的客户端 ID。

如果通过 Azure AD 服务进行身份验证，则此参数是必需的。

## Client\$1Secret
<a name="jdbc20-client_secret-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

使用 Azure AD 服务对连接进行身份验证时使用的客户端密钥。

如果通过 Azure AD 服务进行身份验证，则此参数是必需的。

## ClusterID
<a name="jdbc20-clusterid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

要连接到的 Amazon Redshift 集群的名称。驱动程序将尝试从给定主机中检测此参数。如果您使用的是网络负载均衡器 (NLB) 并通过 IAM 进行连接，驱动程序将无法检测到它，因此您可以使用此连接选项进行设置。

此参数为可选的。

## 压缩
<a name="jdbc20-compression-option"></a>
+ **默认值** – 关闭
+ **数据类型** – 字符串

用于 Amazon Redshift 服务器与客户端或驱动程序之间线路协议通信的压缩方法。

此参数为可选的。

可以指定以下值：
+ **lz4**

  将用于与 Amazon Redshift 通信的线路协议通信的压缩方法设置为 lz4。
+ **off**

  与 Amazon Redshift 通信的线路协议通信不使用压缩。

## connectTimeout
<a name="jdbc20-connecttimeout-option"></a>
+ **默认值** – 10
+ **数据类型** – 整数

用于套接字连接操作的超时值。如果建立 Amazon Redshift 连接所需的时间超过此值，则系统将该连接视为不可用。超时以秒为单位指定。值为 0 表示未指定超时。

此参数为可选的。

## connectionTimezone
<a name="jdbc20-connecttimezone-option"></a>
+ **默认值** – LOCAL
+ **数据类型** – 字符串

会话级别的时区。

此参数为可选的。

可以指定以下值：

**LOCAL**  
将会话级别的时区配置为 LOCAL JVM 时区。

**SERVER**  
将会话级别的时区配置为在 Amazon Redshift 服务器上为用户设置的时区。您可以使用以下命令为用户配置会话级别的时区：  

```
ALTER USER
[...]
SET TIMEZONE TO [...];
```

## databaseMetadataCurrentDbOnly
<a name="jdbc20-databasemetadatacurrentdbonly-option"></a>
+ **默认值** – true
+ **数据类型** – Boolean

此选项指定元数据 API 是从所有可访问的数据库中检索数据，还是仅从连接的数据库检索数据。

此参数为可选的。

可以指定以下值：

**true**  
应用程序从单个数据库中检索元数据。

**false**  
应用程序从所有可访问的数据库中检索元数据。

## DbUser
<a name="jdbc20-dbuser-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于您的 Amazon Redshift 账户的用户 ID。如果您启用了 AutoCreate 属性，则可以使用当前不存在的 ID。

此参数为可选的。

## DbGroups
<a name="jdbc20-dbgroups-option"></a>
+ **默认值** – PUBLIC
+ **数据类型** – 字符串

`DBUser` 为当前会话加入的现有数据库组名称的逗号分隔列表。

此参数为可选的。

## DBNAME
<a name="jdbc20-dbname-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

要连接的数据库的名称。您可以使用此选项在 JDBC 连接 URL 中指定数据库名称。

此参数为必需参数。您必须在连接 URL 或客户端应用程序的连接属性中指定数据库名称。

## defaultRowFetchSize
<a name="jdbc20-defaultrowfetchsize-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

此选项可指定 getFetchSize 的默认值。

此参数为可选的。

可以指定以下值：

**0**  
在单一操作中取回所有行。

**正整数**  
对于 ResultSet 的每次取回迭代，要从数据库中取回的行数。

## DisableIsValidQuery
<a name="jdbc20-disableisvalidquery-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

此选项指定驱动程序在使用 Connection.isValid() 方法来确定数据库连接是否处于活动状态时是否提交新的数据库查询。

此参数为可选的。

**true**  
驱动程序在使用 Connection.isValid() 方法来确定数据库连接是否处于活动状态时不提交查询。如果数据库服务器意外关闭，这可能会导致驱动程序错误地将数据库连接标识为活动状态。

**false**  
驱动程序在使用 Connection.isValid() 方法来确定数据库连接是否处于活动状态时提交查询。

## enableFetchRingBuffer
<a name="jdbc20-enablefetchringbuffer-option"></a>
+ **默认值** – true
+ **数据类型** – Boolean

此选项指定驱动程序使用单独线程上的环形缓冲区取回行。fetchRingBufferSize 参数指定环形缓冲区的大小。

环形缓冲区在 JDBC 中实施自动内存管理，以防止在数据检索操作期间出现内存不足（OOM）错误。环形缓冲区实时监控缓冲数据的实际大小，确保驱动程序占用的内存总量不超过定义的限制。当缓冲区达到容量上限时，驱动程序会暂停数据提取操作，无需人工干预即可防止内存溢出。这项内置保护措施可以自动消除 OOM 错误，用户无需进行任何配置。

如果事务检测到包含多个 SQL 命令（以分号分隔）的语句，则该事务的提取环形缓冲区将设置为 false。enableFetchRingBuffer 的值不变。

此参数为可选的。

**注意**  
当禁用环形缓冲区且提取大小配置不当时，可能会出现内存不足（OOM）问题。有关配置提取大小的更多信息，请参阅[此处](https://docs.aws.amazon.com/redshift/latest/dg/set-the-JDBC-fetch-size-parameter.html)。

## enableMultiSqlSupport
<a name="jdbc20-enablemultisqlsupport-option"></a>
+ **默认值** – true
+ **数据类型** – Boolean

此选项指定是否处理语句中以分号分隔的多个 SQL 命令。

此参数为可选的。

可以指定以下值：

**true**  
驱动程序处理语句对象中多个用分号分隔的 SQL 命令。

**false**  
驱动程序为单个语句中的多个 SQL 命令返回错误。

## fetchRingBufferSize
<a name="jdbc20-fetchringbuffersize-option"></a>
+ **默认值** – 1G
+ **数据类型** – 字符串

此选项指定在取回结果集时使用的环形缓冲区的大小。您可以指定以字节为单位的大小，例如 1K 表示 1 KB，5000 代表 5000 字节，1M 表示 1 MB，1G 表示 1 GB，依此类推。您还可以指定堆内存的百分比。驱动程序在达到限制时停止取回行。当应用程序读取行并释放环形缓冲区中的空间时，取回将恢复。

此参数为可选的。

## ForceLlowcase
<a name="jdbc20-forcelowercase-option"></a>
+ **默认值** – false
+ **数据类型** – Boolean

此选项指定在使用单点登录身份验证时，驱动程序是否会将从身份提供者发送到 Amazon Redshift 的所有数据库组 (DbGroup) 设为小写。

此参数为可选的。

**true**  
驱动程序会小写从身份提供者发送的所有数据库组。

**false**  
驱动程序不会更改数据库组。

## groupFederation
<a name="jdbc20-groupFederation-option"></a>
+ **默认值** – false
+ **数据类型** – Boolean

此选项指定是否使用 Amazon Redshift IDP 组。此选项由 GetClusterCredentialsV2 API 支持。

此参数为可选的。

**true**  
使用 Amazon Redshift 身份提供者 (IDP) 组。

**false**  
使用 STS API 和 GetClusterCredentials 进行用户联合身份验证，并明确指定用于连接的 DbGroups。

## HOST
<a name="jdbc20-host-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

要连接到 Amazon Redshift 服务器的主机名。您可以使用此选项在 JDBC 连接 URL 中指定主机名。

此参数为必需参数。您必须在连接 URL 或客户端应用程序的连接属性中指定主机名。

## IAMDisableCache
<a name="jdbc20-iamdisablecache-option"></a>
+ **默认值** – false
+ **数据类型** – Boolean

此选项指定是否缓存 IAM 凭证。

此参数为可选的。

**true**  
IAM 凭证不会被缓存。

**false**  
IAM 凭证将被缓存。例如，当对 API 网关的请求受到限制时，这会提高性能。

## IAMDuration
<a name="jdbc20-iamduration-option"></a>
+ **默认值** – 900
+ **数据类型** – 整数

临时 IAM 凭证过期之前的时间长度（以秒为单位）。
+ **最小值** – 900
+ **最大值 **– 3,600

此参数为可选的。

## Idc\$1Client\$1Display\$1Name
<a name="jdbc20-idc_client_display_name"></a>
+ **默认值** – Amazon Redshift JDBC 驱动程序
+ **数据类型** – 字符串

要用于使用 BrowserIdcAuthPlugin 的客户端的显示名称。

此参数为可选的。

## Idc\$1Region
<a name="jdbc20-idc_region"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

IAM Identity Center 实例所在的 AWS 区域。

只有在 plugin\$1name 配置选项中使用 `BrowserIdcAuthPlugin` 进行身份验证时，才需要此参数。

## IdP\$1Host
<a name="jdbc20-idp_host-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您用于对 Amazon Redshift 进行身份验证的 IdP（身份提供者）主机。该选项可以在连接字符串或配置文件中指定。

此参数为可选的。

## IdP\$1Partition
<a name="jdbc20-idp_partition-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

指定在其中配置身份提供者（IdP）的云分区。这决定了驱动程序连接到哪个 IdP 身份验证端点。

如果将此参数留空，则驱动程序默认为商业分区。可能的值有：
+  `us-gov`：如果在 Azure Government 中配置了 IdP，请使用此值。例如，Azure AD Government 使用端点 `login.microsoftonline.us`。
+  `cn`：如果在中国云分区中配置了 IdP，请使用此值。例如，Azure AD China 使用 `login.chinacloudapi.cn` 端点。

此参数为可选的。

## IdP\$1Port
<a name="jdbc20-idp_port-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

IdP（身份提供者）使用的端口。您可以在连接字符串或配置文件中指定端口。默认端口为 5439。根据您在创建、修改或迁移集群时选择的端口，允许访问所选端口。

此参数为可选的。

## IdP\$1Tenant
<a name="jdbc20-idp_tenant-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

适用于您的 Amazon Redshift 应用程序的 Azure AD 租户 ID。

如果通过 Azure AD 服务进行身份验证，则此参数是必需的。

## IdP\$1Response\$1Timeout
<a name="jdbc20-idp_response_timeout-option"></a>
+ **默认值** – 120
+ **数据类型** – 整数

当通过浏览器插件使用 SAML 或 Azure AD 服务时，驱动程序等待身份提供者发出 SAML 响应的时间（以秒为单位）。

此参数为可选的。

## IniFile
<a name="jdbc20-inifile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

.ini 文件的完整路径，包括文件名。例如：

```
IniFile="C:\tools\rsjdbc.ini"
```

有关 .ini 文件的信息，请参阅[为 JDBC 驱动程序版本 2.x 创建初始化 (.ini) 文件](jdbc20-ini-file.md)。

此参数为可选的。

## IniSection
<a name="jdbc20-inisection-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

.ini 文件中包含配置选项的部分的名称。有关 .ini 文件的信息，请参阅[为 JDBC 驱动程序版本 2.x 创建初始化 (.ini) 文件](jdbc20-ini-file.md)。

以下示例指定 .ini 文件的 [Prod] 部分：

```
IniSection="Prod"
```

此参数为可选的。

## isServerless
<a name="jdbc20-isserverless-option"></a>
+ **默认值** – false
+ **数据类型** – Boolean

此选项指定 Amazon Redshift 端点主机是否为无服务器实例。驱动程序将尝试从给定主机中检测此参数。如果您使用的是网络负载均衡器 (NLB)，则驱动程序将无法检测到它，因此您可以在此处对其进行设置。

此参数为可选的。

**true**  
Amazon Redshift 端点主机是一个无服务器实例。

**false**  
Amazon Redshift 端点主机是一个预置集群。

## Issuer\$1Url
<a name="jdbc20-issuer-url"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

指向 AWS IAM Identity Center 服务器的实例端点。

只有在 plugin\$1name 配置选项中使用 `BrowserIdcAuthPlugin` 进行身份验证时，才需要此参数。

## Listen\$1Port
<a name="jdbc20-listen-port"></a>
+ **默认值**：7890
+ **数据类型** – 整数

通过浏览器插件使用 SAML、Azure AD 或 AWS Identity Center 服务时，驱动程序用于接收来自身份提供者的 SAML 响应或授权代吗的端口。

此参数为可选的。

## Login\$1URL
<a name="jdbc20-login_url-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

通过浏览器插件使用 SAML 或 Azure AD 服务时，身份提供者网站上的资源 URL。

如果通过浏览器插件使用 SAML 或 Azure AD 服务进行身份验证，则此参数是必需的。

## loginTimeout
<a name="jdbc20-logintimeout-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

连接服务器并对服务器进行身份验证时发生超时前等待的秒数。如果建立连接的用时长于此阈值，则连接将被中止。

当此属性设置为 0 时，连接不会发生超时。

此参数为可选的。

## loginToRp
<a name="jdbc20-logintorp-option"></a>
+ **默认值** – `urn:amazon:webservices`
+ **数据类型** – 字符串

要用于 AD FS 身份验证类型的信赖方信任。

此参数为可选的。

## LogLevel
<a name="jdbc20-loglevel-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

使用此属性可以打开或关闭驱动程序中的日志记录并指定包含在日志文件中的详细信息量。

只有启用足够长的日志记录才能捕获问题。日志记录会降低性能，并会占用大量磁盘空间。

此参数为可选的。

将参数设置为以下值之一：

**0**  
禁用所有日志记录。

**1**  
启用 FATAL 级别的日志记录，该级别日志记录将记录导致驱动程序中止的非常严重错误事件。

**2**  
启用 ERROR 级别的日志记录，该级别日志记录将记录可能仍然允许驱动程序继续运行的错误事件。

**3**  
启用 WARNING 级别的日志记录，该级别日志记录将记录在未执行操作时可能导致错误的事件。

**4**  
启用 INFO 级别的日志记录，该级别日志记录将记录描述驱动程序进程的一般信息。

**5**  
启用 DEBUG 级别的日志记录，该级别日志记录将记录对调试驱动程序很有用的详细信息。

**6**  
启用 TRACE 级别的日志记录，该级别日志记录将记录所有驱动程序活动。

启用日志记录后，驱动程序会在 `LogPath` 属性指定的位置生成以下日志文件：
+ **`redshift_jdbc.log`**：记录不特定于连接的驱动程序活动的文件。
+ **`redshift_jdbc_connection_[Number].log`** – 与数据库建立的每个连接的文件，其中 `[Number]` 是区分每个日志文件和其他日志文件的数字。此文件记录特定于连接的驱动程序活动。

如果 LogPath 值无效，则驱动程序将记录的信息发送到标准输出流 `System.out`。

## LogPath
<a name="jdbc20-logpath-option"></a>
+ **默认值** – 当前工作目录。
+ **数据类型** – 字符串

启用 DSILogLevel 属性时驱动程序保存日志文件所在的文件夹的完整路径。

为了确保连接 URL 与所有 JDBC 应用程序兼容，我们建议您通过键入另一个反斜杠来转义文件路径中的反斜杠 (\$1)。

此参数为可选的。

## OverrideSchemaPatternType
<a name="jdbc20-override-schema-pattern-type"></a>
+ **默认值** – null
+ **数据类型** – 整数

此选项指定是否覆盖在 getTables 调用中使用的查询类型。

**0**  
无模式通用查询

**1**  
本地模式查询

**2**  
外部模式查询

此参数为可选的。

## Partner\$1SPID
<a name="jdbc20-partner_spid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

在使用 PingFederate 服务验证连接时使用的合作伙伴 SPID（服务提供商 ID）值。

此参数为可选的。

## 密码
<a name="jdbc20-password-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

使用 IAM 身份验证通过 IDP 进行连接时，它是 IDP\$1Host 服务器的密码。使用标准身份验证时，它可用于 Amazon Redshift 数据库密码，而不是 PWD。

此参数为可选的。

## Plugin\$1Name
<a name="jdbc20-plugin_name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

实施特定凭证提供程序插件的完全限定类名称。

此参数为可选的。

以下提供程序选项受支持：
+ **`AdfsCredentialsProvider`** – Active Directory 联合身份验证服务。
+ **`AzureCredentialsProvider`** – Microsoft Azure Active Directory（AD）服务。
+ **`BasicJwtCredentialsProvider`** – JSON Web Token（JWT）服务。
+ **`BasicSamlCredentialsProvider`** – 您可以与许多 SAML 服务提供商一起使用的安全断言标记语言（SAML）凭据。
+ **`BrowserAzureCredentialsProvider`** – 浏览器 Microsoft Azure Active Directory（AD）服务。
+ ** `BrowserAzureOAuth2CredentialsProvider` **–用于本机身份验证的浏览器 Microsoft Azure Active Directory（AD）服务。
+ **`BrowserIdcAuthPlugin`** – 使用 AWS IAM Identity Center 的授权插件。
+ **`BrowserSamlCredentialsProvider`** – 用于 SAML 服务（如 Okta、Ping 或 ADFS）的浏览器 SAML。
+ **`IdpTokenAuthPlugin`** – 一种授权插件，可接受 AWS IAM Identity Center 令牌，或者基于 OpenID Connect（OIDC）JSON 的身份令牌（JWT），该令牌由与 AWS IAM Identity Center 关联的任意 Web 身份提供者提供。
+ **`OktaCredentialsProvider`** – Okta 服务。
+ **`PingCredentialsProvider`** – PingFederate 服务。

## PORT
<a name="jdbc20-port-option"></a>
+ **默认值** – null
+ **数据类型** – 整数

要连接到 Amazon Redshift 服务器的端口。您可以使用此选项在 JDBC 连接 URL 中指定端口。

此参数为可选的。

## Preferred\$1Role
<a name="jdbc20-preferred_role-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您希望在 Amazon Redshift 连接期间代入的 IAM 角色。

此参数为可选的。

## 配置文件
<a name="jdbc20-profile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于 IAM 身份验证的配置文件的名称。此配置文件包含未在连接字符串中指定的任何其他连接属性。

此参数为可选的。

## PWD
<a name="jdbc20-pwd-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

与您使用属性 UID 提供的 Amazon Redshift 用户名相对应的密码。

此参数为可选的。

## queryGroup
<a name="jdbc20-querygroup-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

此选项通过将查询分配到相应的查询组在运行时向队列分配查询。将为会话设置查询组。在连接上运行的所有查询都属于此查询组。

此参数为可选的。

## readOnly
<a name="jdbc20-readonly-option"></a>
+ **默认值** – false
+ **数据类型** – Boolean

此属性指定驱动程序是否处于只读模式。

此参数为可选的。

**true**  
连接处于只读模式，无法写入数据存储。

**false**  
连接不处于只读模式，可以写入数据存储。

## Region
<a name="jdbc20-region-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

此选项指定集群所在的 AWS 区域。如果指定 StsEndPoint 选项，则会忽略“区域”选项。Redshift `GetClusterCredentials` API 操作也使用“区域”选项。

此参数为可选的。

## reWriteBatchedInserts
<a name="jdbc20-rewritebatchedinserts-option"></a>
+ **默认值** – false
+ **数据类型** – Boolean

通过此选项，可以优化批处理的兼容 INSERT 语句的重写和合并。

此参数为可选的。

## reWriteBatchedInsertsSize
<a name="jdbc20-rewritebatchedinsertssize-option"></a>
+ **默认值** – 128
+ **数据类型** – 整数

通过此选项，可以优化批处理的兼容 INSERT 语句的重写和合并。此值必须以 2 为幂呈指数增加。

此参数为可选的。

## roleArn
<a name="jdbc20-rolearn-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

角色的 Amazon 资源名称（ARN）。在为 Plugin\$1Name 选项指定 BasicJwtCredentialsProvider 时，请确保指定此参数。采用以下格式指定 ARN：

`arn:partition:service:region:account-id:resource-id`

如果您为 Plugin\$1Name 选项指定 BasicJwtCredentialsProvider，则此参数为必需项。

## roleSessionName
<a name="jdbc20-roleaessionname-option"></a>
+ **默认值** – jwt\$1redshift\$1session
+ **数据类型** – 字符串

所代入角色会话的标识符。通常，您可以传递与应用程序用户关联的名称或标识符。您的应用程序使用的临时安全凭证与该用户相关联。在为 Plugin\$1Name 选项指定 BasicJwtCredentialsProvider 时，您可以指定此参数。

此参数为可选的。

## 范围
<a name="jdbc20-scope-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用户可以同意的范围列表，以空格分隔。您可以指定此参数，以便 Microsoft Azure 应用程序可以获得您想调用的 API 的同意。在为 Plugin\$1Name 选项指定 BrowserAzureOAuth2CredentialsProvider 时，您可以指定此参数。

此参数是 BrowserAzureOAuth2CredentialsProvider 插件必需的。

## SecretAccessKey
<a name="jdbc20-secretaccesskey-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用户或角色的 IAM 访问密钥。如果指定了此选项，则还必须指定 AccessKeyID。如果在 JDBC URL 中传递，则 SecretAccessKey 必须采用 URL 编码。

此参数为可选的。

## SessionToken
<a name="jdbc20-sessiontoken-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

与您用于身份验证的 IAM 角色关联的临时 IAM 会话令牌。如果在 JDBC URL 中传递，则临时 IAM 会话令牌必须采用 URL 编码。

此参数为可选的。

## serverlessAcctId
<a name="jdbc20-serverlessacctid-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

Amazon Redshift Serverless 账户 ID。驱动程序将尝试从给定主机中检测此参数。如果您使用的是网络负载均衡器 (NLB)，则驱动程序将无法检测到它，因此您可以在此处对其进行设置。

此参数为可选的。

## serverlessWorkGroup
<a name="jdbc20-serverlessworkgroup-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

Amazon Redshift Serverless 工作组名称。驱动程序将尝试从给定主机中检测此参数。如果您使用的是网络负载均衡器 (NLB)，则驱动程序将无法检测到它，因此您可以在此处对其进行设置。

此参数为可选的。

## socketFactory
<a name="jdbc20-socketfactory-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

此选项指定了用于创建套接字的套接字产生组件。

此参数为可选的。

## socketTimeout
<a name="jdbc20-sockettimeout-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

套接字读取操作发生超时前等待的秒数。如果操作用时长于此阈值，则连接将被关闭。当此属性设置为 0 时，连接不会发生超时。

此参数为可选的。

## SSL
<a name="jdbc20-ssl-option"></a>
+ **默认值** – TRUE
+ **数据类型** – 字符串

使用此属性可以打开或关闭连接的 SSL。

此参数为可选的。

可以指定以下值：

**TRUE**  
驱动程序通过 SSL 连接到服务器。

**FALSE**  
驱动程序在不使用 SSL 的情况下连接到服务器。IAM 身份验证不支持此选项。

或者，您也可以配置 AuthMech 属性。

## SSL\$1Insecure
<a name="jdbc20-ssl_insecure-option"></a>
+ **默认值** – true
+ **数据类型** – 字符串

此属性指示是否应验证 IDP 主机服务器证书。

此参数为可选的。

可以指定以下值：

**true**  
驱动程序不检查 IDP 服务器证书的真实性。

**false**  
驱动程序检查 IDP 服务器证书的真实性。

## SSLCert
<a name="jdbc20-sslcert-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

.pem 或 .crt 文件的完整路径，其中包含在使用 SSL 时用于验证 Amazon Redshift 服务器实例的其他受信任 CA 证书。

如果指定了 SSLKey，则此参数为必填项。

## SSLFactory
<a name="jdbc20-sslfactory-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

在不使用服务器证书的情况下，通过 TLS/SSL 连接到服务器时使用的 SSL 出厂设置。

## SSLKey
<a name="jdbc20-sslkey-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

.der 文件的完整路径，包含用于验证 SSLCert 中指定的证书的 PKCS8 密钥文件。

如果指定了 SSLCert，则此参数为必填项。

## SSLMode
<a name="jdbc20-sslmode-option"></a>
+ **默认值** – verify-ca
+ **数据类型** – 字符串

使用此属性指定启用 TLS/SSL 时驱动程序如何验证证书。

此参数为可选的。

可以指定以下值：

**verify-ca**  
驱动程序验证证书是否来自受信任的证书颁发机构 (CA)。

**verify-full**  
驱动程序验证证书来自受信任的 CA，以及证书中的主机名是否与连接 URL 中指定的主机名匹配。

## SSLPassword
<a name="jdbc20-sslpassword-option"></a>
+ **默认值** - 0
+ **数据类型** – 字符串

在 SSLKey 中指定的加密密钥文件的密码。

如果指定了 SSLKey 且对密钥文件进行了加密，则此参数为必填项。

## SSLRootCert
<a name="jdbc20-sslrootcert-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

.pem 或 .crt 文件的完整路径，其中包含在使用 SSL 时用于验证 Amazon Redshift 服务器实例的根 CA 证书。

## StsEndpointUrl
<a name="jdbc20-stsendpointurl-option"></a>
+ **默认值** – null
+ **数据类型** – 字符串

您可以指定 AWS Security Token Service (AWS STS) 端点。如果指定此选项，则“区域”选项将被忽略。您只能为此端点指定安全协议 (HTTPS)。

## tcpKeepAlive
<a name="jdbc20-tcpkeepalive-option"></a>
+ **默认值** – TRUE
+ **数据类型** – 字符串

使用此属性可打开或关闭 TCP Keepalive。

此参数为可选的。

可以指定以下值：

**TRUE**  
驱动程序将使用 TCP Keepalive 来防止连接超时。

**FALSE**  
驱动程序不使用 TCP Keepalive。

## 令牌
<a name="jdbc20-token-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

AWS IAM Identity Center 提供的访问令牌，或 OpenID Connect（OIDC）JSON Web 令牌（JWT，JSON Web Token），该令牌由与 AWS IAM Identity Center 关联的 Web 身份提供者提供。您的应用程序必须通过 AWS IAM Identity Center 或与 AWS IAM Identity Center 关联的身份提供者，对您的应用程序用户进行身份验证，从而生成此令牌。

此参数可用于 `IdpTokenAuthPlugin`。

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

`IdpTokenAuthPlugin` 中使用的令牌类型。

可以指定以下值：

**ACCESS\$1TOKEN**  
如果您使用 AWS IAM Identity Center 提供的访问令牌，请输入此项。

**EXT\$1JWT**  
如果您使用 OpenID Connect（OIDC）JSON Web 令牌（JWT）（该令牌由与 AWS IAM Identity Center 集成的基于 Web 的身份提供者提供），请输入此项。

此参数可用于 `IdpTokenAuthPlugin`。

## UID
<a name="jdbc20-uid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于访问数据库的数据库用户名。

此参数为必需参数。

## 用户
<a name="jdbc20-user-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

通过 IDP 使用 IAM 身份验证进行连接时，这是 idp\$1host 服务器的用户名。使用标准身份验证时，这可用于 Amazon Redshift 数据库用户名。

此参数为可选的。

## webIdentityToken
<a name="jdbc20-webidentitytoken-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

身份提供者提供的 OAuth 2.1 访问令牌或 OpenID Connect ID 令牌。您的应用程序必须通过 Web 身份提供者对您的应用程序用户进行身份验证来获取此令牌。在为 Plugin\$1Name 选项指定 BasicJwtCredentialsProvider 时，请确保指定此参数。

如果您为 Plugin\$1Name 选项指定 BasicJwtCredentialsProvider，则此参数为必填项。

# JDBC 驱动程序版本 2.x 的以前版本
<a name="jdbc20-previous-driver-version-20"></a>

仅当您的工具需要使用某个特定版本的驱动程序时，才能下载 Amazon Redshift JDBC 驱动程序版本 2.x 的以前版本。

以下是以前的与 JDBC 4.2 兼容的 JDBC 驱动程序版本 2.x 驱动程序：
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip) 

# Amazon Redshift Python 连接器
<a name="python-redshift-driver"></a>

通过使用适用于 Python 的 Amazon Redshift 连接器，您可以将工作与[适用于 Python 的 AWS SDK（Boto3）](https://github.com/boto/boto3)以及 Pandas 和 Numerical Python（NumPy）集成。有关 pandas 的更多信息，请参阅 [pandas GitHub 存储库](https://github.com/pandas-dev/pandas)。有关 NumPy 的更多信息，请参阅 [NumPy GitHub 存储库](https://github.com/numpy/numpy)。

Amazon Redshift Python 连接器提供了一个开源解决方案。您可以浏览源代码、请求增强功能、报告问题和提供文章。

要使用 Amazon Redshift Python 连接器，请确保使用 Python 3.6 或更高版本。有关更多信息，请参阅[Amazon Redshift Python 驱动程序许可协议](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE)。

Amazon Redshift Python 连接器提供以下内容：
+ AWS Identity and Access Management（IAM）身份验证 有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](redshift-iam-authentication-access-control.md)。
+ 使用联合 API 访问进行身份提供者身份验证 企业身份提供者支持联合 API 访问，如下所示：
  + Azure AD 有关更多信息，请参阅 AWS 大数据博客文章 [Federate Amazon Redshift access with Microsoft Azure AD single sign-on](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/)。
  + Active Directory 联合身份验证服务 有关更多信息，请参阅 AWS 大数据博客文章 [Federate access to your Amazon Redshift cluster with Active Directory Federation Services (AD FS): Part 1](https://aws.amazon.com/blogs/big-data/federate-access-to-your-amazon-redshift-cluster-with-active-directory-federation-services-ad-fs-part-1/)。
  + Okta。有关更多信息，有关更多信息，请参阅 AWS 大数据博客文章 [Federate Amazon Redshift access with Okta as an identity provider](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/)。
  + PingFederate。有关更多信息，请参阅 [PingFederate 站点](https://www.pingidentity.com/en/software/pingfederate.html)。
  + JumpCloud。有关的更多信息，请参阅 [JumpCloud 站点](https://jumpcloud.com/)。
+ Amazon Redshift 数据类型。

Amazon Redshift Python 连接器实施 Python 数据库 API 规范 2.0。有关更多信息，请参阅 Python 网站上的 [PEP 249 – Python 数据库 API 规范 v2.0](https://www.python.org/dev/peps/pep-0249/)。

**Topics**
+ [

# 安装 Amazon Redshift Python 连接器
](python-driver-install.md)
+ [

# Amazon Redshift Python 连接器的配置选项
](python-configuration-options.md)
+ [

# 导入 Python 连接器
](python-start-import.md)
+ [

# 将 Python 连接器与 NumPy 集成
](python-connect-integrate-numpy.md)
+ [

# 将 Python 连接器与 pandas 集成
](python-connect-integrate-pandas.md)
+ [

# 使用身份提供者插件
](python-connect-identity-provider-plugins.md)
+ [

# 使用 Amazon Redshift Python 连接器的示例
](python-connect-examples.md)
+ [

# Amazon Redshift Python 连接器的 API 参考
](python-api-reference.md)

# 安装 Amazon Redshift Python 连接器
<a name="python-driver-install"></a>

您可以使用以下任意一种方法安装 Amazon Redshift Python 连接器：
+ Python 包索引（PyPI）
+ Conda
+ 克隆 GitHub 存储库

## 从 PyPI 安装 Python 连接器
<a name="python-pip-install-pypi"></a>

要从 Python 包索引（PyPI）安装 Python 连接器，您可以使用 pip。要执行此操作，请运行以下命令。

```
>>> pip install redshift_connector
```

您可以在虚拟环境中安装连接器。要执行此操作，请运行以下命令。

```
>>> pip install redshift_connector
```

或者，你可以用连接器安装 pandas 和 NumPy。

```
>>> pip install 'redshift_connector[full]'
```

有关 pip 的更多信息，请参阅 [pip 站点](https://pip.pypa.io/en/stable/)。

## 从 Conda 安装 Python 连接器
<a name="python-pip-install-from-conda"></a>

你可以从 Anaconda.org 安装 Python 连接器。

```
>>>conda install -c conda-forge redshift_connector
```

## 通过从 AWS 中克隆 GitHub 存储库来安装 Python 连接器
<a name="python-pip-install-from-source"></a>

要从源代码安装 Python 连接器，请从 AWS 克隆 GitHub 存储库。安装 Python 和 virtualenv 之后，通过运行以下命令来设置环境并安装所需的依赖项。

```
$ git clone https://github.com/aws/amazon-redshift-python-driver.git
$ cd amazon-redshift-python-driver
$ virtualenv venv
$ . venv/bin/activate
$ python -m pip install -r requirements.txt
$ python -m pip install -e .
$ python -m pip install redshift_connector
```

# Amazon Redshift Python 连接器的配置选项
<a name="python-configuration-options"></a>

下面，您可以找到您可以为 Amazon Redshift Python 连接器指定的选项的说明。除非另有说明，否则以下选项适用于最新的可用连接器版本。

## access\$1key\$1id
<a name="python-access-key-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

为 IAM 数据库身份验证配置的 IAM 角色或用户的访问密钥 ID。

此参数为可选的。

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

True  
指定连接器使用安全断言标记语言（SAML）断言中的 `DbUser` 值。

False  
指定使用 `DbUser` 连接参数中的值。

此参数为可选的。

## app\$1name
<a name="python-app-name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于身份验证的身份提供者（IdP）应用程序的名称。

此参数为可选的。

## application\$1name
<a name="python-application_name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

传递给 Amazon Redshift 以供审计的客户端应用程序的名称。您提供的应用程序名称显示在 [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html) 表的“application\$1name”列中。这有助于在调试问题时跟踪连接源并对其进行故障排除。

此参数为可选的。

## auth\$1profile
<a name="python-auth-profile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

连接属性为 JSON 的 Amazon Redshift 身份验证配置文件的名称。有关命名连接参数的更多信息，请参阅 `RedshiftProperty` 类。`RedshiftProperty` 类存储由最终用户提供的连接参数，如果适用，在 IAM 身份验证过程中生成（例如，临时 IAM 凭证）。有关更多信息，请参阅 [RedshiftProperty 类](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9)。

此参数为可选项。

## auto\$1create
<a name="python-auto-create-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

一个值，指示在用户不存在的情况下是否创建用户。

此参数为可选的。

## client\$1id
<a name="python-client-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Azure IdP 中的客户端 ID。

此参数为可选的。

## client\$1secret
<a name="python-client-secret-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Azure IdP 中的客户端密钥。

此参数为可选的。

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Amazon Redshift 集群的集群标识符。

此参数为可选的。

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

对 Amazon Redshift 进行身份验证的 IdP。有效值如下所示：
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin` – 使用 AWS IAM Identity Center 的授权插件。
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin` – 一种授权插件，可接受 AWS IAM Identity Center 令牌，或者基于 OpenID Connect（OIDC）JSON 的身份令牌（JWT），该令牌由与 AWS IAM Identity Center 关联的任意 Web 身份提供者提供。
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

此参数为可选的。

## database
<a name="python-database-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

要连接到的数据库的名称。

此参数为必需参数。

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **默认值** – True
+ **数据类型** – Boolean

一个值，指示应用程序是否支持多数据库数据共享目录。默认值 True 表示应用程序不支持多数据库数据共享目录以实现向后兼容性。

此参数为可选的。

## db\$1groups
<a name="python-db-groups-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

DbUser 指示的用户为当前会话加入的现有数据库组名称的逗号分隔列表。

此参数为可选的。

## db\$1user
<a name="python-db-user-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于 Amazon Redshift 的用户 ID。

此参数为可选的。

## endpoint\$1url
<a name="python-endpoint-url-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Amazon Redshift 端点 URL。此选项仅供 AWS 内部使用。

此参数为可选的。

## group\$1federation
<a name="python-group-federation-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

此选项指定是否使用 Amazon Redshift IDP 组。

此参数为可选的。

**true**  
使用 Amazon Redshift 身份提供者 (IDP) 组。

**false**  
使用 STS API 和 GetClusterCredentials 进行用户联合身份验证，并指定用于连接的 **db\$1groups**。

## host
<a name="python-host-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Amazon Redshift 集群的主机名。

此参数为可选的。

## IAM
<a name="python-iam-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

IAM 身份验证已启用。

此参数为必需参数。

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

此选项指定是否缓存 IAM 凭证。IAM 凭证将默认被缓存。当对 API 网关的请求受到限制时，这样可以提高性能。

此参数为可选的。

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **默认值** – Amazon Redshift Python 连接器
+ **数据类型** – 字符串

要用于使用 BrowserIdcAuthPlugin 的客户端的显示名称。

此参数为可选的。

## idc\$1region
<a name="python-idc_region"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

AWS IAM Identity Center 实例所在的 AWS 区域。

只有在 credentials\$1provider 配置选项中使用 `BrowserIdcAuthPlugin` 进行身份验证时，才需要此参数。

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

指定在其中配置身份提供者（IdP）的云分区。这决定了驱动程序连接到哪个 IdP 身份验证端点。

如果将此参数留空，则驱动程序默认为商业分区。可能的值有：
+  `us-gov`：如果在 Azure Government 中配置了 IdP，请使用此值。例如，Azure AD Government 使用端点 `login.microsoftonline.us`。
+  `cn`：如果在中国云分区中配置了 IdP，请使用此值。例如，Azure AD China 使用 `login.chinacloudapi.cn` 端点。

此参数为可选的。

## idpPort
<a name="python-idp-port-option"></a>
+ **默认值** – 7890
+ **数据类型** – 整数

IdP 将 SAML 断言发送到的侦听端口。

此参数为必需参数。

## idp\$1response\$1timeout
<a name="python-idp-response-timeout-option"></a>
+ **默认值** – 120
+ **数据类型** – 整数

从 IdP 检索 SAML 断言的超时时间。

此参数为必需参数。

## idp\$1tenant
<a name="python-idp-tenant-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

IdP 租户。

此参数为可选的。

## issuer\$1url
<a name="python-issuer_url"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

 指向 AWS IAM Identity Center 服务器的实例端点。

只有在 credentials\$1provider 配置选项中使用 `BrowserIdcAuthPlugin` 进行身份验证时，才需要此参数。

## listen\$1port
<a name="python-listen-port-option"></a>
+ **默认值** – 7890
+ **数据类型** – 整数

通过浏览器插件使用 SAML、Azure AD 或 AWS IAM Identity Center 服务时，驱动程序用于接收来自身份提供者的 SAML 响应的端口。

此参数为可选的。

## login\$1url
<a name="python-login-url-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

IdP 的单点登录 Url。

此参数为可选的。

## max\$1prepared\$1statements
<a name="python-max-prepared-statements-option"></a>
+ **默认值**：1000
+ **数据类型** – 整数

每个连接将缓存的最大预处理语句数。将该参数设置为 0 将禁用缓存机制。为此参数输入负数会将其设置为默认值。

此参数为可选的。

## numeric\$1to\$1float
<a name="python-numeric-to-float-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

此选项指定连接器是否将数字数据类型值从 decimal.Decimal 转换为浮点数。默认情况下，连接器将数字数据类型值作为 decimal.Decimal 接收，而不会转换它们。

我们不建议为需要精确度的用例启用 numeric\$1to\$1float（数字转浮点），因为结果可能会四舍五入。

有关 decimal.Decimal 以及它与浮点数之间的权衡的更多信息，请参阅 Python 网站上的 [decimal — 十进制定点和浮点算术](https://docs.python.org/3/library/decimal.html)。

此参数为可选的。

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于 Ping 身份验证的合作伙伴 SP ID。

此参数为可选的。

## password
<a name="python-password-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于身份验证的密码。

此参数为可选的。

## port
<a name="python-port-option"></a>
+ **默认值** – 5439
+ **数据类型** – 整数

Amazon Redshift 集群的端口号。

此参数为必需参数。

## preferred\$1role
<a name="python-preferred-role-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

当前连接首选的 IAM 角色。

此参数为可选的。

## principal\$1arn
<a name="python-principal-arn-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

要为其生成策略的用户或 IAM 角色的 Amazon 资源名称（ARN）。建议您将策略附加到角色，然后将该角色分配给用户以进行访问。

此参数为可选的。

## 配置文件
<a name="python-profile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

包含 AWS 凭据的 AWS 凭据文件中的配置文件的名称。

此参数为可选的。

## provider\$1name
<a name="python-provider_name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Redshift 本机验证提供程序的名称。

此参数为可选的。

## region
<a name="python-region-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

集群所在的 AWS 区域。

此参数为可选的。

## role\$1arn
<a name="python-role-arn-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

调用方承担的角色的 Amazon 资源名称（ARN）。此参数由 `JwtCredentialsProvider` 指示的提供程序使用。

对于 `JwtCredentialsProvider` 提供商，此参数为必填项。否则，此参数位可选项。

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **默认值** – jwt\$1redshift\$1session
+ **数据类型** – 字符串

所代入角色会话的标识符。通常，您可以传递与使用您的应用程序的用户关联的名称或标识符。您的应用程序使用的临时安全凭证与该用户相关联。此参数由 `JwtCredentialsProvider` 指示的提供程序使用。

此参数为可选的。

## 范围
<a name="python-scope-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用户可以同意的范围列表，以空格分隔。您可以指定此参数，以便应用程序可以获得您想调用的 API 的同意。在为 credentials\$1provider 选项指定 BrowserAzureOAuth2CredentialsProvider 时，您可以指定此参数。

此参数是 BrowserAzureOAuth2CredentialsProvider 插件必需的。

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

为 IAM 数据库身份验证配置的 IAM 角色或用户的秘密访问密钥。

此参数为可选的。

## session\$1token
<a name="python-session-token-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

为 IAM 数据库身份验证配置的 IAM 角色或用户的访问密钥 ID。如果使用临时 AWS 凭证，则需要此参数。

此参数为可选的。

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Amazon Redshift Serverless 账户 ID。

此参数为可选的。

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Amazon Redshift Serverless 工作组名称。

此参数为可选的。

## ssl
<a name="python-ssl-option"></a>
+ **默认值** – True
+ **数据类型** – Boolean

已启用安全套接字层（SSL） 

此参数为必需参数。

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **默认值** – False
+ **数据类型** – Boolean

指定是否禁用 IdP 主机的服务器 SSL 证书验证的值。将此参数设置为 True，将禁用对 IdP 主机的服务器 SSL 证书的验证。我们建议您在生产环境中保持默认值 False。

此参数为可选的。

## sslmode
<a name="python-sslmode-option"></a>
+ **默认值** – verify-ca
+ **数据类型** – 字符串

与 Amazon Redshift 的连接的安全性。您可以指定以下任一值：
+ verify-ca
+ verify-full

此参数为必需参数。

## tcp\$1keepalive
<a name="python-tcp_keepalive-option"></a>
+ **默认值** – True
+ **数据类型** – Boolean

是否使用 TCP keepalive 来防止连接超时。可以指定以下值：
+ True：驱动程序将使用 TCP keepalive 来防止连接超时。
+ False：驱动程序不使用 TCP Keepalive。

此参数为可选的。

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **默认值** – 无
+ **数据类型** – 整数

所发送的未确认探测器的数量，超过此数量后将连接视为不活动。例如，将该值设置为 3 意味着，驱动程序在发送了 3 个未回应的 keepalive 数据包之后，就会确定连接不再处于活动状态。

如果未指定此参数，Amazon Redshift 将使用系统默认值。

此参数为可选的。

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **默认值** – 无
+ **数据类型** – 整数

驱动程序在未收到上一个探测器的确认时，发送后续 keepalive 探测器时的间隔（以秒为单位）。指定此参数时，必须使用正整数。

如果未指定此参数，Amazon Redshift 将使用系统默认值。

此参数为可选的。

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **默认值** – 无
+ **数据类型** – 整数

不活动的持续时间（以秒为单位），驱动程序将在此时间之后发送第一个 keepalive 探测器。例如，将该值设置为 120 意味着，对于不活动状态，驱动程序将会等待 2 分钟，然后发送第一个 keepalive 数据包。指定此参数时，必须使用正整数。

如果未指定此参数，Amazon Redshift 将使用系统默认值。

此参数为可选的。

## timeout
<a name="python-timeout-option"></a>
+ **默认值** – 无
+ **数据类型** – 整数

连接服务器时发生超时前等待的秒数。

此参数为可选的。

## 令牌
<a name="python-token-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

AWS IAM Identity Center 提供的访问令牌，或 OpenID Connect（OIDC）JSON Web 令牌（JWT，JSON Web Token），该令牌由与 AWS IAM Identity Center 关联的 Web 身份提供者提供。您的应用程序必须通过 AWS IAM Identity Center 或与 AWS IAM Identity Center 关联的身份提供者，对您的应用程序用户进行身份验证，从而生成此令牌。

此参数可用于 `IdpTokenAuthPlugin`。

## token\$1type
<a name="python-token_type-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

`IdpTokenAuthPlugin` 中使用的令牌类型。

可以指定以下值：

**ACCESS\$1TOKEN**  
如果您使用 AWS IAM Identity Center 提供的访问令牌，请输入此项。

**EXT\$1JWT**  
如果您使用 OpenID Connect（OIDC）JSON Web 令牌（JWT）（该令牌由与 AWS IAM Identity Center 集成的基于 Web 的身份提供者提供），请输入此项。

此参数可用于 `IdpTokenAuthPlugin`。

## 用户
<a name="python-user-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于身份验证的用户名。

此参数为可选的。

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

身份提供者提供的 OAuth 2.0 访问令牌或 OpenID Connect ID 令牌。通过使用 Web 身份提供者对使用您的应用程序的用户进行身份验证，确保您的应用程序获取此令牌。`JwtCredentialsProvider` 指示的提供商使用此参数。

对于 `JwtCredentialsProvider` 提供商，此参数为必填项。否则，此参数位可选项。

# 导入 Python 连接器
<a name="python-start-import"></a>

要导入 Python 连接器，请运行以下命令。

```
>>> import redshift_connector
```

要使用 AWS 凭证连接到 Amazon Redshift 集群，请运行以下命令。

```
conn = redshift_connector.connect(
    host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
    port=5439,
    database='dev',
    user='awsuser',
    password='my_password'
 )
```

# 将 Python 连接器与 NumPy 集成
<a name="python-connect-integrate-numpy"></a>

以下是将 Python 连接器与 NumPy 集成的示例。

```
>>>  import numpy
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set            
cursor.execute("select * from book")

result: numpy.ndarray = cursor.fetch_numpy_array()
print(result)
```

以下是结果。

```
[['One Hundred Years of Solitude' 'Gabriel García Márquez']
['A Brief History of Time' 'Stephen Hawking']]
```

# 将 Python 连接器与 pandas 集成
<a name="python-connect-integrate-pandas"></a>

以下是将 Python 连接器与 pandas 集成的示例。

```
>>> import pandas

#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set
cursor.execute("select * from book")
result: pandas.DataFrame = cursor.fetch_dataframe()
print(result)
```

# 使用身份提供者插件
<a name="python-connect-identity-provider-plugins"></a>

有关如何使用身份提供者插件的一般信息，请参阅[用于提供 IAM 凭证的选项](options-for-providing-iam-credentials.md)。有关管理 IAM 身份的更多信息，包括 IAM 角色的最佳实践，请参阅 [Amazon Redshift 中的 Identity and Access Management](redshift-iam-authentication-access-control.md)。

## 使用 ADFS 身份提供者插件进行身份验证
<a name="python-connect-identity-provider-active-dir"></a>

以下是使用 Active Directory 联合身份验证服务（ADFS）身份提供者插件对连接到 Amazon Redshift 数据库的用户进行身份验证的示例。

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AdfsCredentialsProvider',
    user='brooke@myadfshostname.com',
    password='Hunter2',
    idp_host='myadfshostname.com'
)
```

## 使用 Azure 身份提供者插件进行身份验证
<a name="python-connect-identity-provider-azure"></a>

以下是使用 Azure 身份提供者插件进行身份验证的示例。您可以为 `client_id` 和 `client_secret` 创建值用于 Azure 企业应用程序，如下所示。

```
>>>  con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AzureCredentialsProvider',
    user='brooke@myazure.org',
    password='Hunter2',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
    client_secret='my_client_secret',
    preferred_role='arn:aws:iam:123:role/DataScientist'
)
```

## 使用 AWS IAM Identity Center 身份提供者插件进行身份验证
<a name="python-connect-identity-provider-aws-idc"></a>

 以下是使用 AWS IAM Identity Center 身份提供者插件进行身份验证的示例。

```
with redshift_connector.connect(
credentials_provider='BrowserIdcAuthPlugin',
host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
database='dev',
idc_region='us-east-1',
issuer_url='https://identitycenter.amazonaws.com/ssoins-790723ebe09c86f9',
idp_response_timeout=60,
listen_port=8100,
idc_client_display_name='Test Display Name',
# port value of 5439 is specified by default
)
```

## 使用 Azure 浏览器身份提供者插件进行身份验证
<a name="python-connect-identity-provider-azure-browser"></a>

以下是使用 Azure 浏览器身份提供者插件对连接到 Amazon Redshift 数据库的用户进行身份验证的示例。

浏览器中会发生多重身份验证，其中登录凭证由用户提供。

```
>>>con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserAzureCredentialsProvider',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
)
```

## 使用 Okta 身份提供者插件进行身份验证
<a name="python-connect-identity-provider-okta"></a>

以下是使用 Okta 身份提供者插件进行身份验证的示例。你可以通过 Okta 应用程序获取 `idp_host`、`app_id` 和 `app_name` 的值。

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='OktaCredentialsProvider',
    user='brooke@myazure.org',
    password='hunter2',
    idp_host='my_idp_host',
    app_id='my_first_appetizer',
    app_name='dinner_party'
)
```

## 使用 JumpCloud 和通用 SAML 浏览器身份提供者插件进行身份验证
<a name="python-connect-identity-provider-jumpcloud"></a>

以下是使用 JumpCloud 和通用 SAML 浏览器身份提供者插件进行身份验证的示例。

密码参数是必需的。但是，您不必输入此参数，因为浏览器中会发生多重验证。

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserSamlCredentialsProvider',
    user='brooke@myjumpcloud.org',
    password='',
    login_url='https://sso.jumpcloud.com/saml2/plustwo_melody'
)
```

# 使用 Amazon Redshift Python 连接器的示例
<a name="python-connect-examples"></a>

以下为如何使用 Amazon Redshift Python 连接器的示例。要运行它们，您必须先安装 Python 连接器。有关安装 Amazon Redshift Python 连接器的更多信息，请参阅[安装 Amazon Redshift Python 连接器](python-driver-install.md)。有关可以与 Python 连接器一起使用的配置选项的更多信息，请参阅 [Amazon Redshift Python 连接器的配置选项](python-configuration-options.md)。

**Topics**
+ [

## 使用 AWS 凭证连接到 Amazon Redshift 集群并进行查询
](#python-connect-cluster)
+ [

## 启用自动提交
](#python-connect-enable-autocommit)
+ [

## 配置游标参数样式
](#python-connect-config-paramstyle)
+ [

## 使用 COPY 从 Amazon S3 桶中复制数据，然后使用 UNLOAD 将数据写入该桶
](#python-connect-copy-unload-s3)

## 使用 AWS 凭证连接到 Amazon Redshift 集群并进行查询
<a name="python-connect-cluster"></a>

下面的示例将指导您使用 AWS 凭证连接到 Amazon Redshift 集群，然后查询表并检索查询结果。

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     database='dev',
     port=5439,
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query a table using the Cursor
>>> cursor.execute("select * from book")
                
#Retrieve the query result set
>>> result: tuple = cursor.fetchall()
>>> print(result)
 >> (['One Hundred Years of Solitude', 'Gabriel García Márquez'], ['A Brief History of Time', 'Stephen Hawking'])
```

## 启用自动提交
<a name="python-connect-enable-autocommit"></a>

根据 Python 数据库 API 规范，默认情况下自动提交属性处于关闭状态。在执行回滚命令后，您可以使用以下命令打开连接的 autocommit 属性，以确保事务不在进行中。

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(...)

# Run a rollback command
>>>  conn.rollback()

# Turn on autocommit
>>>  conn.autocommit = True
>>>  conn.run("VACUUM")

# Turn off autocommit
>>>  conn.autocommit = False
```

## 配置游标参数样式
<a name="python-connect-config-paramstyle"></a>

可以通过 cursor.paramstyle 修改游标的参数样式。使用的原定设置参数样式是 `format`。参数样式的有效值为 `qmark`、`numeric`、`named`、`format` 和 `pyformat`。

以下是使用各种参数样式将参数传递给示例 SQL 语句的示例。

```
# qmark
redshift_connector.paramstyle = 'qmark'
sql = 'insert into foo(bar, jar) VALUES(?, ?)'
cursor.execute(sql, (1, "hello world"))

# numeric
redshift_connector.paramstyle = 'numeric'
sql = 'insert into foo(bar, jar) VALUES(:1, :2)'
cursor.execute(sql, (1, "hello world"))

# named
redshift_connector.paramstyle = 'named'
sql = 'insert into foo(bar, jar) VALUES(:p1, :p2)'
cursor.execute(sql, {"p1":1, "p2":"hello world"})

# format
redshift_connector.paramstyle = 'format'
sql = 'insert into foo(bar, jar) VALUES(%s, %s)'
cursor.execute(sql, (1, "hello world"))

# pyformat
redshift_connector.paramstyle = 'pyformat'
sql = 'insert into foo(bar, jar) VALUES(%(bar)s, %(jar)s)'
cursor.execute(sql, {"bar": 1, "jar": "hello world"})
```

## 使用 COPY 从 Amazon S3 桶中复制数据，然后使用 UNLOAD 将数据写入该桶
<a name="python-connect-copy-unload-s3"></a>

以下示例说明如何将数据从 Amazon S3 桶复制到表中，然后从该表卸载回到此桶中。

包含以下数据的名为 `category_csv.txt` 的文本文件将上载到 Amazon S3 桶中。

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

以下是 Python 代码的示例，该代码首先连接到 Amazon Redshift 数据库。然后创建一个名为 `category` 的表并将 S3 桶中的 CSV 数据复制到表中。

```
#Connect to the cluster and create a Cursor
>>> import redshift_connector
>>> with redshift_connector.connect(...) as conn:
>>> with conn.cursor() as cursor:

#Create an empty table
>>>     cursor.execute("create table category (catid int, cargroup varchar, catname varchar, catdesc varchar)")

#Use COPY to copy the contents of the S3 bucket into the empty table 
>>>     cursor.execute("copy category from 's3://testing/category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the table
>>>     cursor.execute("select * from category")
>>>     print(cursor.fetchall())

#Use UNLOAD to copy the contents of the table into the S3 bucket
>>>     cursor.execute("unload ('select * from category') to 's3://testing/unloaded_category_csv.txt'  iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the bucket
>>>     print(cursor.fetchall())
 >> ([12, 'Shows', 'Musicals', 'Musical theatre'], [13, 'Shows', 'Plays', 'All "non-musical" theatre'], [14, 'Shows', 'Opera', 'All opera, light, and "rock" opera'], [15, 'Concerts', 'Classical', 'All symphony, concerto, and choir concerts'])
```

如果您未将 `autocommit` 设置为 true，请在运行 `execute()` 语句后使用 `conn.commit()` 提交。

数据卸载到 S3 桶的 `unloaded_category_csv.text0000_part00` 文件中，内容如下：

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

# Amazon Redshift Python 连接器的 API 参考
<a name="python-api-reference"></a>

您可以在文中找到有关 Amazon Redshift Python 连接器 API 操作的说明。

## redshift\$1connector
<a name="python-api-redshift_connector"></a>

在下文中，您可以找到有关 `redshift_connector` API 操作的描述。

`connect(user, database, password[, port, …])`  
创建到 Amazon Redshift 集群的连接。此函数可验证用户输入，可以选择使用身份提供者插件进行身份验证，然后构造连接对象。

`apilevel`  
支持的 DBAPI 级别，目前为“2.0”。

`paramstyle``str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str`  
要在全局使用的数据库 API 参数样式。

## 连接
<a name="python-api-connection"></a>

您可以在文中找到有关 Amazon Redshift Python 连接器的连接 API 操作的说明。

`__init__(user, password, database[, host, …])`  
初始化原始连接对象。

`cursor`  
创建绑定到此连接的游标对象。

`commit`  
提交当前数据库事务。

`rollback`  
回滚当前的数据库事务。

`close`  
关闭数据库连接。

`execute(cursor, operation, vals)`  
运行指定的 SQL 命令。您可以将参数作为序列或映射提供，具体取决于 `redshift_connector.paramstyle` 的值。

`run(sql[, stream])`  
运行指定的 SQL 命令。或者，您也可以提供与 COPY 命令一起使用的流。

`xid(format_id, global_transaction_id, …)`  
创建事务 ID。postgres 中只使用了 `global_transaction_id` 参数。postgres 中不使用 format\$1id 和 branch\$1qualifier。`global_transaction_id` 可以是 postgres 支持的任何返回元组的字符串标识符（`format_id`、`global_transaction_id`、`branch_qualifier`）。

`tpc_begin(xid)`  
使用由格式 ID、全局事务 ID 和分支限定符组成的事务 ID `xid` 开始 TPC 事务。

`tpc_prepare`  
执行以 .tpc\$1begin 开始的事务的第一阶段。

`tpc_commit([xid])`  
在没有参数的情况下进行调用时，.tpc\$1commit 会提交之前使用 .tpc\$1prepare() 准备的 TPC 事务。

`tpc_rollback([xid])`  
在没有参数的情况下进行调用时，.tpc\$1rollback 会回滚 TPC 事务。

`tpc_recover`  
返回适合与 .tpc\$1commit(xid) 或 .tpc\$1rollback(xid) 一起使用的待处理事务 ID 列表。

## Cursor
<a name="python-api-cursor"></a>

在下文中，您可以找到有关 游标 API 操作的描述。

`__init__(connection[, paramstyle])`  
初始化原始游标对象。

`insert_data_bulk(filename, table_name, parameter_indices, column_names, delimiter, batch_size)`  
运行批量 INSERT 语句。

`execute(operation[, args, stream, …])`  
运行数据库操作。

`executemany(operation, param_sets)`  
准备数据库操作，然后为提供的所有参数序列或映射运行该操作。

`fetchone`  
获取查询结果集的下一行。

`fetchmany([num])`  
获取查询结果的下一个行集。

`fetchall`  
获取查询结果的所有剩余行。

`close`  
立即关闭光标。

`__iter__`  
可以迭代游标对象以从查询中检索行。

`fetch_dataframe([num])`  
返回最后查询结果的数据框。

`write_dataframe(df, table)`  
将相同的结构数据框写入 Amazon Redshift 数据库。

`fetch_numpy_array([num])`  
返回最后查询结果的 NumPy 数组。

`get_catalogs`  
Amazon Redshift 不支持来自单个连接的多个目录。Amazon Redshift 只返回当前目录。

`get_tables([catalog, schema_pattern, …])`  
返回系统中用户定义的唯一公共表。

`get_columns([catalog, schema_pattern, …])`  
返回 Amazon Redshift 数据库中特定表中所有列的列表。

## AdfsCredentialsProvider 插件
<a name="python-adfs-credentials-plugin"></a>

以下是 Amazon Redshift Python 连接器的 AdfsCredentialsProvider 插件 API 操作的语法。

```
redshift_connector.plugin.AdfsCredentialsProvider()
```

## AzureCredentialsProvider 插件
<a name="python-azure-credentials-plugin"></a>

以下是 Amazon Redshift Python 连接器的 AzureCredentialsProvider 插件 API 操作的语法。

```
redshift_connector.plugin.AzureCredentialsProvider()
```

## BrowserAzureCredentialsProvider 插件
<a name="python-browser-azure-credentials-plugin"></a>

以下是 Amazon Redshift Python 连接器的 BrowserAzureCredentialsProvider 插件 API 操作的语法。

```
redshift_connector.plugin.BrowserAzureCredentialsProvider()
```

## BrowserSamlCredentialsProvider 插件
<a name="python-browser-saml-credentials-plugin"></a>

以下是 Amazon Redshift Python 连接器的 BrowserSamlCredentialsProvider 插件 API 操作的语法。

```
redshift_connector.plugin.BrowserSamlCredentialsProvider()
```

## OktaCredentialsProvider 插件
<a name="python-okta-credentials-plugin"></a>

以下是 Amazon Redshift Python 连接器的 OktaCredentialsProvider 插件 API 操作的语法。

```
redshift_connector.plugin.OktaCredentialsProvider()
```

## PingCredentialsProvider 插件
<a name="python-ping-credentials-plugin"></a>

以下是 Amazon Redshift Python 连接器的 PingCredentialsProvider 插件 API 操作的语法。

```
redshift_connector.plugin.PingCredentialsProvider()
```

## SamlCredentialsProvider 插件
<a name="python-saml-credentials-plugin"></a>

以下是 Amazon Redshift Python 连接器的 SamlCredentialsProvider 插件 API 操作的语法。

```
redshift_connector.plugin.SamlCredentialsProvider()
```

# 适用于 Apache Spark 的 Amazon Redshift 集成
<a name="spark-redshift-connector"></a>

 [Apache Spark](https://aws.amazon.com/emr/features/spark/) 是一个分布式处理框架和编程模型，可帮助您进行机器学习、流处理或图形分析。Spark 与 Apache Hadoop 类似，也是一款常用于大数据工作负载的开源、分布式处理系统。Spark 具有优化的有向无环图（DAG）执行引擎，可主动在内存中缓存数据。这可以提高性能，特别适合某些算法和交互式查询。

 此集成为您提供了 Spark 连接器，您可以将其用于构建 Apache Spark 应用程序，这些应用程序在 Amazon Redshift 和 Amazon Redshift Serverless 中读取和写入数据。这些应用程序不会影响应用程序性能或数据的事务一致性。此集成自动包括在 [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/) 和 [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/) 中，因此您可以立即运行 Apache Spark 作业，在数据摄取和转换管道过程中访问数据并将其加载到 Amazon Redshift 中。

目前，可以使用 Spark 的 3.3.x、3.4.x、3.5.x 和 4.0.0 版本进行此集成。

 此集成提供以下内容：
+  AWS Identity and Access Management（IAM）身份验证 有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)。
+ 利用谓词和查询下推来提高性能。
+  Amazon Redshift 数据类型。
+ 与 Amazon Redshift 和 Amazon Redshift Serverless 的连接。

## 使用 Spark 连接器时的注意事项和限制
<a name="spark-redshift-connector-considerations"></a>
+  tempdir URI 指向 Amazon S3 位置。此临时目录不会自动清理，可能会增加额外的成本。我们建议使用《Amazon Simple Storage Service 用户指南》**中的 [Amazon S3 生命周期策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)，定义 Amazon S3 存储桶的保留规则。
+  原定设置情况下，如果 S3 桶和 Redshift 集群位于不同的 AWS 区域，则 Amazon S3 和 Redshift 之间的复制不起作用。要使用单独的 AWS 区域，请将 `tempdir_region` 参数设置为对 `tempdir` 使用的 S3 存储桶的区域。
+ 如果使用 `tempformat` 参数写入 Parquet 数据，则在 S3 和 Redshift 之间进行跨区域写入。
+ 我们建议使用 [Amazon S3 服务器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)以加密使用的 Amazon S3 存储桶。
+ 我们建议[阻止对 Amazon S3 存储桶的公有访问](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html)。
+  我们建议不要公开访问 Amazon Redshift 集群。
+  我们建议启用 [Amazon Redshift 审核日志记录](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html)。
+  我们建议启用 [Amazon Redshift 静态加密](https://docs.aws.amazon.com/redshift/latest/mgmt/security-server-side-encryption.html)。
+  我们建议您为从 Spark on Amazon EMR 到 Amazon Redshift 的 JDBC 连接启用 SSL。
+ 我们建议使用参数 `aws_iam_role` 为 Amazon Redshift 身份验证参数传递 IAM 角色。

# 使用 Spark 连接器进行身份验证
<a name="redshift-spark-connector-authentication"></a>

下图描述了 Amazon S3、Amazon Redshift、Spark 驱动程序和 Spark 执行程序之间的身份验证。

![\[这是 Spark 连接器身份验证的示意图。\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/spark-connector-authentication.png)


## Redshift 和 Spark 之间的身份验证
<a name="redshift-spark-authentication"></a>

 您可以使用 Amazon Redshift 提供的 JDBC 驱动程序版本 2.x 驱动程序，通过指定登录凭证，使用 Spark 连接器连接到 Amazon Redshift。要使用 IAM，[请将您的 JDBC url 配置为使用 IAM 身份验证](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html)。要从 Amazon EMR 或 AWS Glue 连接到 Redshift 集群，确保您的 IAM 角色具有检索临时 IAM 凭证所必需的权限。以下列表描述了您的 IAM 角色检索凭证和运行 Amazon S3 操作所需的所有权限。
+ [ Redshift:GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html)（适用于预置的 Redshift 集群）
+ [ Redshift:DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html)（适用于预置的 Redshift 集群）
+ [Redshift:GetWorkgroup](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetWorkgroup.html)（适用于 Amazon Redshift Serverless 工作组）
+ [ Redshift:GetCredentials](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetCredentials.html)（适用于 Amazon Redshift Serverless 工作组）
+ [s3:ListBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
+ [ s3:GetBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
+ [ s3:GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [ s3:PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [ s3:GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)

 有关 GetClusterCredentials 的更多信息，请参阅 [GetClusterCredentials 的 IAM 策略](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources)。

您还必须确保 Amazon Redshift 可以在 `COPY` 和 `UNLOAD` 操作期间担任 IAM 角色。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "redshift.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

如果您使用的是最新的 JDBC 驱动程序，则驱动程序将自动管理从 Amazon Redshift 自签名证书到 ACM 证书的转换。但是，您必须[为 JDBC url 指定 SSL 选项](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-ssl-option)。

 以下是有关如何指定 JDBC 驱动程序 URL 和 `aws_iam_role` 以连接到 Amazon Redshift 的示例。

```
df.write \
  .format("io.github.spark_redshift_community.spark.redshift ") \
  .option("url", "jdbc:redshift:iam://<the-rest-of-the-connection-string>") \
  .option("dbtable", "<your-table-name>") \
  .option("tempdir", "s3a://<your-bucket>/<your-directory-path>") \
  .option("aws_iam_role", "<your-aws-role-arn>") \
  .mode("error") \
  .save()
```

## Amazon S3 和 Spark 之间的身份验证
<a name="spark-s3-authentication"></a>

 如果您使用 IAM 角色在 Spark 和 Amazon S3 之间进行身份验证，则使用以下方法之一：
+ AWS SDK for Java 会自动尝试使用由 DefaultAWSCredentialsProviderChain 类实施的默认凭证提供程序链来查找 AWS 凭证。有关更多信息，请参阅[使用默认凭证提供程序链](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default)。
+ 您可以通过 [Hadoop 配置属性](https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/index.md)指定 AWS 密钥。例如，如果您的 `tempdir` 配置指向 `s3n://` 文件系统，请在 Hadoop XML 配置文件中设置 `fs.s3n.awsAccessKeyId` 和 `fs.s3n.awsSecretAccessKey` 属性或调用 `sc.hadoopConfiguration.set()` 以更改 Spark 的全局 Hadoop 配置。

例如，如果您使用的是 s3n 文件系统，则添加：

```
sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```

对于 s3a 文件系统，请添加：

```
sc.hadoopConfiguration.set("fs.s3a.access.key", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3a.secret.key", "YOUR_SECRET_ACCESS_KEY")
```

如果您使用的是 Python，则使用以下操作：

```
sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```
+ 在 `tempdir` URL 中对身份验证密钥进行编码。例如，URI `s3n://ACCESSKEY:SECRETKEY@bucket/path/to/temp/dir` 对密钥对（`ACCESSKEY`，`SECRETKEY`）进行编码。

## Redshift 和 Amazon S3 之间的身份验证
<a name="redshift-s3-authentication"></a>

 如果您在查询中使用 COPY 和 UNLOAD 命令，则还必须向 Amazon S3 授予访问 Amazon Redshift 的权限，这样才能代表您运行查询。为此，请先[授权 Amazon Redshift 访问其他 AWS 服务](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html)，然后[使用 IAM 角色授权 COPY 和 UNLOAD 操作](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html)。

作为最佳实践，我们建议将权限策略附加到 IAM 角色，然后根据需要将其分配给用户和组。有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)。

## 与 AWS Secrets Manager 集成
<a name="redshift-secrets-manager-authentication"></a>

您可以从 AWS Secrets Manager 中存储的密钥检索您的 Redshift 用户名和密码凭证。要自动提供 Redshift 凭证，请使用 `secret.id` 参数。有关如何创建 Redshift 凭证密钥的更多信息，请参阅[创建 AWS Secrets Manager 数据库密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html)。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/redshift-spark-connector-authentication.html)

**注意**  
 致谢：本文档包含 [Apache Software Foundation](http://www.apache.org/) 根据 [Apache 2.0 许可证](https://www.apache.org/licenses/LICENSE-2.0)的许可而开发的示例代码和语言。

# 通过下推提高性能
<a name="spark-redshift-connector-pushdown"></a>

 Spark 连接器自动应用谓词和查询下推来优化性能。有了这种支持就意味着，如果您在查询中使用支持的函数，Spark 连接器会将该函数转换成 SQL 查询，并在 Amazon Redshift 中运行该查询。这种优化会减少需要检索的数据，因此 Apache Spark 可以处理更少的数据并获得更好的性能。默认情况下，自动激活下推。要停用它，请将 `autopushdown` 设置为 false。

```
import sqlContext.implicits._val 
 sample= sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url",jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "event")
    .option("autopushdown", "false")
    .load()
```

 下推支持以下函数。如果您使用不在此列表中的函数，Spark 连接器将在 Spark 中（而不是在 Amazon Redshift 中）执行此函数，从而导致性能未优化。有关 Spark 中函数的完整列表，请参阅[内置函数](https://spark.apache.org/docs/latest/api/sql/index.html)。
+ 聚合函数
  + avg
  + count
  + max
  + min
  + sum
  + stddev\$1samp
  + stddev\$1pop
  + var\$1samp
  + var\$1pop
+ 布尔运算符
  + in
  + isnull
  + isnotnull
  + contains
  + endswith
  + startswith
+ 逻辑运算符
  + and
  + or
  + not (or \$1)
+ 数学函数
  + \$1
  + -
  + \$1
  + /
  + - (unary)
  + abs
  + acos
  + asin
  + atan
  + ceil
  + cos
  + EXP
  + floor
  + greatest
  + least
  + log10
  + pi
  + pow
  + round
  + sin
  + sqrt
  + tan
+ 其他函数
  + cast
  + coalesce
  + decimal
  + if
  + in
+ 关系运算符
  + \$1=
  + =
  + >
  + >=
  + <
  + <=
+ 字符串函数
  + ascii
  + lpad
  + rpad
  + 翻译
  + upper
  + lower
  + length
  + trim
  + ltrim
  + rtrim
  + like
  + substring
  + concat
+ 日期和时间函数
  + add\$1months
  + date
  + date\$1add
  + date\$1sub
  + date\$1trunc
  + timestamp
  + trunc
+ 数学运算
  + CheckOverflow
  + PromotePrecision
+ 关系运算
  + Aliases（例如，AS）
  + CaseWhen
  + Distinct
  + InSet
  + 联接和交叉联接
  + Limits
  + Unions，union all
  + ScalarSubquery
  + Sorts（升序和降序）
  + UnscaledValue

# 其他配置选项
<a name="spark-redshift-connector-other-config"></a>

在本页中，您可以找到可为 Amazon Redshift Spark 连接器指定的选项的说明。

## 字符串列的最大大小
<a name="spark-redshift-connector-other-config-max-size"></a>

Redshift 在创建表时将字符串列创建为文本列，它们存储为 VARCHAR(256)。如果您想要支持更大大小的列，则可以使用 maxlength 来指定字符串列的最大长度。下面是说明如何指定 `maxlength` 的示例。

```
columnLengthMap.foreach { case (colName, length) =>
  val metadata = new MetadataBuilder().putLong("maxlength", length).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## 列类型
<a name="spark-redshift-connector-other-config-column-type"></a>

要设置列类型，请使用 `redshift_type` 字段。

```
columnTypeMap.foreach { case (colName, colType) =>
  val metadata = new MetadataBuilder().putString("redshift_type", colType).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## 列上的压缩编码
<a name="spark-redshift-connector-other-config-compression-encoding"></a>

 要对列使用特定的压缩编码，请使用编码字段。有关支持的压缩编码的完整列表，请参阅[压缩编码](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html)。

## 列的描述
<a name="spark-redshift-connector-other-config-description"></a>

要设置描述，请使用 `description` 字段。

## Redshift 和 Amazon S3 之间的身份验证
<a name="spark-redshift-connector-other-config-unload-as-text"></a>

 默认情况下，结果将以 Parquet 格式转存到 Amazon S3。要以竖线分隔的文本文件转存结果，请指定以下选项。

```
.option("unload_s3_format", "TEXT")
```

## 下推语句
<a name="spark-redshift-connector-other-config-lazy-pushdown"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

## 连接器参数
<a name="spark-redshift-connector-other-config-spark-parameters"></a>

Spark SQL 中的参数映射或 `OPTIONS` 支持以下设置。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

**注意**  
 致谢：本文档包含 [Apache Software Foundation](http://www.apache.org/) 根据 [Apache 2.0 许可证](https://www.apache.org/licenses/LICENSE-2.0)的许可而开发的示例代码和语言。

# 支持的数据类型
<a name="spark-redshift-connector-data-types"></a>

Spark 连接器支持 Amazon Redshift 中的以下数据类型。有关 Amazon Redshift 中支持的数据类型的完整列表，请参阅[数据类型](https://docs.aws.amazon.com//redshift/latest/dg/c_Supported_data_types.html)。如果某个数据类型不在下表中，则 Spark 连接器不支持该数据类型。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/spark-redshift-connector-data-types.html)

## 复杂的数据类型
<a name="spark-redshift-connector-complex-data-types"></a>

 您可以使用 spark 连接器在 Redshift SUPER 数据类型列中读写 Spark 复杂数据类型，如 `ArrayType`、`MapType` 和 `StructType`。如果您在读取操作期间提供架构，则该列中的数据将在 Spark 中转换为相应的复杂类型，包括任何嵌套类型。此外，如果启用 `autopushdown`，嵌套属性、映射值和数组索引的投影将下推到 Redshift，这样，当只访问一部分数据时，就不再需要卸载整个嵌套数据结构。

从连接器写入 DataFrame 时，任何类型为 `MapType`（使用 `StringType`）、`StructType` 或 `ArrayType` 的列都会写入 Redshift SUPER 数据类型列。在写入这些嵌套数据结构时，`tempformat` 参数必须为类型 `CSV`、`CSV GZIP` 或 `PARQUET`。使用 `AVRO` 将导致异常。写入一个键类型不是 `StringType` 的 `MapType` 数据结构也会导致异常。

### StructType
<a name="spark-redshift-connector-complex-data-types-examples-structtype"></a>

以下示例演示如何使用包含结构的 SUPER 数据类型创建表

```
create table contains_super (a super);
```

然后，您可以使用连接器，使用下面示例中的类似架构，从表中的 SUPER 列 `a` 查询 `StringType` 字段 `hello`。

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)

val helloDF = sqlContext.read
.format("io.github.spark_redshift_community.spark.redshift")
.option("url", jdbcURL )
.option("tempdir", tempS3Dir)
.option("dbtable", "contains_super")
.schema(schema)
.load().selectExpr("a.hello")
```

以下示例演示如何向列 `a` 写入结构。

```
import org.apache.spark.sql.types._
import org.apache.spark.sql._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)
val data = sc.parallelize(Seq(Row(Row("world"))))
val mydf = sqlContext.createDataFrame(data, schema)

mydf.write.format("io.github.spark_redshift_community.spark.redshift").
option("url", jdbcUrl).
option("dbtable", tableName).
option("tempdir", tempS3Dir).
option("tempformat", "CSV").
mode(SaveMode.Append).save
```

### MapType
<a name="spark-redshift-connector-complex-data-types-examples-maptype"></a>

如果您更喜欢使用 `MapType` 来表示数据，那么您可以在架构中使用 `MapType` 数据结构，并检索映射中与键对应的值。请注意，`MapType` 数据结构中的所有键都必须是 String 类型，并且所有值都必须是相同的类型，例如 int。

以下示例演示如何获取列 `a` 中键 `hello` 的值。

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", MapType(StringType, IntegerType))::Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a['hello']")
```

### ArrayType
<a name="spark-redshift-connector-complex-data-types-examples-arraytype"></a>

如果该列包含数组而不是结构，则可以使用连接器查询数组中的第一个元素。

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", ArrayType(IntegerType)):: Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a[0]")
```

### 限制
<a name="spark-redshift-connector-complex-data-types-limitations"></a>

通过 spark 连接器使用复杂数据类型有以下限制：
+ 所有嵌套的结构字段名称和映射键必须为小写。如果查询带有大写字母的复杂字段名称，可以尝试省略架构，并使用 `from_json` spark 函数在本地转换返回的字符串来作为解决方法。
+ 在读取或写入操作中使用的任何映射字段都必须只有 `StringType` 键。
+ 只有 `CSV`、`CSV GZIP` 和 `PARQUET ` 是支持将复杂类型写入 Redshift 的临时格式值。尝试使用 `AVRO ` 会引发异常。

# 为 Amazon Redshift 配置 ODBC 驱动程序版本 2.x 连接
<a name="odbc20-install"></a>

您可以使用 ODBC 连接将许多第三方 SQL 客户端工具和应用程序连接到您的 Amazon Redshift 集群。如果您的客户端工具支持 JDBC，您可以选择使用 JDBC 类型的连接，而非 ODBC 连接，因为 JDBC 连接更加易于配置。但是，如果您的客户端工具不支持 JDBC，您可以按照本节中的步骤在您的客户端计算机或 Amazon EC2 实例上设置 ODBC 连接。

Amazon Redshift 提供了适用于 Linux、Windows 和 Mac 操作系统的 64 位 ODBC 驱动程序；32 位 ODBC 驱动程序已停用。除了紧急安全补丁外，不会发布针对 32 位 ODBC 驱动程序的进一步更新。

有关 ODBC 驱动程序更改的最新信息，请参阅[更改日志](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/CHANGELOG.md)。

**Topics**
+ [

# 获取 ODBC URL
](odbc20-getting-url.md)
+ [

# 在 Microsoft Windows 上使用 Amazon Redshift ODBC 驱动程序
](odbc20-install-config-win.md)
+ [

# 在 Linux 上使用 Amazon Redshift ODBC 驱动程序
](odbc20-install-config-linux.md)
+ [

# 在 Apple macOS 上使用 Amazon Redshift ODBC 驱动程序
](odbc20-install-config-mac.md)
+ [

# 身份验证方法
](odbc20-authentication-ssl.md)
+ [

# 数据类型转换
](odbc20-converting-data-types.md)
+ [

# ODBC 驱动程序选项
](odbc20-configuration-options.md)
+ [

# 早期 ODBC 驱动程序版本
](odbc20-previous-versions.md)

# 获取 ODBC URL
<a name="odbc20-getting-url"></a>

Amazon Redshift 在 Amazon Redshift 控制台中显示您的集群的 ODBC URL。此 URL 包含在您的客户端计算机与数据库之间建立连接所需的信息。

ODBC URL 采用以下格式：

```
Driver={driver}; Server=endpoint_host; Database=database_name; UID=user_name; PWD=password; Port=port_number
```

上述格式的字段具有以下值：


| Field | Value | 
| --- | --- | 
| Driver | 要使用的 64 位 ODBC 驱动程序的名称：Amazon Redshift ODBC 驱动程序(x64) | 
| Server | Amazon Redshift 集群的端点主机。 | 
| Database | 您为集群创建的数据库。 | 
| UID | 有权连接到数据库的数据库用户账户的用户名。虽然此值是数据库级权限，而非集群级权限，但您可以使用您在启动集群时设置的 Redshift 管理员用户账户。 | 
| PWD | 数据库用户账户用于连接数据库的密码。 | 
| Port | 您在启动集群时指定的端口号。如果您启用了防火墙，请确保此端口处于打开状态，可供您使用。 | 

以下是一个示例 ODBC URL：

```
Driver={Amazon Redshift ODBC Driver (x64)}; Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com; Database=dev; UID=adminuser; PWD=insert_your_admin_user_password_here; Port=5439
```

有关在何处查找 ODBC URL 的信息，请参阅[查找集群连接字符串](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-connection-string)。

# 在 Microsoft Windows 上使用 Amazon Redshift ODBC 驱动程序
<a name="odbc20-install-config-win"></a>

您必须在可访问 Amazon Redshift 数据仓库的客户端计算机上安装 Amazon Redshift ODBC 驱动程序。对于您要在其上安装该驱动程序的每台计算机，有以下最低要求：
+ 计算机上的管理员权限。
+ 计算机满足以下系统要求：
  + 以下操作系统之一：
    + Windows 10 或 8.1。
    + Windows Server 2019、2016 或 2012。
  + 100MB 可用磁盘空间。
  + 已安装适用于 64 位 Windows 的 Visual C\$1\$1 Redistributable for Visual Studio 2015。您可以在 Microsoft 网站上的[下载 Visual C\$1\$1 Redistributable for Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2022) 下载安装包。

# 下载并安装 Amazon Redshift ODBC 驱动程序
<a name="odbc20-install-win"></a>

使用以下过程下载并安装适用于 Windows 操作系统的 Amazon Redshift ODBC 驱动程序。仅在您当前运行的第三方应用程序获得了使用 Amazon Redshift 的认证并且需要不同驱动程序时，才能使用该特定驱动程序。

要下载并安装 ODBC 驱动程序，请执行以下操作：

1. 下载以下驱动程序：[64 位 ODBC 驱动程序版本 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC64-2.1.15.0.msi) 

   此驱动程序的名称为 **Amazon Redshift ODBC 驱动程序(x64)**。

1. 审核 [Amazon Redshift ODBC 驱动程序版本 2.x 许可证](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE)。

1. 双击 .msi 文件，然后按照向导中的步骤安装驱动程序。

# 为 ODBC 连接创建系统 DSN 条目
<a name="odbc20-dsn-win"></a>

下载并安装 ODBC 驱动程序后，将数据来源名称 (DSN) 条目添加到客户端计算机或 Amazon EC2 实例。SQL 客户端工具可以使用此数据来源连接到 Amazon Redshift 数据库。

建议您创建系统 DSN 而不是用户 DSN。有些应用程序使用不同的数据库用户账户加载数据，因而可能无法检测在其他数据库用户账户下创建的用户 DSN。

**注意**  
对于使用 AWS Identity and Access Management (IAM) 凭证或身份提供者 (IdP) 凭证进行的身份验证，需要执行其他步骤。有关更多信息，请参阅[配置 JDBC 或 ODBC 连接以使用 IAM 凭证](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html)。

要为 ODBC 连接创建系统 DSN 条目，请执行以下操作：

1. 在**开始**菜单上，键入“ODBC 数据来源”。选择 **ODBC 数据来源**。

   请确保您选择的 ODBC Data Source Administrator 的位数与用于连接 Amazon Redshift 的客户端应用程序的位数相同。

1. 在 **ODBC 数据来源管理器**中，选择**驱动程序**选项卡，然后找到以下驱动程序文件夹：**Amazon Redshift ODBC 驱动程序(x64)**。

1. 选择**系统 DSN** 选项卡为计算机上的所有用户配置驱动程序，或选择**用户 DSN** 选项卡仅为您的数据库用户账户配置驱动程序。

1. 选择**添加**。系统随即打开 **Create New Data Source** 窗口。

1. 选择 **Amazon Redshift ODBC 驱动程序(x64)**，然后选择**完成**。系统随即打开 ** Amazon Redshift ODBC Driver DSN Setup** 窗口。

1. 在**连接设置**部分下，输入以下信息：
   + 

**Data source name**  
 输入数据来源的名称。例如，如果您遵循的是《Amazon Redshift 入门指南》**，则可键入 `exampleclusterdsn`，以便轻松记住将与此 DSN 关联的集群。
   + 

**服务器**  
 为您的 Amazon Redshift 集群指定端点主机。您可以在 Amazon Redshift 控制台中的集群详细信息页面上找到该信息。有关更多信息，请参阅[在 Amazon Redshift 中配置连接](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html)。
   + 

**端口**  
 输入数据库使用的端口号。根据您在创建、修改或迁移集群时选择的端口，允许访问所选端口。
   + 

**数据库**  
 输入 Amazon Redshift 数据库的名称。如果您在未指定数据库名称的情况下启动了集群，请输入 `dev`。否则，请使用您在启动过程中选择的名称。如果您遵循的是《Amazon Redshift 入门指南》**，输入 `dev`。

1. 在**身份验证**下，指定配置选项以配置标准或 IAM 身份验证。

1. 选择**SSL 选项**，然后指定以下项目的值：
   + 

**身份验证模式**  
选择处理安全套接字层 (SSL) 的模式。在测试环境中，可以使用 `prefer`。但是，对于生产环境以及在需要安全交换数据时，请使用 `verify-ca` 或 `verify-full`。
   + 

**最低 TLS**  
（可选）选择驱动程序允许数据存储用来对连接进行加密的最低 TLS/SSL 版本。例如，如果您指定了 TLS 1.2，则无法使用 TLS 1.1 对连接进行加密。默认版本为 TLS 1.2。

1.  在**代理**选项卡中，指定任何代理连接设置。

1. 在**游标**选项卡中，指定有关如何将查询结果返回至您的 SQL 客户端工具或应用程序的选项。

1. 在**高级选项**中，指定 `logLevel`、`logPath`、`compression` 和其他选项的值。

1. 选择**测试**。如果客户端计算机可以连接到 Amazon Redshift 数据库，将显示以下消息：**连接成功**。如果客户端计算机无法连接到数据库，您可以通过生成日志文件并联系 AWS 支持部门，对可能的问题进行故障排除。有关生成日志的信息，请参阅 (LINK)。

1.  选择**确定**。

# 在 Linux 上使用 Amazon Redshift ODBC 驱动程序
<a name="odbc20-install-config-linux"></a>

您必须在可访问 Amazon Redshift 数据仓库的客户端计算机上安装 Amazon Redshift ODBC 驱动程序。对于您要在其上安装该驱动程序的每台计算机，有以下最低要求：
+ 计算机上的根访问权限。
+ 以下分发之一：
  + Red Hat® Enterprise Linux®（RHEL）8 或更高版本
  + CentOS 8 或更高版本。
+ 150MB 可用磁盘空间。
+ unixODBC 2.2.14 或更高版本。
+ glibc 2.26 或更高版本。

# 下载并安装 Amazon Redshift ODBC 驱动程序
<a name="odbc20-install-linux"></a>

要下载并安装适用于 Linux 的 Amazon Redshift ODBC 驱动程序版本 2.x，请执行以下操作：

1.  下载以下驱动程序：
   + [x86 64 位 RPM 驱动程序版本 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.x86_64.rpm)。
   + [ARM 64 位 RPM 驱动程序版本 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.aarch64.rpm)。
**注意**  
32 位 ODBC 驱动程序已停用。除了紧急安全补丁外，不会发布进一步的更新。

1.  转至您下载程序包的位置，然后运行以下命令之一。使用适用于您的 Linux 发行版的命令。

   在 RHEL 和 CentOS 操作系统上，运行以下命令：

   ```
   yum --nogpgcheck localinstall RPMFileName
   ```

   将 `RPMFileName` 替换为 RPM 包文件名。例如，以下命令将演示如何安装 64 位驱动程序：

   ```
   yum --nogpgcheck localinstall AmazonRedshiftODBC-64-bit-2.x.xx.xxxx.x86_64.rpm
   ```

# 使用 ODBC 驱动程序管理器配置 ODBC 驱动程序
<a name="odbc20-config-linux"></a>

在 Linux 上，您可以使用 ODBC 驱动程序管理器来配置 ODBC 连接设置。ODBC 驱动程序管理器使用配置文件来定义和配置 ODBC 数据来源和驱动程序。您可以使用的 ODBC 驱动程序管理器取决于您使用的操作系统。

## 使用 unixODBC 驱动程序管理器配置 ODBC 驱动程序
<a name="odbc20-config-unixodbc-linux"></a>

要配置 Amazon Redshift ODBC 驱动程序，需要以下文件：
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 如果您将驱动程序安装在默认位置，则 `amazon.redshiftodbc.ini` 配置文件将位于 `/opt/amazon/redshiftodbcx64` 中。

 此外，在 `/opt/amazon/redshiftodbcx64` 下，您可以找到示例 `odbc.ini` 和 `odbcinst.ini` 文件。您可以使用这些文件作为配置 Amazon Redshift ODBC 驱动程序和数据来源名称 (DSN) 的示例。

 我们不建议使用 Amazon Redshift ODBC 驱动程序安装目录来存储配置文件。安装目录中的示例文件仅用作示例。如果您日后重新安装 Amazon Redshift ODBC 驱动程序，或将其升级到新版本，安装目录会被覆盖。您将丢失对安装目录中的文件所做的所有更改。

 为了避免出现这种情况，请将 `amazon.redshiftodbc.ini` 文件复制到安装目录以外的其他目录中。如果您要将此文件复制到用户的主目录，请在文件名的开头添加一个句点 (.)，使其成为隐藏文件。

 对于 `odbc.ini` 和 `odbcinst.ini` 文件，应在用户的主目录中使用配置文件，或者在其他目录中创建新版本。默认情况下，您的 Linux 操作系统应在用户的主目录（`/home/$USER` 或 `~/.`）中包含 `odbc.ini` 文件和 `odbcinst.ini` 文件。这些默认文件均为隐藏文件（通过在每个文件名的前面添加圆点 (.) 表示）。这些文件仅当您使用 `-a` 标志列出目录内容时显示。

 对于 `odbc.ini` 和 `odbcinst.ini` 文件，不管您选择哪个选项，都需对这些文件进行修改，以添加驱动程序和 DSN 配置信息。如果您创建新文件，则还需设置环境变量，以指定这些配置文件的目标存储位置。

 默认情况下，ODBC 驱动程序管理器将配置为使用位于主目录中的 `odbc.ini` 和 `odbcinst.ini` 配置文件的隐藏版本（名为 `.odbc.ini` 和 `.odbcinst.ini`）。它们也被配置为使用驱动程序安装目录中的 `amazon.redshiftodbc.ini` 文件。如果您将这些配置文件存储在其他位置，请设置如下所述的环境变量，以便驱动程序管理器能够找到这些文件。

 如果您使用的是 unixODBC，请执行以下操作：
+  将 `ODBCINI` 设置到 `odbc.ini` 文件的完整路径和文件名。
+  将 `ODBCSYSINI` 设置到包含 `odbcinst.ini` 文件的目录的完整路径。
+  将 `AMAZONREDSHIFTODBCINI` 设置到 `amazon.redshiftodbc.ini` 文件的完整路径和文件名。

以下是设置上述值的示例：

```
export ODBCINI=/usr/local/odbc/odbc.ini 
export ODBCSYSINI=/usr/local/odbc 
export AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini
```

## 在 Linux 上使用数据来源名称 (DSN) 配置连接
<a name="odbc20-dsn-linux"></a>

在使用数据来源名称 (DSN) 连接到数据存储时，请配置 `odbc.ini` 文件以定义数据来源名称 (DSN)。在 `odbc.ini` 文件中设置属性以创建指定数据存储的连接信息的 DSN。

在 Linux 操作系统上，使用以下格式：

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

以下示例显示了在 Linux 操作系统上使用 64 位 ODBC 驱动程序配置 `odbc.ini`。

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932Database=dev
locale=en-US
```

## 在 Linux 上配置没有 DSN 的连接
<a name="odbc20-no-dsn-linux"></a>

 要通过不带 DSN 的连接来连接到数据存储，请在 `odbcinst.ini` 文件中定义驱动程序。然后，在应用程序中提供一个无 DSN 的连接字符串。

在 Linux 操作系统上，使用以下格式：

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

以下示例显示了在 Linux 操作系统上使用 64 位 ODBC 驱动程序配置 `odbcinst.ini`。

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
```

# 在 Apple macOS 上使用 Amazon Redshift ODBC 驱动程序
<a name="odbc20-install-config-mac"></a>

您必须在可访问 Amazon Redshift 数据仓库的客户端计算机上安装 Amazon Redshift ODBC 驱动程序。对于您要安装该驱动程序的每台计算机，有以下最低要求：
+ 计算机上的根访问权限。
+ Apple macOS 系统要求：
  + 需要 64 位版本的 Apple macOS 版本 11.7 或更高版本（例如，Apple macOS Big Sur、Monterey、Ventura 或更高版本）。Redshift ODBC 驱动程序仅支持 64 位客户端应用程序。
  + 150MB 可用磁盘空间。
  + 该驱动程序支持使用 iODBC 3.52.9\$1 或 unixODBC 2.3.7\$1 构建的应用程序。

# 下载并安装 Amazon Redshift ODBC 驱动程序
<a name="odbc20-install-mac"></a>

使用以下过程在 Apple macOS 上下载并安装 Amazon Redshift ODBC 驱动程序。仅在您当前运行的第三方应用程序获得了使用 Amazon Redshift 的认证并且需要不同驱动程序时，才能使用该特定驱动程序。

要下载并安装 ODBC 驱动程序，请执行以下操作：

1. 下载以下驱动程序：[64 位 ODBC 驱动程序版本 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit.2.1.15.0.universal.pkg) 

   x86\$164 和 arm64 架构都支持该驱动程序。此驱动程序的名称为 **Amazon Redshift ODBC 驱动程序(x64)**。

1. 审核 [Amazon Redshift ODBC 驱动程序版本 2.x 许可证](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE)。

1. 双击 .pkg 文件，然后按照向导中的步骤操作来安装该驱动程序。或者，运行以下命令：

   ```
   sudo installer -pkg PKGFileName -target /
   ```

   将 `PKGFileName` 替换为 pkg 包文件名。例如，以下命令将演示如何安装 64 位驱动程序：

   ```
   sudo installer -pkg ./AmazonRedshiftODBC-64-bit.X.X.XX.X.universal.pkg -target /
   ```

# 使用 ODBC 驱动程序管理器配置 ODBC 驱动程序
<a name="odbc20-config-mac"></a>

在 Mac 上，您可以使用 ODBC 驱动程序管理器来配置 ODBC 连接设置。ODBC 驱动程序管理器使用配置文件来定义和配置 ODBC 数据来源和驱动程序。您可以使用的 ODBC 驱动程序管理器取决于您使用的操作系统。

## 使用 iODBC 或 unixODBC 驱动程序管理器配置 ODBC 驱动程序
<a name="odbc20-config-iodbc-mac"></a>

要配置 Amazon Redshift ODBC 驱动程序，需要以下文件：
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 如果您将驱动程序安装在默认位置，则 `amazon.redshiftodbc.ini` 配置文件将位于 `/opt/amazon/redshiftodbcx64` 中。

 此外，在 `/opt/amazon/redshiftodbcx64` 下，您可以找到示例 `odbc.ini` 和 `odbcinst.ini` 文件。您可以使用这些文件作为配置 Amazon Redshift ODBC 驱动程序和数据来源名称 (DSN) 的示例。安装目录中的示例文件仅用作示例。

 我们不建议使用 Amazon Redshift ODBC 驱动程序安装目录来存储配置文件。如果您日后重新安装 Amazon Redshift ODBC 驱动程序，或将其升级到新版本，安装目录会被覆盖。您将丢失对安装目录中的文件所做的所有更改。

 为了避免出现这种情况，请将 `odbc.ini`、`odbcinst.ini` 和 `amazon.redshiftodbc.ini` 文件复制到安装目录以外的其他目录中。如果您要将这些文件复制到用户的主目录，请在这些文件名的开头添加一个句点（.），使其成为隐藏文件。

 修改文件以添加 DSN 配置信息。在创建新文件时，还需设置环境变量，以指定这些配置文件的目标存储位置。

以下示例演示如何设置环境变量：

```
export ODBCINI=/Library/ODBC/odbc.ini
export ODBCSYSINI=/Library/ODBC
export ODBCINSTINI=${ODBCSYSINI}/odbcinst.ini
```

对于命令行应用程序：将导出命令添加到 Shell 启动文件（例如，`~/.bash_profile` 或 `~/.zshrc`）中。

有关支持的驱动程序管理器版本，请参阅[此处](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install-config-mac.html) 

### 在 Apple macOS 上使用数据来源名称（DSN）配置连接
<a name="odbc20-dsn-mac"></a>

在使用数据来源名称 (DSN) 连接到数据存储时，请配置 `odbc.ini` 文件以定义数据来源名称 (DSN)。在 `odbc.ini` 文件中设置属性以创建一个 DSN，来指定 Redshift 数据仓库的连接信息。

在 Apple macOS 上，使用以下格式：

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

以下示例展示了在 Apple macOS 上使用 64 位 ODBC 驱动程序配置 `odbc.ini`。

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

### 在 Apple macOS 上配置没有 DSN 的连接
<a name="odbc20-no-dsn-mac"></a>

 要通过不带 DSN 的连接来连接到 Redshift 数据仓库，请在 `odbcinst.ini` 文件中定义驱动程序。然后，在应用程序中提供一个无 DSN 的连接字符串。

在 Apple macOS 上，使用以下格式：

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

以下示例展示了在 Apple macOS 上使用 64 位 ODBC 驱动程序配置 `odbcinst.ini`。

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
```

# 身份验证方法
<a name="odbc20-authentication-ssl"></a>

为了防止数据遭到未经授权的访问，Amazon Redshift 数据存储要求所有连接都使用用户凭据进行身份验证。

下表说明了可用于连接到 Amazon Redshift ODBC 驱动程序版本 2.x 的每种身份验证方法的必需和可选连接选项：


| 身份验证方法 | 必需 | 可选 | 
| --- | --- | --- | 
|  标准  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  IAM 配置文件  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  IAM 凭证  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  AD FS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  JWT  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 
|  Okta  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  Ping Federate  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  浏览器 Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  浏览器 SAML  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  身份验证配置文件  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  浏览器 Azure AD OAUTH2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)   如果没有单独设置 **ClusterID** 和**区域**，则必须在**主机**中设置它们。   | 
|  AWS IAM Identity Center  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 

## 使用外部凭证服务
<a name="odbc20-authentication-external"></a>

除了对 AD FS、Azure AD 和 Okta 的内置支持外，Amazon Redshift ODBC 驱动程序的 Windows 版本还提供了对其他凭证服务的支持。该驱动程序可以使用您选择的任何基于 SAML 的凭证提供程序插件对连接进行身份验证。

要在 Windows 上配置外部凭证服务，请执行以下操作：

1. 创建一个 IAM 配置文件，根据需要指定凭证提供程序插件和其他身份验证参数。配置文件必须采用 ASCII 编码，并且必须包含以下键值对，其中 `PluginPath` 是插件应用程序的完整路径：

   ```
   plugin_name = PluginPath
   ```

   例如：

   ```
   plugin_name = C:\Users\kjson\myapp\CredServiceApp.exe 
   ```

   有关如何创建配置文件的信息，请参阅《Amazon Redshift 集群管理指南》中的[使用配置文件](https://docs.aws.amazon.com/redshift/latest/mgmt/options-for-providing-iam-credentials.html#using-configuration-profile)。

1. 将驱动程序配置为使用此配置文件。驱动程序将检测并使用配置文件中指定的身份验证设置。

# 数据类型转换
<a name="odbc20-converting-data-types"></a>

Amazon Redshift ODBC 驱动程序版本 2.x 支持许多常见的数据格式，从而可在 Amazon Redshift 和 SQL 数据类型之间进行转换。

下表列出了支持的数据类型映射。


| Amazon Redshift 类型 | SQL 类型 | 
| --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  | 
|  BOOLEAN  |  SQL\$1BIT  | 
|  CHAR  |  SQL\$1CHAR  | 
|  DATE  |  SQL\$1TYPE\$1DATE  | 
|  DECIMAL  |  SQL\$1NUMERIC  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  | 
|  GEOGRAPHY  |  SQL\$1 LONGVARBINARY  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  | 
|  INTEGER  |  SQL\$1INTEGER  | 
|  REAL  |  SQL\$1REAL  | 
|  SMALLINT  |  SQL\$1SMALLINT  | 
|  SUPER  |  SQL\$1LONGVARCHAR  | 
|  TEXT  |  SQL\$1LONGVARCHAR  | 
|  TIME  |  SQL\$1TYPE\$1TIME  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  VARBYTE  |  SQL\$1LONGVARBINARY  | 
|  VARCHAR  |  SQL\$1VARCHAR  | 

# ODBC 驱动程序选项
<a name="odbc20-configuration-options"></a>

可以使用驱动程序配置选项来控制 Amazon Redshift ODBC 驱动程序的行为。驱动程序选项不区分大小写。

在 Microsoft Windows 中，您通常可以在配置数据来源名称 (DSN) 时设置驱动程序选项。您还能在以编程方式连接时，或者通过在 `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN` 中添加或更改注册表项来设置驱动程序选项。

在 Linux 中，可以在 `odbc.ini` 和 `amazon.redshiftodbc.ini` 文件中设置驱动程序配置选项。在 `amazon.redshiftodbc.ini` 文件中设置的配置选项适用于所有连接。相反，`odbc.ini` 文件中的设置配置选项特定于一个连接。在 `odbc.ini` 中设置的配置选项优先于在 `amazon.redshiftodbc.ini` 中设置的配置选项。

以下是您可以为 Amazon Redshift ODBC 版本 2.x 驱动程序指定的选项的说明：

## AccessKeyID
<a name="odbc20-accesskeyid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

 用户或角色的 IAM 访问密钥。如果您设置此参数，则还必须指定 **SecretAccessKey**。

此参数为可选的。

## app\$1id
<a name="odbc20-app-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

Okta 提供的与您的 Amazon Redshift 应用程序关联的唯一 ID。

此参数为可选的。

## ApplicationName
<a name="odbc20-application_name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

传递给 Amazon Redshift 以供审计的客户端应用程序的名称。您提供的应用程序名称显示在 [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html) 表的“application\$1name”列中。这有助于在调试问题时跟踪连接源并对其进行故障排除。

此参数为可选的。

## app\$1name
<a name="odbc20-app-name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您用于验证与 Amazon Redshift 的连接的 Okta 应用程序的名称。

此参数为可选的。

## AuthProfile
<a name="odbc20-authprofile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于管理连接设置的身份验证配置文件。如果您设置此参数，则还必须设置 **AccessKeyID** 和 **SecretAccessKey**。

此参数为可选的。

## AuthType
<a name="odbc20-authtype-option"></a>
+ **默认值**：标准
+ **数据类型** – 字符串

此选项指定在您使用“Amazon Redshift ODBC 驱动程序 DSN 设置”对话框配置 DSN 时驱动程序使用的身份验证模式：
+  标准：使用您的 Amazon Redshift 用户名和密码的标准身份验证。
+  AWS 配置文件：使用配置文件的 IAM 身份验证。
+  AWS IAM 凭证：使用 IAM 凭证的 IAM 身份验证。
+  身份提供者：AD FS：使用 Active Directory 联合身份验证服务（AD FS）的 IAM 身份验证。
+  身份提供者：身份验证插件：一种授权插件，可接受 AWS IAM Identity Center 令牌，或基于 OpenID Connect（OIDC）JSON 的身份令牌（JWT），该令牌由与 AWS IAM Identity Center 关联的任意 Web 身份提供者提供。
+  身份提供者：Azure AD：使用 Azure AD 门户的 IAM 身份验证。
+  身份提供者：JWT：使用 JSON Web 令牌（JWT）的 IAM 身份验证。
+  身份提供者：Okta：使用 Okta 的 IAM 身份验证。
+  身份提供者：PingFederate：使用 PingFederate 的 IAM 身份验证。

仅当您使用 Windows 驱动程序中的“Amazon Redshift ODBC 驱动程序 DSN 设置”对话框配置 DSN 时，此选项才可用。当您使用连接字符串或非 Windows 计算机配置连接时，驱动程序将根据您指定的凭证，自动确定是使用“标准”、“AWS 配置文件”还是“AWS IAM 凭证”身份验证。要使用身份提供者，您必须设置 **plugin\$1name** 属性。

此参数为必需参数。

## AutoCreate
<a name="odbc20-autocreate-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定当指定的用户不存在时驱动程序是否创建新用户。
+  1 \$1 TRUE：如果通过 **UID** 指定的用户不存在，则驱动程序将创建新用户。
+  0 \$1 FALSE：驱动程序不会创建新用户。如果指定的用户不存在，则身份验证将失败。

此参数为可选的。

## CaFile
<a name="odbc20-cafile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于某些形式的 IAM 身份验证的 CA 证书文件的文件路径。

 此参数仅在 Linux 上可用。

此参数为可选的。

## client\$1id
<a name="odbc20-client-id-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

与 Azure AD 中的 Amazon Redshift 应用程序关联的客户端 ID。

如果通过 Azure AD 服务进行身份验证，则此参数是必需的。

## client\$1 secret
<a name="odbc20-client-secret-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

 与 Azure AD 中的 Amazon Redshift 应用程序关联的秘密密钥。

如果通过 Azure AD 服务进行身份验证，则此参数是必需的。

## ClusterId
<a name="odbc20-clusterid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您要连接到的 Amazon Redshift 集群的名称。它将在 IAM 身份验证中使用。集群 ID 不会在**服务器**参数中指定。

此参数为可选的。

## 压缩
<a name="odbc20-compression-option"></a>
+ **默认值** – 关闭
+ **数据类型** – 字符串

用于 Amazon Redshift 服务器与客户端或驱动程序之间线路协议通信的压缩方法。

可以指定以下值：
+ lz4：将用于与 Amazon Redshift 进行线路协议通信的压缩方法设置为 `lz4`。
+ zstd：将用于与 Amazon Redshift 进行线路协议通信的压缩方法设置为 `zstd`。
+  off：与 Amazon Redshift 进行线路协议通信时不使用压缩方法。

此参数为可选的。

## 数据库
<a name="odbc20-database-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您要访问的 Amazon Redshift 数据库的名称。

此参数为必需参数。

## DatabaseMetadataCurrentDbOnly
<a name="odbc20-database-metadata-option"></a>
+ **默认值**：1
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序是否从多个数据库和集群返回元数据。
+ 1 \$1 TRUE：驱动程序仅从当前数据库返回元数据。
+  0 \$1 FALSE。驱动程序将跨多个 Amazon Redshift 数据库和集群返回元数据。

此参数为可选的。

## dbgroups\$1filter
<a name="odbc20-dbgroups-filter-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

在使用 Azure、浏览器 Azure 和浏览器 SAML 身份验证类型时，您可以指定的正则表达式，用于筛选出从 Amazon Redshift 的 SAML 响应中收到的数据库组 (DbGroup)。

此参数为可选的。

## 驱动程序
<a name="odbc20-driver-option"></a>
+ **默认值**：Amazon Redshift ODBC 驱动程序 (x64)
+ **数据类型** – 字符串

驱动程序的名称。唯一受支持的值是 **Amazon Redshift ODBC 驱动程序(x64)**。

如果您未设置 **DSN**，则此参数是必需的。

## DSN
<a name="odbc20-dsn-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

驱动程序数据来源名称的名称。应用程序将在 SQLDriverConnect API 中指定 DSN。

如果您未设置**驱动程序**，则此参数是必需的。

## EndpointUrl
<a name="odbc20-endpointurl-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于与 Amazon Redshift Coral 服务通信以进行 IAM 身份验证的覆盖端点。

此参数为可选的。

## ForceLowercase
<a name="odbc20-forcelowercase-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定在使用单点登录身份验证时，驱动程序是否会将从身份提供者发送到 Amazon Redshift 的所有数据库组 (DbGroup) 小写。
+  1 \$1 TRUE：驱动程序会将从身份提供者发送的所有 DbGroup 转换为小写。
+  0 \$1 FALSE：驱动程序不会更改 DbGroup。

此参数为可选的。

## group\$1federation
<a name="odbc20-group-federation-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，指定 `getClusterCredentialsWithIAM` API 是否用于在预调配集群中获取临时集群凭证。此选项允许 IAM 用户在预调配集群中与 Redshift 数据库角色进行集成。请注意，此选项不适用于 Redshift Serverless 命名空间。
+  1 \$1 TRUE：驱动程序使用 `getClusterCredentialsWithIAM` API 来获取预调配集群中的临时集群凭证。
+  0 \$1 FALSE：驱动程序使用默认 `getClusterCredentials` API 来获取预调配集群中的临时集群凭证。

此参数为可选的。

## https\$1proxy\$1host
<a name="odbc20-https-proxy-host-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您要通过其来传递 IAM 身份验证过程的代理服务器的主机名或 IP 地址。

此参数为可选的。

## https\$1proxy\$1password
<a name="odbc20-https-proxy-password-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于访问代理服务器的密码。它将用于 IAM 身份验证。

此参数为可选的。

## https\$1proxy\$1port
<a name="odbc20-https-proxy-port-option"></a>
+ **默认值** – 无
+ **数据类型** – 整数

代理服务器用于侦听客户端连接的端口号。它将用于 IAM 身份验证。

此参数为可选的。

## https\$1proxy\$1username
<a name="odbc20-https-proxy-username-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于访问代理服务器的用户名。它用于 IAM 身份验证。

此参数为可选的。

## IAM
<a name="odbc20-iam-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序是否使用 IAM 身份验证方法对连接进行身份验证。
+  1 \$1 TRUE：驱动程序将使用某种 IAM 身份验证方法（使用访问密钥和秘密密钥对、配置文件或凭证服务）。
+  0 \$1 FALSE。驱动程序将使用标准身份验证（使用您的数据库用户名和密码）。

此参数为可选的。

## idc\$1client\$1display\$1name
<a name="odbc20-idc_client_display_name-option"></a>
+ **默认值** – Amazon Redshift ODBC 驱动程序
+ **数据类型** – 字符串

要用于使用 BrowserIdcAuthPlugin 的客户端的显示名称。

此参数为可选的。

## idc\$1region
<a name="odbc20-idc_region"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

AWS IAM Identity Center 实例所在的 AWS 区域。

只有在 plugin\$1name 配置选项中使用 `BrowserIdcAuthPlugin` 进行身份验证时，才需要此参数。

## idp\$1host
<a name="odbc20-idp-host-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您用于对 Amazon Redshift 进行身份验证的 IdP（身份提供者）主机。

此参数为可选的。

## idp\$1port
<a name="odbc20-idp-port-option"></a>
+ **默认值** – 无
+ **数据类型** – 整数

您用于对 Amazon Redshift 进行身份验证的 IdP（身份提供者）的端口。根据您在创建、修改或迁移集群时选择的端口，允许访问所选端口。

此参数为可选的。

## idp\$1response\$1timeout
<a name="odbc20-idp-response-timeout-option"></a>
+ **默认值** – 120
+ **数据类型** – 整数

当通过浏览器插件使用 SAML 或 Azure AD 服务时，驱动程序等待身份提供者发出 SAML 响应的秒数。

此参数为可选的。

## idp\$1tenant
<a name="odbc20-idp-tenant-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

 与您的 Amazon Redshift 应用程序关联的 Azure AD 租户 ID。

如果通过 Azure AD 服务进行身份验证，则此参数是必需的。

## idp\$1partition
<a name="odbc20-idp-partition-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

指定在其中配置身份提供者（IdP）的云分区。这决定了驱动程序连接到哪个 IdP 身份验证端点。

如果将此参数留空，则驱动程序默认为商业分区。可能的值有：
+ `us-gov`：如果在 Azure Government 中配置了 IdP，请使用此值。例如，Azure AD Government 使用端点 `login.microsoftonline.us`。
+ `cn`：如果在中国云分区中配置了 IdP，请使用此值。例如，Azure AD China 使用 `login.chinacloudapi.cn` 端点。

此参数为可选的。

## idp\$1use\$1https\$1proxy
<a name="odbc20-idp-use-https-proxy-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序是否通过代理服务器传递身份提供者（IdP）的身份验证过程。
+  1 \$1 TRUE：驱动程序将通过代理服务器传递 IdP 身份验证过程。
+  0 \$1 FALSE。驱动程序不会通过代理服务器传递 IdP 身份验证过程。

此参数为可选的。

## InstanceProfile
<a name="odbc20-instanceprofile-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序在配置为使用配置文件进行身份验证时是否使用 Amazon EC2 实例配置文件。
+  1 \$1 TRUE：驱动程序将使用 Amazon EC2 实例配置文件。
+  0 \$1 FALSE。驱动程序将改用通过“配置文件名称”选项（**配置文件**）指定的串联角色配置文件。

此参数为可选的。

## issuer\$1url
<a name="odbc20-issuer_url"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

 指向 AWS IAM Identity Center 服务器的实例端点。

只有在 plugin\$1name 配置选项中使用 `BrowserIdcAuthPlugin` 进行身份验证时，才需要此参数。

## KeepAlive
<a name="odbc20-keepalive-option"></a>
+ **默认值**：1
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序是否使用 TCP keepalive 来防止连接超时。
+  1 \$1 TRUE：驱动程序将使用 TCP keepalive 来防止连接超时。
+  0 \$1 FALSE。驱动程序不会使用 TCP keepalive。

此参数为可选的。

## KeepAliveCount
<a name="odbc20-keepalivecount-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

连接被视为断开前可能丢失的 TCP keepalive 包的数量。当此参数设置为 0 时，驱动程序将使用此设置的系统默认值。

此参数为可选的。

## KeepAliveInterval
<a name="odbc20-keepaliveinterval-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

两次传输 TCP keepalive 间隔的秒数。当此参数设置为 0 时，驱动程序将使用此设置的系统默认值。

此参数为可选的。

## KeepAliveTime
<a name="odbc20-keepalivetime-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

驱动程序发送 TCP Keepalive 包前处于不活动状态的秒数。当此参数设置为 0 时，驱动程序将使用此设置的系统默认值。

此参数为可选的。

## listen\$1port
<a name="odbc20-listen-port-option"></a>
+ **默认值**：7890
+ **数据类型** – 整数

通过浏览器插件使用 SAML、Azure AD 或 AWS IAM Identity Center 服务时，驱动程序用于接收来自身份提供者的 SAML 响应的端口。

此参数为可选的。

## login\$1url
<a name="odbc20-login-url-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

在使用通用浏览器 SAML 插件时，身份提供者网站上的资源的 URL。

如果通过浏览器插件使用 SAML 或 Azure AD 服务进行身份验证，则此参数是必需的。

## loginToRp
<a name="odbc20-logintorp-option"></a>
+ **默认值**：urn:amazon:webservices
+ **数据类型** – 字符串

要用于 AD FS 身份验证类型的信赖方信任。

此字符串为可选项。

## LogLevel
<a name="odbc20-loglevel-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

使用此属性可以启用或禁用驱动程序中的日志记录，并指定包含在日志中的详细信息量。我们建议您启用日志记录的时长仅足以捕获问题即可，因为日志记录会降低性能，并会占用大量磁盘空间。

 将该属性设置为以下值之一：
+  0：关闭。禁用所有日志记录。
+  1：错误。记录也许不会导致驱动程序中止运行但会生成错误的错误事件。
+  2：API\$1CALL。记录带有函数参数值的 ODBC API 函数调用。
+  3：信息。记录描述驱动程序进度的一般信息。
+  4：MSG\$1PROTOCOL。记录驱动程序消息协议的详细信息。
+  5：调试。记录所有驱动程序活动 
+  6：DEBUG\$1APPEND。保留所有驱动程序活动的附加日志。

启用日志记录后，驱动程序将在您在 **LogPath** 属性中指定的位置生成以下日志文件：
+  一个 `redshift_odbc.log.1` 文件，它将记录连接握手期间发生的驱动程序活动。
+  一个 `redshift_odbc.log` 文件，用于与数据库建立连接后的所有驱动程序活动。

此参数为可选的。

## LogPath
<a name="odbc20-logpath-option"></a>
+ **默认值**：特定于操作系统的 TEMP 目录
+ **数据类型** – 字符串

当 **LogLevel** 大于 0 时，驱动程序保存日志文件的文件夹的完整路径。

此参数为可选的。

## Min\$1TLS
<a name="odbc20-min-tls-option"></a>
+ **默认值** – 1.2
+ **数据类型** – 字符串

 驱动程序允许数据存储以用于对连接进行加密的 TLS/SSL 的最低版本。例如，如果指定了 TLS 1.2，则无法使用 TLS 1.1 对连接进行加密。

Min\$1TLS 接受以下值：
+  1.0：连接必须至少使用 TLS 1.0。
+  1.1：连接必须至少使用 TLS 1.1。
+  1.2：连接必须至少使用 TLS 1.2。

此参数为可选的。

## partner\$1spid
<a name="odbc20-partner-spid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

在使用 PingFederate 服务验证连接时使用的合作伙伴 SPID（服务提供商 ID）值。

此参数为可选的。

## 密码\$1 PWS
<a name="odbc20-password-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

与您在“用户”字段（**UID** \$1 **用户**\$1 **LogonID**）中提供的数据库用户名相对应的密码。

此参数为可选的。

## plugin\$1name
<a name="odbc20-plugin-name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

要用于身份验证的凭证提供程序插件名称。

 支持下列值：
+  `ADFS`：使用 Active Directory 联合身份验证服务进行身份验证。
+  `AzureAD`：使用 Microsoft Azure Active Directory (AD) 服务进行身份验证。
+  `BrowserAzureAD`：使用适用于 Microsoft Azure Active Directory (AD) 服务的浏览器插件进行身份验证。
+  `BrowserIdcAuthPlugin `：使用 AWS IAM Identity Center 的授权插件。
+  `BrowserSAML`：使用适用于 SAML 服务（如 Okta 或 Ping）的浏览器插件进行身份验证。
+  `IdpTokenAuthPlugin`：一种授权插件，可接受 AWS IAM Identity Center 令牌，或者基于 OpenID Connect（OIDC）JSON 的身份令牌（JWT），该令牌由与 AWS IAM Identity Center 关联的任意 Web 身份提供者提供。
+  `JWT`：使用 JSON Web 令牌 (JWT) 进行身份验证。
+  `Ping`：使用 PingFederate 服务进行身份验证。
+  `Okta`：使用 Okta 服务进行身份验证。

此参数为可选的。

## 端口 \$1 PortNumber
<a name="odbc20-port-option"></a>
+ **默认值**：5439
+ **数据类型** – 整数

Amazon Redshift 服务器用于侦听客户端连接的 TCP 端口号。

此参数为可选的。

## preferred\$1role
<a name="odbc20-preferred-role-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您希望在 Amazon Redshift 连接期间担任的角色。它将用于 IAM 身份验证。

此参数为可选的。

## 配置文件
<a name="odbc20-profile-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于在 Amazon Redshift 中进行身份验证的用户 AWS 配置文件的名称。
+  如果“使用实例配置文件”参数（**InstanceProfile** 属性）设置为 1 \$1 TRUE，则该设置将优先，驱动程序将改用 Amazon EC2 实例配置文件。
+  包含配置文件的凭证文件的默认位置为 `~/.aws/Credentials`。`AWS_SHARED_CREDENTIALS_FILE` 环境变量可用于指向其他凭证文件。

此参数为可选的。

## provider\$1name
<a name="odbc20-provider-name-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用户使用 CREATE IDENTITY PROVIDER 查询创建的身份验证提供程序。它将用于本机 Amazon Redshift 身份验证。

此参数为可选的。

## ProxyHost
<a name="odbc20-proxyhost-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

要通过其连接的代理服务器的主机名或 IP 地址。

此参数为可选的。

## ProxyPort
<a name="odbc20-proxyport-option"></a>
+ **默认值** – 无
+ **数据类型** – 整数

代理服务器用于侦听客户端连接的端口号。

此参数为可选的。

## ProxyPwd
<a name="odbc20-proxypwd-option"></a>
+ **默认 ValPrevious ODBC 驱动程序版本**：无
+ **数据类型** – 字符串

用于访问代理服务器的密码。

此参数为可选的。

## ProxyUid
<a name="odbc20-proxyuid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于访问代理服务器的用户名。

此参数为可选的。

## ReadOnly
<a name="odbc20-readonly-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序是否处于只读模式。
+  1 \$1 TRUE：连接处于只读模式，无法写入数据存储。
+  0 \$1 FALSE：连接不处于只读模式，可以写入数据存储。

此参数为可选的。

## region
<a name="odbc20-region-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

您的集群所在的 AWS 区域。

此参数为可选的。

## SecretAccessKey
<a name="odbc20-secretaccesskey-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

 用户或角色的 IAM 秘密密钥。如果您设置此参数，则还必须设置 **AccessKeyID**。

此参数为可选的。

## SessionToken
<a name="odbc20-sessiontoken-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

 与您用于身份验证的 IAM 角色关联的临时 IAM 会话令牌。

此参数为可选的。

## 服务器 \$1 HostName \$1 主机
<a name="odbc20-server-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

要连接到的端点服务器。

此参数为必需参数。

## ssl\$1insecure
<a name="odbc20-ssl-insecure-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序是否检查 IdP 服务器证书的真实性。
+  1 \$1 TRUE：驱动程序不检查 IdP 服务器证书的真实性。
+  0 \$1 FALSE：驱动程序检查 IdP 服务器证书的真实性 

此参数为可选的。

## SSLMode
<a name="odbc20-sslmode-option"></a>
+ **默认值** – `verify-ca`
+ **数据类型** – 字符串

在连接到 Amazon Redshift 时要使用的 SSL 证书验证模式。以下是可能的值：
+  `verify-full`：仅使用 SSL、受信任的证书颁发机构和与证书匹配的服务器名称进行连接。
+  `verify-ca`：仅使用 SSL 和受信任的证书颁发机构进行连接。
+  `require`：仅使用 SSL 进行连接。
+  `prefer`：使用 SSL 进行连接（如果可用）。否则，将在不使用 SSL 的情况下进行连接。
+  `allow`：默认情况下，不使用 SSL 进行连接。如果服务器需要 SSL 连接，则使用 SSL。
+  `disable`：不使用 SSL 进行连接。

此参数为可选的。

## StsConnectionTimeout
<a name="odbc20-stsconnectiontimeout-option"></a>
+ **默认值** - 0
+ **数据类型** – 整数

IAM 连接的最长等待时间（以秒为单位）。如果设置为 0 或未指定，驱动程序将为每次 AWS STS 调用等待 60 秒。

此参数为可选的。

## StsEndpointUrl
<a name="odbc20-stsendpointurl-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

此选项指定用于与 AWS Security Token Service (AWS STS) 通信的覆盖端点。

此参数为可选的。

## 令牌
<a name="jdbc20-token-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

AWS IAM Identity Center 提供的访问令牌，或 OpenID Connect（OIDC）JSON Web 令牌（JWT，JSON Web Token），该令牌由与 AWS IAM Identity Center 关联的 Web 身份提供者提供。您的应用程序必须通过 AWS IAM Identity Center 或与 AWS IAM Identity Center 关联的身份提供者，对您的应用程序用户进行身份验证，从而生成此令牌。

此参数可用于 `IdpTokenAuthPlugin`。

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

`IdpTokenAuthPlugin` 中使用的令牌类型。

可以指定以下值：

**ACCESS\$1TOKEN**  
如果您使用 AWS IAM Identity Center 提供的访问令牌，请输入此项。

**EXT\$1JWT**  
如果您使用 OpenID Connect（OIDC）JSON Web 令牌（JWT）（该令牌由与 AWS IAM Identity Center 集成的基于 Web 的身份提供者提供），请输入此项。

此参数可用于 `IdpTokenAuthPlugin`。

## UID \$1 用户 \$1 LogonID
<a name="odbc20-uid-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

用于访问 Amazon Redshift 服务器的用户名。

如果使用数据库身份验证，则此参数是必需项。

## UseUnicode
<a name="odbc20-useunicode-option"></a>
+ **默认值** - 0
+ **数据类型** – Boolean

一个布尔值，用于指定驱动程序是以 Unicode 还是常规 SQL 类型返回 Redshift 数据。
+  1 \$1 TRUE：驱动程序返回字符数据类型的宽 SQL 类型。
  + 返回 SQL\$1WCHAR 而不是 SQL\$1CHAR。
  + 返回 SQL\$1WVARCHAR 而不是 SQL\$1VARCHAR。
  + 返回 SQL\$1WLONGVARCHAR 而不是 SQL\$1LONGVARCHAR。
+  0 \$1 FALSE：驱动程序返回字符数据类型的正常 SQL 类型。
  + 返回 SQL\$1CHAR 而不是 SQL\$1WCHAR。
  + 返回 SQL\$1VARCHAR 而不是 SQL\$1WVARCHAR。
  + 返回 SQL\$1LONGVARCHAR 而不是 SQL\$1WLONGVARCHAR。

此参数为可选的。它在驱动程序版本 2.1.15 和更高版本中可用。

## web\$1identity\$1token
<a name="odbc20-web-identity-token-option"></a>
+ **默认值** – 无
+ **数据类型** – 字符串

身份提供者提供的 OAUTH 令牌。它将在 JWT 插件中使用。

如果您将 **plugin\$1name** 参数设置为 BasicJwtCredentialsProvider，则此参数是必需项。

# 早期 ODBC 驱动程序版本
<a name="odbc20-previous-versions"></a>

仅当您的工具需要使用某个特定版本的驱动程序时，才能下载 Amazon Redshift ODBC 驱动程序版本 2.x 的以前版本。

## 使用适用于 Microsoft Windows 的以前 ODBC 驱动程序版本
<a name="odbc20-previous-versions-windows"></a>

以下是适用于 Microsoft Windows 的旧 Amazon Redshift ODBC 驱动程序版本 2.x：
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi) 

## 使用适用于 Linux 的以前 ODBC 驱动程序版本
<a name="odbc20-previous-versions-linux"></a>

以下是适用于 Linux 的旧 Amazon Redshift ODBC 驱动程序版本 2.x：
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86_64.rpm) 

## 使用适用于 Apple macOS 的早期 ODBC 驱动程序版本
<a name="odbc20-previous-versions-mac"></a>

以下是适用于 Apple macOS 的旧 Amazon Redshift ODBC 驱动程序版本 2.x：
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg) 

# 配置 ODBC 驱动程序版本 1.x 连接
<a name="configure-odbc-connection"></a>

您可以使用 ODBC 连接将许多第三方 SQL 客户端工具和应用程序连接到您的 Amazon Redshift 集群。为此，请在您的客户端计算机或 Amazon EC2 实例上设置连接。如果您的客户端工具支持 JDBC，您可以选择使用 JDBC 连接而非 ODBC 连接，因为 JDBC 连接更加易于配置。但是，如果您的客户端工具不支持 JDBC，请按此部分中的步骤配置 ODBC 连接。

Amazon Redshift 提供了适用于 Linux、Windows 和 macOS X 操作系统的 64-bit ODBC 驱动程序。32 位 ODBC 驱动程序已停产。除了紧急安全补丁外，不会发布进一步的更新。

有关 ODBC 驱动程序功能和先决条件的最新信息，请参阅 [Amazon Redshift ODBC 驱动程序发布说明](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Release+Notes.pdf)。

有关 Amazon Redshift ODBC 驱动程序的安装和配置信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

**Topics**
+ [

# 获取 ODBC URL
](obtain-odbc-url.md)
+ [

# 在 Microsoft Windows 上使用 Amazon Redshift ODBC 驱动程序
](install-odbc-driver-windows.md)
+ [

# 在 Linux 上使用 Amazon Redshift ODBC 驱动程序
](install-odbc-driver-linux.md)
+ [

# 在 macOS X 上使用 Amazon Redshift ODBC 驱动程序
](install-odbc-driver-mac.md)
+ [

# ODBC 驱动程序选项
](configure-odbc-options.md)
+ [

# 早期 ODBC 驱动程序版本
](odbc-previous-versions.md)

# 获取 ODBC URL
<a name="obtain-odbc-url"></a>

Amazon Redshift 在 Amazon Redshift 控制台中显示您的集群的 ODBC URL。此 URL 包含在客户端计算机与数据库之间建立连接时所需的信息。

 ODBC URL 采用以下格式：`Driver={driver};Server=endpoint;Database=database_name;UID=user_name;PWD=password;Port=port_number`

前面显示的格式的字段具有以下值。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/obtain-odbc-url.html)

 上表中的字段可以包含以下特殊字符：

```
[]{}(),;?*=!@ 
```

 如果您使用这些特殊字符，则必须用大括号括起值。例如，连接字符串 `PWD={Your;password123};` 中的密码值表示为 `Your;password123`。

 由于 `Field=value` 对使用分号分隔，因此中间具有任意数量空格的 `}` 和 `;` 组合将被视为 `Field={value};` 对的结尾。我们建议您避免在字段值中使用序列 `};`。例如，如果您将密码值设置为 `PWD={This is a passwor} ;d};`，则密码将为 `This is a passwor} ;`，URL 将出错。

以下是一个示例 ODBC URL。

```
Driver={Amazon Redshift (x64)};
                    Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com;
                    Database=dev; 
                    UID=adminuser;
                    PWD=insert_your_admin_user_password_here;
                    Port=5439
```

有关如何获取 ODBC 连接的信息，请参阅 [查找集群连接字符串](connecting-connection-string.md)。

# 在 Microsoft Windows 上使用 Amazon Redshift ODBC 驱动程序
<a name="install-odbc-driver-windows"></a>

您可以在可访问 Amazon Redshift 数据仓库的客户端计算机上安装 Amazon Redshift ODBC 驱动程序。在其上安装该驱动程序的每台计算机都必须满足一系列最低系统要求。有关最低系统要求的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

**Topics**
+ [

# 下载并安装 Amazon Redshift ODBC 驱动程序
](odbc-driver-windows-how-to-install.md)
+ [

# 为 ODBC 连接创建系统 DSN 条目
](create-dsn-odbc-windows.md)

# 下载并安装 Amazon Redshift ODBC 驱动程序
<a name="odbc-driver-windows-how-to-install"></a>

使用以下过程下载适用于 Windows 操作系统的 Amazon Redshift ODBC 驱动程序。仅在您当前运行的第三方应用程序获得了使用 Amazon Redshift 的认证并且需要特定的驱动程序时，才使用上述驱动程序之外的驱动程序。

**安装 ODBC 驱动程序**

1. 根据您的 SQL 客户端工具或应用程序的系统架构，下载以下驱动程序之一：
   + [64 位 ODBC 驱动程序版本 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC64-1.6.3.1008.msi) 

     此驱动程序的名称为 Amazon Redshift (x64)。
   + [32 位 ODBC 驱动程序版本 1.4.52](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC32-1.4.52.1000.msi) 

     此驱动程序的名称为 Amazon Redshift (x86)。32 位 ODBC 驱动程序已停产。除了紧急安全补丁外，不会发布进一步的更新。
**注意**  
根据您的 SQL 客户端工具或应用程序的系统架构，下载相应的 MSI 包。例如，如果您的 SQL 客户端工具是 64 位，则安装 64 位驱动程序。

    然后，下载并查看 [Amazon Redshift ODBC 和 JDBC 驱动程序许可证协议](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf)。

1.  双击 .msi 文件，然后按照向导中的步骤安装驱动程序。

# 为 ODBC 连接创建系统 DSN 条目
<a name="create-dsn-odbc-windows"></a>

下载并安装 ODBC 驱动程序后，将数据来源名称 (DSN) 条目添加到客户端计算机或 Amazon EC2 实例。SQL 客户端工具将使用此数据源连接到 Amazon Redshift 数据库。

建议您创建系统 DSN 而不是用户 DSN。一些应用程序使用不同的用户账户加载数据。这些应用程序可能无法检测在其他用户账户下创建的用户 DSN。

**注意**  
对于使用 AWS Identity and Access Management (IAM) 凭证或身份提供者 (IdP) 凭证进行的身份验证，需要执行其他步骤。有关更多信息，请参阅 [步骤 5：配置 JDBC 或 ODBC 连接以使用 IAM 凭证](generating-iam-credentials-steps.md#generating-iam-credentials-configure-jdbc-odbc)。

有关如何创建系统 DSN 条目的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

**在 Windows 上为 ODBC 连接创建系统 DSN 条目**

1. 在**开始**菜单上，打开**ODBC 数据源**。

   请确保您选择的 ODBC Data Source Administrator 的位数与用于连接 Amazon Redshift 的客户端应用程序的位数相同。

1. 在 **ODBC 数据数据源管理器**中，选择**驱动程序**选项卡并找到驱动程序文件夹。
   + **Amazon Redshift ODBC 驱动程序（64 位）**
   + **Amazon Redshift ODBC 驱动程序（32 位）**

1.  选择**系统 DSN** 选项卡为计算机上的所有用户配置驱动程序，或选择**用户 DSN** 选项卡仅为您的用户账户配置驱动程序。

1.  选择**添加**。系统随即打开 **Create New Data Source** 窗口。

1.  选择 **Amazon Redshift** ODBC 驱动程序，然后选择**完成**。系统随即打开 ** Amazon Redshift ODBC Driver DSN Setup** 窗口。

1. 在 **Connection Settings** 下，输入以下信息：
<a name="rs-mgmt-dsn"></a>
**Data source name**  
输入数据源的名称。在稍后创建到集群的连接时，您可以使用任何名称来标识该数据源。例如，如果您遵循的是《Amazon Redshift 入门指南》**，则可键入 `exampleclusterdsn`，以便轻松记住将与此 DSN 关联的集群。
<a name="rs-mgmt-server"></a>
**服务器**  
为您的 Amazon Redshift 集群指定端点。您可以在 Amazon Redshift 控制台中的集群详细信息页面上找到该信息。有关更多信息，请参阅 [在 Amazon Redshift 中配置连接](configuring-connections.md)。
<a name="rs-mgmt-port"></a>
**端口**  
输入数据库使用的端口号。使用集群在启动或修改时配置为使用的端口。
<a name="rs-mgmt-database"></a>
**数据库**  
输入 Amazon Redshift 数据库的名称。如果您在未指定数据库名称的情况下启动了集群，请输入 `dev`。否则，请使用您在启动过程中选择的名称。如果您遵循的是《Amazon Redshift 入门指南》**，输入 `dev`。

1. 在**身份验证**下，指定配置选项以配置标准或 IAM 身份验证。有关身份验证选项的信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南》**中的“在 Windows 上配置身份验证”。

1. 在 **SSL Settings** 下，指定以下项目的值：
<a name="rs-mgmt-ssl-authentication"></a>
**SSL authentication**  
选择处理安全套接字层 (SSL) 的模式。在测试环境中，可以使用 `prefer`。但是，对于生产环境以及在需要安全交换数据时，请使用 `verify-ca` 或 `verify-full`。有关在 Windows 上使用 SSL 的更多信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南》**中的“在 Windows 上配置 SSL 验证”。

1. 在**其他选项**下，指定有关如何将查询结果返回至您的 SQL 客户端工具或应用程序的选项。有关更多信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南》**中的“在 Windows 上配置其他选项”。

1. 在**日志记录选项**中，指定日志记录选项的值。有关更多信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南》**中的“在 Windows 上配置日志记录选项”。

   然后选择**确定**。

1. 在**数据类型选项** 下，指定数据类型的值。有关更多信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南》**中的“在 Windows 上配置数据类型选项”。

   然后选择**确定**。

1. 选择**测试**。如果客户端计算机可以连接到 Amazon Redshift 数据库，您会看到以下消息：**连接成功**。

    如果客户端计算机无法连接到数据库，您可以进行故障排除，解决可能存在的问题。有关更多信息，请参阅 [解决 Amazon Redshift 中的连接问题](troubleshooting-connections.md)。

1. 在 Windows 上配置 TCP Keepalive 以防止连接超时。有关如何在 Windows 上配置 TCP Keepalive 的信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南》**。

1. 要帮助进行故障排除，请配置日志记录。有关如何在 Windows 上配置日志记录的信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南》**。

# 在 Linux 上使用 Amazon Redshift ODBC 驱动程序
<a name="install-odbc-driver-linux"></a>

您可以在可访问 Amazon Redshift 数据仓库的客户端计算机上安装 Amazon Redshift ODBC 驱动程序。在其上安装该驱动程序的每台计算机都必须满足一系列最低系统要求。有关最低系统要求的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

**Topics**
+ [

# 下载并安装 Amazon Redshift ODBC 驱动程序
](odbc-driver-linux-how-to-install.md)
+ [

# 使用 ODBC 驱动程序管理器配置驱动程序
](odbc-driver-configure-linux.md)

# 下载并安装 Amazon Redshift ODBC 驱动程序
<a name="odbc-driver-linux-how-to-install"></a>

按照此部分中的步骤在受支持的 Linux 发行版上下载并安装 Amazon Redshift ODBC 驱动程序。在安装过程中，驱动程序文件将被安装到以下目录中：
+ `/opt/amazon/redshiftodbc/lib/64`（对于 64 位驱动程序）
+ `/opt/amazon/redshiftodbc/ErrorMessages`
+ `/opt/amazon/redshiftodbc/Setup`
+  `/opt/amazon/redshiftodbc/lib/32`（对于 32 位驱动程序）<a name="rs-mgmt-install-odbc-drivers-linux"></a>

**要安装 Amazon Redshift ODBC 驱动程序**

1. 根据您的 SQL 客户端工具或应用程序的系统架构，下载以下驱动程序之一：
   + [64 位 RPM 驱动程序版本 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.rpm) 
   + [64 位 Debian 驱动程序版本 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.deb) 
   + [32 位驱动程序版本 1.4.52](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-32-bit-1.4.52.1000-1.i686.rpm) 

   这些驱动程序的名称均是 Amazon Redshift ODBC 驱动程序。32 位 ODBC 驱动程序已停产。除了紧急安全补丁外，不会发布进一步的更新。
**注意**  
下载适用于您的 SQL 客户端工具或应用程序系统架构的程序包。例如，如果您的客户端工具是 64 位，则安装 64 位驱动程序。

    然后，下载并查看 [Amazon Redshift ODBC 和 JDBC 驱动程序许可证协议](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf)。

1. 转至您下载程序包的位置，然后运行以下命令之一。使用适用于您的 Linux 发行版的命令。
   + 在 RHEL 和 CentOS 操作系统上，运行以下命令。

     ```
     yum -nogpgcheck localinstall RPMFileName
     ```

     将 *`RPMFileName`* 替换为 RPM 包文件名。例如，以下命令将演示如何安装 64 位驱动程序。

     ```
     yum -nogpgcheck localinstall AmazonRedshiftODBC-64-bit-1.x.xx.xxxx-x.x86_64.rpm
     ```
   + 在 SLES 上，运行以下命令。

     ```
     zypper install RPMFileName
     ```

     将 *`RPMFileName`* 替换为 RPM 包文件名。例如，以下命令将演示如何安装 64 位驱动程序。

     ```
     zypper install AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.rpm
     ```
   + 在 Debian 上，运行以下命令。

     ```
     sudo apt install ./DEBFileName.deb
     ```

     将 `DEBFileName.deb` 替换为 Debian 包文件名。例如，以下命令将演示如何安装 64 位驱动程序。

     ```
     sudo apt install ./AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.deb
     ```

**重要**  
安装完驱动程序后，请对其进行配置以在您的系统上使用。有关驱动程序配置的更多信息，请参阅[使用 ODBC 驱动程序管理器配置驱动程序使用 ODBC 驱动程序管理器配置驱动程序](odbc-driver-configure-linux.md)。

# 使用 ODBC 驱动程序管理器配置驱动程序
<a name="odbc-driver-configure-linux"></a>

在 Linux 操作系统上，您可以使用 ODBC 驱动程序管理器来配置 ODBC 连接设置。ODBC 驱动程序管理器使用配置文件来定义和配置 ODBC 数据来源和驱动程序。您可以使用的 ODBC 驱动程序管理器取决于您使用的操作系统。对于 Linux，则是 unixODBC 驱动程序管理器。

有关用来配置 Amazon Redshift ODBC 驱动程序的受支持的 ODBC 驱动程序管理器的更多信息，请参阅 [在 Linux 上使用 Amazon Redshift ODBC 驱动程序在 Linux 上使用 ODBC 驱动程序](install-odbc-driver-linux.md)（适用于 Linux 操作系统）。另请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上指定 ODBC 驱动程序管理器”。

要配置 Amazon Redshift ODBC 驱动程序，需要提供以下三个文件：`amazon.redshiftodbc.ini`、`odbc.ini` 和 `odbcinst.ini`。

如果您将驱动程序安装在默认位置，`amazon.redshiftodbc.ini` 配置文件则位于以下目录之一：
+ `/opt/amazon/redshiftodbc/lib/64`（适用于 Linux 操作系统上的 64 位驱动程序）
+ `/opt/amazon/redshiftodbc/lib/32`（适用于 Linux 操作系统上的 32 位驱动程序）

此外，在 Linux 上的 `/opt/amazon/redshiftodbc/Setup` 下，还有示例 `odbc.ini` 和 `odbcinst.ini` 文件。您可以使用这些文件作为配置 Amazon Redshift ODBC 驱动程序和数据来源名称 (DSN) 的示例。

我们不建议使用 Amazon Redshift ODBC 驱动程序安装目录来存储配置文件。`Setup` 目录中的示例文件仅用作示例。如果您日后重新安装 Amazon Redshift ODBC 驱动程序，或将其升级到新版本，安装目录会被覆盖。之后，您将丢失对这些文件所做的全部更改。

为了避免出现这种情况，请将 `amazon.redshiftodbc.ini` 文件复制到安装目录以外的其他目录中。如果您要将此文件复制到用户的主目录，请在文件名的开头添加一个句点 (.)，使其成为隐藏文件。

对于 `odbc.ini` 和 `odbcinst.ini` 文件，应在用户的主目录中使用配置文件，或者在其他目录中创建新版本。默认情况下，您的 Linux 操作系统应在用户的主目录（`/home/$USER` 或 `~/`）中包含 `odbc.ini` 文件和 `odbcinst.ini` 文件。这些默认文件均为隐藏文件（通过在每个文件名的前面添加圆点 (.) 表示）。这些文件仅当您使用 `-a` 标志列出目录内容时显示。

对于 `odbc.ini` 和 `odbcinst.ini` 文件，不管您选择哪个选项，都需对这些文件进行修改，以添加驱动程序和 DSN 配置信息。如果您创建新文件，则还需设置环境变量，以指定这些配置文件的目标存储位置。

默认情况下，ODBC 驱动程序管理器将配置为使用主目录中隐藏的 `odbc.ini` 和 `odbcinst.ini` 配置文件版本（名为 .`odbc.ini` 和 .`odbcinst.ini`）。它们也被配置为使用驱动程序安装目录的 `amazon.redshiftodbc.ini` 子文件夹中的 `/lib` 文件。如果您将这些配置文件存储在其他位置，请设置如下所述的环境变量，以便驱动程序管理器能够找到这些文件。有关更多信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“指定驱动程序配置文件的位置”。 

## 在 Linux 操作系统上创建数据来源名称
<a name="configure-odbc-ini-file"></a>

 在使用数据源名称 (DSN) 连接到数据存储时，请配置 `odbc.ini` 文件以定义 DSN。在 `odbc.ini` 文件中设置属性以创建指定数据存储的连接信息的 DSN。

有关如何配置 `odbc.ini` 文件的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上创建数据源名称” 

 请在 Linux 操作系统上使用以下格式。

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

以下示例显示了在 Linux 操作系统上使用 64 位 ODBC 驱动程序配置 odbc.ini。

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift (x64)

[Amazon Redshift (x64)]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

以下示例显示了在 Linux 操作系统上使用 32 位 ODBC 驱动程序配置 odbc.ini。

```
[ODBC Data Sources]
Amazon_Redshift_x32=Amazon Redshift (x86)

[Amazon Redshift (x86)]
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## 在 Linux 操作系统上配置没有 DSN 的连接
<a name="configure-odbcinst-ini-file"></a>

要通过不带 DSN 的连接来连接到数据存储，请在 `odbcinst.ini` 文件中定义驱动程序。然后，在应用程序中提供一个无 DSN 的连接字符串。

有关在这种情况下如何配置 `odbcinst.ini` 文件的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上配置没有 DSN 的连接”。 

请在 Linux 操作系统上使用以下格式。

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

以下示例显示了安装在 Linux 操作系统默认目录中的 64 位驱动程序的 `odbcinst.ini` 配置。

```
[ODBC Drivers]
Amazon Redshift (x64)=Installed

[Amazon Redshift (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
```

以下示例显示了安装在 Linux 操作系统默认目录中的 32 位驱动程序的 `odbcinst.ini` 配置。

```
[ODBC Drivers]
Amazon Redshift (x86)=Installed

[Amazon Redshift (x86)]
Description=Amazon Redshift ODBC Driver (32-bit)
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
```

## 配置环境变量
<a name="rs-mgmt-config-global-env-variables"></a>

使用正确的 ODBC 驱动程序管理器加载正确的驱动程序。为此，请设置库路径环境变量。有关更多信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上指定 ODBC 驱动程序管理器”。

默认情况下，ODBC 驱动程序管理器将配置为使用主目录中隐藏的 `odbc.ini` 和 `odbcinst.ini` 配置文件版本（名为 .`odbc.ini` 和 .`odbcinst.ini`）。它们也被配置为使用驱动程序安装目录的 `/lib` 子文件夹中的 `amazon.redshiftodbc.ini` 文件。如果您将这些配置文件存储在其他位置，请设置环境变量，以便驱动程序管理器能够找到这些文件。有关更多信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南**中的“指定驱动程序配置文件的位置”。

## 配置连接功能
<a name="connection-config-features"></a>

可以为 ODBC 设置配置以下连接功能：
+ 配置 ODBC 驱动程序以提供凭证并验证与 Amazon Redshift 数据库的连接。
+ 如果要连接到启用了 SSL 的 Amazon Redshift 服务器，请将 ODBC 驱动程序配置为连接到启用了安全套接字层 (SSL) 的套接字。
+ 将 ODBC 驱动程序配置为通过代理服务器连接到 Amazon Redshift。
+ 将 ODBC 驱动程序配置为使用查询处理模式来防止查询占用过多内存。
+ 将 ODBC 驱动程序配置为通过代理服务器传递 IAM 身份验证过程。
+ 将 ODBC 驱动程序配置为使用 TCP Keepalive 来防止连接超时。

有关这些连接功能的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

# 在 macOS X 上使用 Amazon Redshift ODBC 驱动程序
<a name="install-odbc-driver-mac"></a>

您可以在可访问 Amazon Redshift 数据仓库的客户端计算机上安装驱动程序。在其上安装该驱动程序的每台计算机都必须满足一系列最低系统要求。有关最低系统要求的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

**Topics**
+ [

# 下载并安装 Amazon Redshift ODBC 驱动程序
](odbc-driver-mac-how-to-install.md)
+ [

# 使用 ODBC 驱动程序管理器配置驱动程序
](odbc-driver-configure-mac.md)

# 下载并安装 Amazon Redshift ODBC 驱动程序
<a name="odbc-driver-mac-how-to-install"></a>

按照此部分中的步骤操作，在受支持的 macOS X 版本上下载和安装 Amazon Redshift ODBC 驱动程序。在安装过程中，驱动程序文件将被安装到以下目录中：
+ `/opt/amazon/redshift/lib/universal`
+ `/opt/amazon/redshift/ErrorMessages`
+ `/opt/amazon/redshift/Setup`<a name="rs-mgmt-install-odbc-drivers-mac"></a>

**要在 macOS X 上安装 Amazon Redshift ODBC 驱动程序**

1. 要在 macOS X 上安装 Amazon Redshift ODBC 驱动程序，请下载 [macOS 驱动程序版本 1.6.3](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit.1.6.3.1008.universal.pkg)。

   然后，下载并查看 [Amazon Redshift ODBC 和 JDBC 驱动程序许可证协议](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf)。

1. 双击 **AmazonRedshiftODBC.pkg** 以运行安装程序。

1. 按照安装程序中的步骤完成驱动程序的安装过程。要执行安装，需同意许可协议的条款。

**重要**  
安装完驱动程序后，请对其进行配置以在您的系统上使用。有关驱动程序配置的更多信息，请参阅[使用 ODBC 驱动程序管理器配置驱动程序使用 ODBC 驱动程序管理器配置驱动程序](odbc-driver-configure-mac.md)。

# 使用 ODBC 驱动程序管理器配置驱动程序
<a name="odbc-driver-configure-mac"></a>

在 macOS X 操作系统上，您可以使用 ODBC 驱动程序管理器来配置 ODBC 连接设置。ODBC 驱动程序管理器使用配置文件来定义和配置 ODBC 数据来源和驱动程序。您可以使用的 ODBC 驱动程序管理器取决于您使用的操作系统。对于 macOS X 操作系统，则是 iODBC 驱动程序管理器。

有关用来配置 Amazon Redshift ODBC 驱动程序的受支持的 ODBC 驱动程序管理器的更多信息，请参阅 [在 macOS X 上使用 Amazon Redshift ODBC 驱动程序在 macOS X 上使用 ODBC 驱动程序](install-odbc-driver-mac.md)（适用于 macOS X 操作系统）。另请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上指定 ODBC 驱动程序管理器”。

要配置 Amazon Redshift ODBC 驱动程序，需要提供以下三个文件：`amazon.redshiftodbc.ini`、`odbc.ini` 和 `odbcinst.ini`。

如果您将驱动程序安装在默认位置，则 `amazon.redshiftodbc.ini` 配置文件将位于 `/opt/amazon/redshift/lib` 中。

此外，在 macOS X 上的 `/opt/amazon/redshift/Setup` 下，还有示例 `odbc.ini` 和 `odbcinst.ini` 文件。您可以使用这些文件作为配置 Amazon Redshift ODBC 驱动程序和数据来源名称 (DSN) 的示例。

我们不建议使用 Amazon Redshift ODBC 驱动程序安装目录来存储配置文件。`Setup` 目录中的示例文件仅用作示例。如果您日后重新安装 Amazon Redshift ODBC 驱动程序，或将其升级到新版本，安装目录会被覆盖。之后，您将丢失对这些文件所做的全部更改。

为了避免出现这种情况，请将 `amazon.redshiftodbc.ini` 文件复制到安装目录以外的其他目录中。如果您要将此文件复制到用户的主目录，请在文件名的开头添加一个句点 (.)，使其成为隐藏文件。

对于 `odbc.ini` 和 `odbcinst.ini` 文件，应在用户的主目录中使用配置文件，或者在其他目录中创建新版本。默认情况下，您的 macOS X 操作系统应在用户的主目录（`/home/$USER` 或 `~/`）中提供有 `odbc.ini` 文件和 `odbcinst.ini` 文件。这些默认文件均为隐藏文件（通过在每个文件名的前面添加圆点 (.) 表示）。这些文件仅当您使用 `-a` 标志列出目录内容时显示。

对于 `odbc.ini` 和 `odbcinst.ini` 文件，不管您选择哪个选项，都需对这些文件进行修改，以添加驱动程序和 DSN 配置信息。如果您创建新文件，则还需设置环境变量，以指定这些配置文件的目标存储位置。

默认情况下，ODBC 驱动程序管理器将配置为使用主目录中隐藏的 `odbc.ini` 和 `odbcinst.ini` 配置文件版本（名为 .`odbc.ini` 和 .`odbcinst.ini`）。它们也被配置为使用驱动程序安装目录的 `amazon.redshiftodbc.ini` 子文件夹中的 `/lib` 文件。如果您将这些配置文件存储在其他位置，请设置如下所述的环境变量，以便驱动程序管理器能够找到这些文件。有关更多信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“指定驱动程序配置文件的位置”。 

## 在 macOS X 操作系统上创建数据来源名称
<a name="configure-odbc-ini-file"></a>

 在使用数据源名称 (DSN) 连接到数据存储时，请配置 `odbc.ini` 文件以定义 DSN。在 `odbc.ini` 文件中设置属性以创建指定数据存储的连接信息的 DSN。

有关如何配置 `odbc.ini` 文件的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上创建数据源名称” 

请在 macOS X 操作系统上使用以下格式。

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/lib/amazonredshiftodbc.dylib

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

 以下示例显示了 `odbc.ini` 在 macOS X 操作系统上的配置。

```
[ODBC Data Sources]
Amazon_Redshift_dylib=Amazon Redshift DSN for macOS X

[Amazon Redshift DSN for macOS X]
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## 在 macOS X 操作系统上配置没有 DSN 的连接
<a name="configure-odbcinst-ini-file"></a>

要通过不带 DSN 的连接来连接到数据存储，请在 `odbcinst.ini` 文件中定义驱动程序。然后，在应用程序中提供一个无 DSN 的连接字符串。

有关在这种情况下如何配置 `odbcinst.ini` 文件的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上配置没有 DSN 的连接”。。

请在 macOS X 操作系统上使用以下格式。

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/lib/amazonredshiftodbc.dylib
    
...
```

以下示例显示了安装在 macOS X 操作系统默认目录中的驱动程序的 `odbcinst.ini` 配置。

```
[ODBC Drivers]
Amazon RedshiftODBC DSN=Installed

[Amazon RedshiftODBC DSN]
Description=Amazon Redshift ODBC Driver for macOS X
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
```

## 配置环境变量
<a name="rs-mgmt-config-global-env-variables"></a>

使用正确的 ODBC 驱动程序管理器加载正确的驱动程序。为此，请设置库路径环境变量。有关更多信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)中的“在非 Windows 计算机上指定 ODBC 驱动程序管理器”。

默认情况下，ODBC 驱动程序管理器将配置为使用主目录中隐藏的 `odbc.ini` 和 `odbcinst.ini` 配置文件版本（名为 .`odbc.ini` 和 .`odbcinst.ini`）。它们也被配置为使用驱动程序安装目录的 `/lib` 子文件夹中的 `amazon.redshiftodbc.ini` 文件。如果您将这些配置文件存储在其他位置，请设置环境变量，以便驱动程序管理器能够找到这些文件。有关更多信息，请参阅《Amazon Redshift ODBC 连接器安装和配置指南**中的“指定驱动程序配置文件的位置”。

## 配置连接功能
<a name="connection-config-features"></a>

可以为 ODBC 设置配置以下连接功能：
+ 配置 ODBC 驱动程序以提供凭证并验证与 Amazon Redshift 数据库的连接。
+ 如果要连接到启用了 SSL 的 Amazon Redshift 服务器，请将 ODBC 驱动程序配置为连接到启用了安全套接字层 (SSL) 的套接字。
+ 将 ODBC 驱动程序配置为通过代理服务器连接到 Amazon Redshift。
+ 将 ODBC 驱动程序配置为使用查询处理模式来防止查询占用过多内存。
+ 将 ODBC 驱动程序配置为通过代理服务器传递 IAM 身份验证过程。
+ 将 ODBC 驱动程序配置为使用 TCP Keepalive 来防止连接超时。

有关这些连接功能的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

# ODBC 驱动程序选项
<a name="configure-odbc-options"></a>

可以使用配置选项来控制 Amazon Redshift ODBC 驱动程序的行为。

在 Microsoft Windows 中，您通常可以在配置数据源名称 (DSN) 时设置驱动程序选项。您还能在以编程方式连接时，或者通过在 `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN` 中添加或更改注册表项来设置驱动程序选项。有关配置 DSN 的更多信息，请参阅[在 Microsoft Windows 上使用 Amazon Redshift ODBC 驱动程序](install-odbc-driver-windows.md)。

在 macOS X 中，您可以在 `odbc.ini` 和 `amazon.redshiftodbc.ini` 文件中设置驱动程序配置选项，如 [使用 ODBC 驱动程序管理器配置驱动程序使用 ODBC 驱动程序管理器配置驱动程序](odbc-driver-configure-mac.md) 中所述。在 `amazon.redshiftodbc.ini` 文件中设置的配置选项适用于所有连接。相反，`odbc.ini` 文件中的设置配置选项特定于一个连接。在 `odbc.ini` 中设置的配置选项优先于在 `amazon.redshiftodbc.ini` 中设置的配置选项。

有关如何设置 ODBC 驱动程序配置选项的信息，请参阅 [Amazon Redshift ODBC 连接器安装和配置指南](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)。

# 早期 ODBC 驱动程序版本
<a name="odbc-previous-versions"></a>

仅当您的工具需要使用某个特定版本的驱动程序时，才能下载 Amazon Redshift ODBC 驱动程序的以前版本。

## 适用于 Windows 的早期 ODBC 驱动程序版本
<a name="odbc-previous-versions-windows"></a>

以下是 64 位驱动程序：
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi)
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi)

32 位驱动程序已停用，并且早期版本不受支持。

## 适用于 Linux 的早期 ODBC 驱动程序版本
<a name="odbc-previous-versions-linux"></a>

以下是 64 位驱动程序版本：
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.deb) 

32 位驱动程序已停用，并且早期版本不受支持。

## 适用于 macOS X 的早期 ODBC 驱动程序版本
<a name="odbc-previous-versions-mac"></a>

以下是适用于 macOS X 的 Amazon Redshift ODBC 驱动程序版本：
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg) 