

 Amazon Redshift は、パッチ 198 以降、新しい 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/)を参照してください。

# SQL クライアントツールを使用して Amazon Redshift データウェアハウスクラスターに接続する
<a name="connecting-to-cluster"></a>

Java Database Connectivity (JDBC)、Python、および Open Database Connectivity (ODBC) 接続を介して、SQL クライアントツールから Amazon Redshift データウェアハウスに接続できます。Amazon Redshift では、SQL クライアントツールまたはライブラリを提供またはインストールしません。これらのツールまたはライブラリを使用してデータウェアハウス内のデータを操作するには、それらをクライアントコンピュータまたは Amazon EC2 インスタンスにインストールします。JDBC、Python、または ODBC ドライバーをサポートするほとんどの SQL クライアントツールが使用可能です。

このトピックの最後にあるセクションのリストでは、JDBC、Python、または ODBC による接続を使用するために、ご自分のクライアントコンピュータまたは Amazon EC2 インスタンスを設定するプロセスを順を追って説明します。また、サーバーへのクライアント接続に関連するセキュリティオプションについても説明します。さらに、[Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html) などの SQL クライアントツールの設定と接続に関する情報も以下に記載されています。ビジネスインテリジェンスツールをまだ使用していない場合は、これらのツールを試すことができます。また、このセクションでは、データに接続する方法を理解することもできます。最後に、データウェアハウスに接続しようとして問題が発生した場合は、トラブルシューティング情報を参照して解決策を特定できます。

## クライアントツールとの接続に関する推奨事項
<a name="connecting-to-cluster-recommendations"></a>

IP アドレスを使用して Redshift クラスターに接続する場合、停止または接続が切断され、クラスターが新しいアベイラビリティーゾーン (AZ) でオンラインになる際に、別のダウンタイムが発生する可能性があります。それでも IP アドレスを使用してアプリケーションを Redshift に接続する場合は、クラスターの仮想プライベートクラウド (VPC) エンドポイントにアタッチされたプライベート IP アドレスを使用してください。これは、**[プロパティ]** タブの **[ネットワークとセキュリティ]** のクラスターの詳細に表示されます。

**注記**  
アプリケーションがリーダーノードの IP アドレスを使用して Redshift クラスターにアクセスする場合、推奨されるベストプラクティスは、クラスターエンドポイント URL を使用するように変更することです。詳細については、「[Amazon Redshift での接続の設定](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html)」を参照してください。

**Topics**
+ [クライアントツールとの接続に関する推奨事項](#connecting-to-cluster-recommendations)
+ [Amazon Redshift での接続の設定](configuring-connections.md)
+ [接続のセキュリティオプションを設定する](connecting-ssl-support.md)
+ [クライアントツールおよびコードからの接続](connecting-via-client-tools.md)
+ [認証プロファイルを使用して Amazon Redshift に接続する](connecting-with-authentication-profiles.md)
+ [Amazon Redshift での接続の問題のトラブルシューティング](troubleshooting-connections.md)

# Amazon Redshift での接続の設定
<a name="configuring-connections"></a>

次のセクションでは、SQL クライアントツールからクラスターに接続するために、JDBC、Python、および ODBC での接続を設定する方法について説明します。このセクションでは、JDBC、Python、ODBC での接続を設定する方法について説明します。また、Secure Sockets Layer (SSL) とサーバー証明書を使用して、クライアントとサーバー間の通信を暗号化する方法についても説明します。

## Amazon Redshift 用の JDBC、Python、および ODBC ドライバー
<a name="connecting-drivers"></a>

クラスター内のデータを操作するには、クライアントコンピュータまたはインスタンスから接続できるようにするために、JDBC、Python、または ODBC のドライバーが必要です。JDBC、Python、もしくは ODBC サポートする SQL クライアントツールを使用するために、JDBC、Python、ODBC のデータアクセス API オペレーションのいずれかを使用するように、アプリケーションを記述します。

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 ID の管理の詳細については、「[Amazon Redshift での Identity and Access Management](redshift-iam-authentication-access-control.md)」を参照してください。

# クラスター接続文字列を検索する
<a name="connecting-connection-string"></a>

SQL クライアントツールでクラスターに接続するには、クラスター接続文字列が必要です。クラスター接続文字列は、Amazon Redshift コンソールのクラスターの詳細ページにあります。

**クラスターの接続文字列を見つけるには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) で Amazon Redshift コンソールを開きます。

1. ナビゲーションメニューで **[クラスター]** を選択し、リストからクラスター名を選択してその詳細を開きます。

1. **JDBC URL** および **ODBC URL** 接続文字列は、追加の詳細とともに、[**General information (一般情報)**] セクションで手に入れることができます。各文字列はクラスターが実行される 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 ドライバーの変更に関する最新情報については、「[変更ログ](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)」を参照してください。

デフォルトでは、Amazon Redshift JDBC ドライバーは TCP キープアライブを使用して接続がタイムアウトしないように設定されています。ドライバーがキープアライブパケットの送信を開始するタイミングを指定することや、この機能を無効にするために、接続 URL 内に関連するプロパティを設定することができます。接続 URL の構文の詳細については、[接続 URL の構築](jdbc20-build-connection-url.md)を参照してください。


| プロパティ | 説明 | 
| --- | --- | 
|  `TCPKeepAlive`  |  TCP キープアライブをオフにするには、このプロパティを `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 ドライバーはスレッドセーフな設計ではありません。同じ接続を同時に使用しようとするスレッドが 2 つ以上あると、デッドロック、エラー、誤った結果、またはその他の予期しない動作が発生する可能性があります。  
マルチスレッドアプリケーションを使用している場合は、同時アクセスを避けるために、ドライバーへのアクセスを同期することをお勧めします。

Amazon Redshift には、JDBC 4.2 API と互換性のあるツール用のドライバーが用意されています。このドライバーのクラス名は `com.amazon.redshift.Driver` です。

JDCBC ドライバーをインストールする方法、JDBC ドライバーライブラリを参照する方法、ドライバークラスを登録する方法の詳細については、以下のトピックを参照してください。

Amazon Redshift JDBC ドライバーバージョン 2.x を使用するコンピュータごとに、Java ランタイム環境 (JRE) 8.0 がインストールされていることを確認します。

データベース認証用に Amazon Redshift JDBC ドライバーを使用する場合、Java クラスパスに AWS SDK for Java 1.11.118 以降があることを確認してください。AWS SDK for Java をインストールしていない場合は、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と、AWS SDK for Java 1.x のドライバー依存ライブラリファイルが含まれています。依存 jar ファイルを JDBC ドライバーと同じ場所に解凍します。CLASSPATH に含める必要があるのは、JDBC ドライバのみです。

  この ZIP ファイルには、AWSSDK for Java 1.x のすべては集録されていません。ただしこれには、AWS Identity and Access Management(IAM) データベース認証に必要な、AWSSDK for Java 1.x のドライバ依存ライブラリが含まれています。

  IAM データベース認証に必要な AWS SDK では、この Amazon Redshift JDBC ドライバーを使用します。

  AWS SDK for Java 1.x の完全版をインストールするには、*AWS SDK for Java デベロッパーガイド*の「[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>

AWS SDK 用の、Amazon Redshift JDBC 4.2 互換ドライバーバージョン 2.x とドライバー依存ライブラリをインストールするには、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>

SQL クライアントツールから Amazon Redshift クラスターに接続する前に、クラスターの JDBC URL を確認しておく必要があります。JDBC の URL 形式を次に示します。`jdbc:redshift://endpoint:port/database`

前述の形式のフィールドには、次の値があります。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/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 の形式です。ここで、[Host] は Amazon Redshift サーバーのエンドポイントであり、[Port] は、サーバーがクライアントリクエストをリッスンするために使用する Transmission Control Protocol (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 は、ソフトウェアプロジェクトを管理する包括的なツールです。AWS SDK for Java では、Apache Maven プロジェクトをサポートしています。詳細については、*AWS SDK for Javaデベロッパーガイド*の[[Apache Maven での SDK の使用](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 接続を使用するには、このセクションのステップに従ってください。

**Maven 依存関係として JDBC ドライバーを設定するには**

1. Amazon リポジトリまたは Maven Central リポジトリのいずれかを `pom.xml` ファイルのリポジトリセクションに追加します。
**注記**  
以下のコードの例の URL は、ブラウザーで使用するとエラーを返します。この URL は、Maven プロジェクトのコンテキストでのみ使用してください。

   接続に Secure Sockets Layer (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 データストアでは、すべての接続をユーザー認証情報を使用して認証する必要があります。一部のデータストアでは、一方向認証の有無にかかわらず、Secure Sockets Layer (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 サーバーのセキュリティ要件に従って接続を認証するように、Redshift JDBC ドライバーバージョン 2.x を設定します。

接続を認証するには、常に Redshift ユーザー名とパスワードを入力する必要があります。SSL が有効で、サーバー上で必要であるかどうかに応じて、SSL 経由で接続するようにドライバーを設定する必要もあります。または、クライアント (ドライバー自体) がサーバーの身元を確認するために、一方向の SSL 認証を使用する場合もあります。

接続 URL でドライバーに構成情報を提供します。接続 URL の構文の詳細については、[接続 URL の構築](jdbc20-build-connection-url.md)を参照してください。

*SSL* は、Transport Layer Security と Secure Sockets Layer の両方の 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 認証を使用している場合は、プロファイル名の下で、必須またはオプションの追加接続プロパティを指定できます。これにより、接続文字列に特定の情報を直接入力することを回避できます。プロファイルのプロパティを使用して、接続文字列でプロファイル名を指定します。

プロファイルは AWS 認証情報ファイルに追加できます。このファイルのデフォルトの場所は、`~/.aws/credentials`です。

次の環境変数 `AWS_CREDENTIAL_PROFILES_FILE` でパスを設定することにより、デフォルト値を変更できます。

 プロファイルの詳細については、*AWS SDK for Java*の「[Working with AWS Credentials](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 アイデンティティーセンター
+ Active Directory フェデレーションサービス (ADFS)
+ JSON ウェブトークン (JWT) サービス
+ Microsoft Azure アクティブディレクトリ (AD) サービスと Browser Microsoft Azure Active Directory (AD) サービス
+ Okta サービス
+ PingFederate サービス 
+ Okta、Ping、ADFS などの SAML サービス用のブラウザ SAML

これらのサービスのいずれかを使用する場合は、接続 URL で次のプロパティを指定する必要があります。
+ **Plugin\$1Name** – 認証情報プロバイダーのプラグインクラスの完全修飾クラスパスです。
+ **IdP\$1Host:** – Amazon Redshift による認証に使用しているサービスのホストです。
+ **IdP\$1Port** – 認証サービスのホストがリッスンするポートです。Okta には必要ありません。
+ **ユーザー** – idp\$1host サーバーのユーザー名。
+ **パスワード** – 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 にのみ使用されます。
+ **App\$1Name** – Amazon Redshift アプリケーションのオプションの Okta アプリケーション名です。Okta にのみ使用されます。
+ **Partner\$1SPID** – オプションのパートナー SPID (サービスプロバイダー ID) 値です。PingFederate にのみ使用されます。
+ **Idc\$1Region** – AWS IAM アイデンティティセンターインスタンスが配置されている AWS リージョン リージョン。AWS IAM アイデンティティセンターでのみ使用されます。
+ **Issuer\$1Url** – AWS IAM アイデンティティセンターサーバーのインスタンスエンドポイント。AWS IAM アイデンティティセンターでのみ使用されます。

これらのサービスのいずれかにブラウザプラグインを使用している場合は、接続 URL に以下を含めることもできます。
+ **Login\$1URL** – ブラウザのプラグインを介して Security Assertion Markup Language (SAML) または Azure AD サービスを使用するための、ID プロバイダーのウェブサイト上のリソース URL です。このパラメータは、ブラウザプラグインを使用している場合に必要です。
+ **Listen\$1Port** – ブラウザのプラグインを介して SAML、Azure AD サービスまたは AWS IAM アイデンティティセンターのサービスを使用する場合に、ID プロバイダーから SAML レスポンスを取得するためにドライバーが使用するポートです。
+ **IdP\$1Response\$1Timeout** – ブラウザのプラグインを介して SAML、Azure AD または AWS IAM アイデンティティセンターのサービスを使用する場合に、ドライバーが ID プロバイダーからの SAML レスポンスを待機する時間 (秒単位) です。

追加された接続文字列のプロパティの詳細については、[JDBC ドライバーバージョン 2.x の設定オプション](jdbc20-configuration-options.md)を参照してください。

# ユーザー名とパスワードのみを使用する
<a name="jdbc20-authentication-username-password"></a>

接続先のサーバーが SSL を使用しない場合は、Redshift ユーザー名とパスワードのみを入力して接続を認証できます。

**Redshift ユーザー名とパスワードのみを使用して認証を設定するには**

1. `UID` プロパティを Amazon Redshift サーバーにアクセスするための Redshift ユーザー名に設定します。

1. PWD プロパティを Redshift ユーザー名に対応するパスワードに設定します。

# 本人確認なしで SSL を使用する
<a name="jdbc20-use-ssl-without-identity-verification"></a>

接続しているサーバーが SSL を使用していて、ID 検証を必要としない場合には、検証されていない SSL ファクトリを使用するようにドライバーを設定できます。

**本人確認を行わずに SSL 接続を構成するには**

1. `UID` プロパティを Amazon Redshift サーバーにアクセスするための Redshift ユーザー名に設定します。

1. `PWD` プロパティを Redshift ユーザー名に対応するパスワードに設定します。

1. `SSLFactory` プロパティを `com.amazon.redshift.ssl.NonValidatingFactory` に設定します。

# 一方向 SSL 認証の使用
<a name="jdbc20-use-one-way-SSL-authentication"></a>

接続しているサーバーが SSL を使用し、証明書がある場合は、一方向認証を使用してサーバーの ID を検証するようにドライバーを構成できます。

一方向認証では、サーバーの ID を検証するために、署名された信頼できる SSL 証明書が必要です。特定の証明書を使用するようにドライバーを構成するか、適切な証明書を含む TrustStore にアクセスするようにドライバーを構成することができます。証明書または TrustStore を指定しない場合、ドライバーは、デフォルトの Java TrustStore (通常は `jssecacerts` または `cacerts` ) を使用します。

**一方向 SSL 認証を構成するには**

1. UID プロパティを Amazon Redshift サーバーにアクセスするための Redshift ユーザー名に設定します。

1. PWD プロパティを Redshift ユーザー名に対応するパスワードに設定します。

1. SSL プロパティを true に設定します。

1. SSLRootCert プロパティを、ルート CA 証明書がある場所に設定します。

1. デフォルトの Java TrustStores のいずれかを使用していない場合は、次のいずれかの操作を行います。
   + サーバー証明書を指定するには、SSLRootCert プロパティを証明書のフルパスに設定します。
   + TrustStore を指定するには、以下の操作を行います。

     1. keytool プログラムを使用して、使用する TrustStore にサーバー証明書を追加します。

     1. ドライバーを使用して Java アプリケーションを起動するときに使用する TrustStore とパスワードを指定します。次に例を示します。

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

1. 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  |  Long  | 
|  BOOLEAN  |  SQL\$1BIT  |  ブール値  | 
|  CHAR  |  SQL\$1CHAR  |  文字列  | 
|  DATE  |  SQL\$1TYPE\$1DATE  |  java.sql.Date  | 
|  DECIMAL  |  SQL\$1NUMERIC  |  BigDecimal  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  |  Double  | 
|  GEOMETRY  |  SQL\$1LONGVARBINARY  |  byte[]  | 
|  INTEGER  |  SQL\$1INTEGER  |  整数  | 
|  OID  |  SQL\$1BIGINT  |  Long  | 
|  SUPER  |  SQL\$1LONGVARCHAR  |  文字列  | 
|  REAL  |  SQL\$1REAL  |  浮動小数点  | 
|  SMALLINT  |  SQL\$1SMALLINT  |  ショート  | 
|  TEXT  |  SQL\$1VARCHAR  |  文字列  | 
|  TIME  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1TIMESTAMP  |  java.sql.Timestamp  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1TIMESTAMP  |  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)の「プリペアドステートメントの使用」を参照してください。

複数のクエリを含むステートメントを準備できます。例えば、次のプリペアドステートメントには、2 つの 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) がまだ存在していないことを示すエラーを返します。INSERT クエリを準備する前に、CREATE クエリを実行する必要があります。

# JDBC ドライバーバージョン 2.2 と 1.x での相違点
<a name="jdbc20-jdbc10-driver-differences"></a>

このセクションでは、JDBC ドライバーの 2.2 と 1.x バージョンが返す情報の違いについて説明します。JDBC ドライバーのバージョン 1.x の使用は終了されています。

次のテーブルでは、JDBC ドライバーの各バージョンについて、getDatabaseProductName() 関数および getDatabaseProductVersion() 関数によって返される DatabaseMetadata 情報を表示します。JDBC ドライバーバーのジョン 2.2 は、接続の確立中に値を取得します。JDBC ドライバーのバージョン 1.x は、クエリの結果として値を取得します。


| JDBC ドライバーのバージョン | getDatabaseProductName() の結果 | getDatabaseProductVersion() の結果 | 
| --- | --- | --- | 
|  2.2  |  Redshift  |  8.0.2  | 
|  1.x  |  PostgreSQL  |  08.00.0002  | 

次のテーブルは、JDBC ドライバーのバージョンごとに getTypeInfo 関数によって返される 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 クライアントに必要な構成パラメータを集約することができます。

JDBC ドライバーバージョン 2.x 用に初期化 (.ini) ファイルを作成して、その中に SQL クライアントの構成オプションを記述します。このファイルのデフォルトの名前は `rsjdbc.ini` です。JDBC ドライバーバージョン 2.x は、以下に示す場所から.ini ファイルを探します (優先順位に従いリストされています)。
+ `IniFile`SQL クライアントの接続 URL または 接続プロパティダイアログボックス内にある パラメータ。`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] などのセクションにより整理することが可能です。各セクションには、さまざまな接続パラメータを指定するキーと値のペアが含まれます。.ini ファイル内のセクションは、`IniSection`パラメータによりを指定します。`IniSection` パラメータの詳細については、「[IniSection](jdbc20-configuration-options.md#jdbc20-inisection-option)」を参照してください。

次に、[DRIVER]、[DEV]、[QA]、および [PRODD] のセクションを使用する .ini ファイル形式の例を示します。[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` オプションが、SQL クライアントの接続 URL または 接続プロパティダイアログボックスで指定されている場合)。
+ `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)
+ [ForceLowercase](#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)
+ [リージョン](#jdbc20-region-option)
+ [reWriteBatchedInserts](#jdbc20-rewritebatchedinserts-option)
+ [reWriteBatchedInsertsSize](#jdbc20-rewritebatchedinsertssize-option)
+ [roleArn](#jdbc20-rolearn-option)
+ [roleSessionName](#jdbc20-roleaessionname-option)
+ [scope](#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
+ **データ型** – ブール型

このオプションは、指定されたユーザーが存在しない場合に、ドライバーが新しいユーザーを作成するかどうかを指定します。

このパラメータはオプションです。

**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 クラスターの名前。ドライバーは、指定されたホストからこのパラメータを検出しようとします。Network Load Balancer (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
+ **データ型** – ブール型

このオプションは、メタデータ 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**  
1 回のオペレーションですべての行をフェッチします。

**正の整数**  
ResultSet のフェッチを繰り返すごとに、データベースからフェッチする行の数。

## DisableIsValidQuery
<a name="jdbc20-disableisvalidquery-option"></a>
+ **デフォルト値** – False
+ **データ型** – ブール型

このオプションは、Connection.isValid() メソッドを使用してデータベース接続がアクティブかどうかを判断するときに、ドライバーが新しいデータベースクエリを送信するかどうかを指定します。

このパラメータはオプションです。

**true**  
Connection.isValid() を使用してデータベース接続がアクティブかどうかを判断する場合、ドライバーはクエリを送信しません。これにより、データベースサーバーが予期せずシャットダウンした場合、ドライバーがデータベース接続をアクティブとして誤って識別することがあります。

**false**  
Connection.isValid () を使用してデータベース接続がアクティブかどうかを判断する場合、ドライバーはクエリを送信します。

## enableFetchRingBuffer
<a name="jdbc20-enablefetchringbuffer-option"></a>
+ **デフォルト値** – true
+ **データ型** – ブール型

このオプションは、ドライバーが別のスレッドのリングバッファを使用して行をフェッチすることを指定します。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
+ **データ型** – ブール型

このオプションは、ステートメント内でセミコロンで区切られた複数の SQL コマンドを処理するかどうかを指定します。

このパラメータはオプションです。

次の値を指定できます。

**true**  
ドライバーは、Statement オブジェクト内でセミコロンで区切られた複数の SQL コマンドを処理します。

**false**  
ドライバーは、単一のステートメントで複数の SQL コマンドに対してエラーを返します。

## fetchRingBufferSize
<a name="jdbc20-fetchringbuffersize-option"></a>
+ **デフォルト値** – 1G
+ **データ型** – 文字列

このオプションは、結果セットの取得時に使用するリングバッファのサイズを指定します。サイズはバイト単位で指定できます。例えば、1 KB の場合は 1K、5,000 バイトの場合は 5000、1 MB の場合は 1M、1 GB の場合は 1G などです。ヒープメモリの割合を指定することもできます。ドライバーは、制限に達すると行のフェッチを停止します。アプリケーションが行を読み込み、リングバッファのスペースを解放すると、フェッチが再開されます。

このパラメータはオプションです。

## ForceLowercase
<a name="jdbc20-forcelowercase-option"></a>
+ **デフォルト値** – false
+ **データ型** – ブール型

このオプションは、シングルサインオン認証を使用するときに ID プロバイダーから Amazon Redshift に送信されたすべてのデータベースグループ (DbGroups) をドライバーが小文字にするかどうかを指定します。

このパラメータはオプションです。

**true**  
ドライバーは、ID プロバイダーから送信されるすべてのデータベースグループを小文字にします。

**false**  
ドライバーは、データベースグループを変更しません。

## groupFederation
<a name="jdbc20-groupFederation-option"></a>
+ **デフォルト値** – false
+ **データ型** – ブール型

このオプションは、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
+ **データ型** – ブール型

このオプションは、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 アイデンティティセンターインスタンスが配置されている AWS リージョン。

このパラメータは、plugin\$1name 設定オプションで `BrowserIdcAuthPlugin` を使用して認証する場合にのみ必要です。

## IdP\$1Host
<a name="jdbc20-idp_host-option"></a>
+ **デフォルト値** – なし
+ **データ型** – 文字列

Amazon Redshift への認証に使用する IdP (ID プロバイダー) のホスト。これは、接続文字列またはプロファイルのいずれかで指定できます。

このパラメータはオプションです。

## IdP\$1Partition
<a name="jdbc20-idp_partition-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

ID プロバイダー (IdP) が設定されているクラウドパーティションを指定します。これにより、ドライバーが接続する IdP 認証エンドポイントが決まります。

このパラメータを空白のままにすると、ドライバーはデフォルトで商用パーティションを使用します。可能な値は以下のとおりです。
+  `us-gov`: IdP が Azure Government で設定されている場合は、この値を使用します。例えば、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 サービスを使用する場合に、ドライバーが ID プロバイダーからの 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
+ **データ型** – ブール型

このオプションは、Amazon Redshift エンドポイントホストがサーバーレス インスタンスであるかどうか指定します。ドライバーは、指定されたホストからこのパラメータを検出しようとします。Network Load Balancer (NLB) を使用している場合、ドライバーはそれを検出できないため、ここで設定できます。

このパラメータはオプションです。

**true**  
Amazon Redshift エンドポイントホストはサーバーレスインスタンスです。

**false**  
Amazon Redshift エンドポイント ホストはプロビジョニングされたクラスターです。

## Issuer\$1Url
<a name="jdbc20-issuer-url"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

AWS IAM アイデンティティセンターサーバーのインスタンスエンドポイントを指します。

このパラメータは、plugin\$1name 設定オプションで `BrowserIdcAuthPlugin` を使用して認証する場合にのみ必要です。

## listen\$1port
<a name="jdbc20-listen-port"></a>
+ **デフォルト値** - 7890
+ **データ型** – 整数

ブラウザのプラグインを介して SAML、Azure AD または AWS アイデンティティセンターのサービスを使用する場合に、ID プロバイダーから SAML レスポンスを受信するためにドライバーが使用するポートです。

このパラメータはオプションです。

## Login\$1URL
<a name="jdbc20-login_url-option"></a>
+ **デフォルト値** – なし
+ **データ型** – 文字列

ブラウザのプラグインを介して SAML または Azure AD サービスを使用する場合に、ID プロバイダーのウェブサイト上のリソース 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>
+ **デフォルト値** - なし
+ **データ型** – 文字列

IDP を介して IAM 認証を使用して接続する場合、これは IDP\$1Host サーバーのパスワードです。標準認証を使用する場合、PWD の代わりに Amazon Redshift データベースのパスワードにこれを使用できます。

このパラメータはオプションです。

## Plugin\$1Name
<a name="jdbc20-plugin_name-option"></a>
+ **デフォルト値** – なし
+ **データ型** – 文字列

特定の認証情報プロバイダーのプログインを実装する完全修飾クラス名。

このパラメータはオプションです。

以下のプロバイダーオプションがサポートされています。
+ **`AdfsCredentialsProvider`** – Active Directory フェデレーションサービス。
+ **`AzureCredentialsProvider`** – Microsoft Azure Active Directory (AD) サービス。
+ **`BasicJwtCredentialsProvider`** – JSON ウェブトークン (JWT) サービス。
+ **`BasicSamlCredentialsProvider`** – Security Assertion Markup Language (SAML) 認証情報。多数の SAML サービスプロバイダーで使用できます。
+ **`BrowserAzureCredentialsProvider`** – Microsoft Azure Active Directory (AD) サービスのブラウザ。
+ **`BrowserAzureOAuth2CredentialsProvider` ** – ネイティブ認証用の Microsoft Azure Active Directory (AD) サービスのブラウザ。
+ **`BrowserIdcAuthPlugin` ** – AWS IAM アイデンティティセンターを使用する認可プラグイン。
+ **`BrowserSamlCredentialsProvider`** – Okta、Ping、ADFS などの SAML サービス用のブラウザ SAML。
+ **`IdpTokenAuthPlugin`** — AWS IAM アイデンティティセンターのトークン、または AWS IAM アイデンティティセンターにリンクされているウェブ ID プロバイダーからの OpenID Connect (OIDC) JSON ベースの ID トークン (JWT) を受け入れる認可プラグイン。
+ **`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
+ **データ型** – ブール型

このプロパティは、ドライバーが読み込み専用モードであるかどうかを指定します。

このパラメータはオプションです。

**true**  
接続は読み込み専用モードであり、データストアに書き込むことはできません。

**false**  
接続は読み込み専用モードではなく、データストアに書き込むことができます。

## リージョン
<a name="jdbc20-region-option"></a>
+ **デフォルト値** – null
+ **データ型** – 文字列

このオプションは、クラスターが配置されている AWS リージョンを指定します。StsEndPoint オプションを指定すると、[Region (リージョン)] オプションは無視されます。Redshift `GetClusterCredentials` API オペレーションは、リージョンオプションも使用します。

このパラメータはオプションです。

## reWriteBatchedInserts
<a name="jdbc20-rewritebatchedinserts-option"></a>
+ **デフォルト値** – false
+ **データ型** – ブール型

このオプションは、互換性のある 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 を指定する場合、このパラメータを指定できます。

このパラメータはオプションです。

## scope
<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。ドライバーは、指定されたホストからこのパラメータを検出しようとします。Network Load Balancer (NLB) を使用している場合、ドライバーはそれを検出できないため、ここで設定できます。

このパラメータはオプションです。

## serverlessWorkGroup
<a name="jdbc20-serverlessworkgroup-option"></a>
+ **デフォルト値** – null
+ **データ型** - 文字列

Amazon Redshift Serverless ワークグループ名。ドライバーは、指定されたホストからこのパラメータを検出しようとします。Network Load Balancer (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>
+ **デフォルト値** - なし
+ **データ型** – 文字列

SSL を使用するときに Amazon Redshift サーバーインスタンスを確認するための信頼できる追加 CA 証明書を含む .pem または .crt ファイルのフルパス。

このパラメータは、SSLKey を指定した場合に必要です。

## SSLFactory
<a name="jdbc20-sslfactory-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 文字列

サーバー証明書を使用せずに TLS/SSL 経由でサーバーに接続するときに使用する SSL ファクトリ。

## SSLKey
<a name="jdbc20-sslkey-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 文字列

SSLCert で指定された証明書を検証するための PKCS8 キーファイルを含む .der ファイルのフルパス。

このパラメータは、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>
+ **デフォルト値** - なし
+ **データ型** – 文字列

SSL を使用するときに Amazon Redshift サーバーインスタンスを確認するためのルート CA 証明書を含む .pem または .crt ファイルのフルパス。

## StsEndpointUrl
<a name="jdbc20-stsendpointurl-option"></a>
+ **デフォルト値** – null
+ **データ型** – 文字列

AWS Security Token Service(AWS STS) エンドポイントを指定することができます。このオプションを指定すると、リージョンオプションは無視されます。このエンドポイントにはセキュアプロトコル (HTTPS) のみを指定できます。

## tcpKeepAlive
<a name="jdbc20-tcpkeepalive-option"></a>
+ **デフォルト値** – TRUE
+ **データ型** – 文字列

このプロパティを使用して、TCP キープアライブを有効または無効にします。

このパラメータはオプションです。

次の値を指定できます。

**TRUE**  
接続のタイムアウトを防ぐために TCP キープアライブを使用するようにドライバーを設定します。

**FALSE**  
ドライバーは TCP キープアライブを使用しません。

## トークン
<a name="jdbc20-token-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

AWS IAM アイデンティティセンターが提供するアクセストークン、または AWS IAM アイデンティティセンターにリンクされているウェブ ID プロバイダーが提供する OpenID Connect (OIDC) JSON ウェブトークン (JWT)。アプリケーションは、このトークンを生成するために、AWS IAM アイデンティティセンターまたは AWS IAM アイデンティティセンターにリンクされている ID プロバイダーにより、アプリケーションのユーザーを認証する必要があります。

このパラメータは `IdpTokenAuthPlugin` で機能します。

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

`IdpTokenAuthPlugin` で使用しているトークンのタイプ。

次の値を指定できます。

**ACCESS\$1TOKEN**  
AWS IAM アイデンティティセンターが提供するアクセストークンを使用する場合は、これを入力します。

**EXT\$1JWT**  
AWS IAM アイデンティティセンターと統合されているウェブベースの ID プロバイダーが提供する OpenID Connect (OIDC) JSON ウェブトークン (JWT) を使用する場合は、これを入力します。

このパラメータは `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>
+ **デフォルト値** - なし
+ **データ型** - 文字列

ID プロバイダによって提供される OAuth 2.1 アクセストークンまたは OpenID Connect ID トークン。アプリケーションは、ウェブアイデンティティのプロバイダーを使用してアプリケーションのユーザーを認証することによって、このトークンを取得する必要があります。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 コネクタを使用することで、[AWSSDK for Python (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ビッグデータブログ投稿[[Amazon Redshift アクセスをMicrosoft Azure AD シングルサインオンでフェデレーションする](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/)]を参照してください。
  + アクティブディレクトリフェデレーションサービス 詳細については、AWS ビッグデータブログ投稿「[Active Directory フェデレーションサービス (AD FS) を使用した Amazon Redshift クラスターへのアクセスをフェデレーションする: パート 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 ビッグデータブログ投稿「[ID プロバイダーとして Okta を使用して Amazon Redshift アクセスをフェデレーションする](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 site](https://pip.pypa.io/en/stable/)]を参照してください。

## Conda からの Python コネクタのインストール
<a name="python-pip-install-from-conda"></a>

Python コネクタは Anaconda.org からインストールできます。

```
>>>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 ロールまたはユーザーのアクセスキー。

このパラメータはオプションです。

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **デフォルト値** – false
+ **データ型** – ブール型

正  
コネクタが、`DbUser`Security Assertion Markup Language (SAML) アサーションの値を使用することを指定します。

誤  
`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
+ **データ型** – ブール型

ユーザーが存在しない場合にユーザーを作成するかどうかを示す値。

このパラメータはオプションです。

## 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 アイデンティティセンターを使用する認可プラグイン。
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin` - AWS IAM アイデンティティセンターのトークン、または AWS IAM アイデンティティセンターにリンクされているウェブ ID プロバイダーからの OpenID Connect (OIDC) JSON ベースの ID トークン (JWT) を受け入れる認可プラグイン。
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

このパラメータはオプションです。

## データベース
<a name="python-database-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

接続先のデータベースの名前。

このパラメータは必須です。

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **デフォルト値** – true
+ **データ型** – ブール型

アプリケーションがマルチデータベースデータ共有カタログをサポートしているかどうかを示す値。デフォルト値の 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
+ **データ型** – ブール型

このオプションは、Amazon Redshift IDP グループを使用するかどうかを指定します。

このパラメータはオプションです。

**true**  
Amazon Redshift アイデンティティプロバイダー (IDP) グループを使用します。

**false**  
ユーザーフェデレーションに STS API と GetClusterCredentials を使用して、接続に **db\$1groups** を指定します。

## ホスト
<a name="python-host-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

Amazon Redshift クラスターのホスト名。

このパラメータはオプションです。

## iam
<a name="python-iam-option"></a>
+ **デフォルト値** – false
+ **データ型** – ブール型

IAM 認証が有効になっています。

このパラメータは必須です。

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **デフォルト値** – false
+ **データ型** – ブール型

このオプションは、IAM 認証情報をキャッシュするかどうかを指定します。デフォルトでIAM 認証情報はキャッシュされます。これにより、API gateway へのリクエストがスロットルされた場合のパフォーマンスが向上します。

このパラメータはオプションです。

## 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 アイデンティティセンターインスタンスが配置されている AWS リージョン。

このパラメータは、credentials\$1provider 設定オプションで `BrowserIdcAuthPlugin` を使用して認証する場合にのみ必要です。

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 文字列

ID プロバイダー (IdP) が設定されているクラウドパーティションを指定します。これにより、ドライバーが接続する IdP 認証エンドポイントが決まります。

このパラメータを空白のままにすると、ドライバーはデフォルトで商用パーティションを使用します。可能な値は以下のとおりです。
+  `us-gov`: IdP が Azure Government で設定されている場合は、この値を使用します。例えば、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 アイデンティティセンターサーバーのインスタンスエンドポイントを指します。

このパラメータは、credentials\$1provider 設定オプションで `BrowserIdcAuthPlugin` を使用して認証する場合にのみ必要です。

## listen\$1port
<a name="python-listen-port-option"></a>
+ **デフォルト値**— 7890
+ **データ型** – 整数

ブラウザのプラグインを介して SAML、Azure AD または AWS IAM アイデンティティセンターのサービスを使用する場合に、ID プロバイダーから 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
+ **データ型** – ブール型

このオプションは、コネクタが数値データ型の値を decimal.Decimal から float に変換するかどうかを指定します。デフォルトでは、コネクタは数値データ型の値を decimal.Decimal で受け取り、変換しません。

精度が求められるユースケースでは、結果が丸められる場合もあるため、numeric\$1to\$1float を有効にすることは推奨されません。

decimal.Decimal および decimal.Decimal と float 間のトレードオフの詳細については、Python ウェブサイトの「[decimal — Decimal fixed point and floating point arithmetic](https://docs.python.org/3/library/decimal.html)」(10 進数 — 固定小数点数と浮動小数点数の演算) を参照してください。

このパラメータはオプションです。

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

Ping による認証に使用されるパートナー SP IDです。

このパラメータはオプションです。

## password
<a name="python-password-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

認証に使用されるパスワード。

このパラメータはオプションです。

## ポート
<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)。ロールにポリシーをアタッチし、そのロールをユーザーに割り当ててアクセスを許可することをお勧めします。

このパラメータはオプションです。

## profile
<a name="python-profile-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

AWS認証情報を含むAWS認証情報ファイル内のプロファイルの名前。

このパラメータはオプションです。

## provider\$1name
<a name="python-provider_name-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

Redshift ネイティブ認証プロバイダの名前です。

このパラメータはオプションです。

## リージョン
<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`で示されるプロバイダーが使用します。

このパラメータはオプションです。

## scope
<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 ロールまたはユーザーのアクセスキー。このパラメータは、一時的な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
+ **データ型** – ブール型

Secure Sockets Layer (SSL) が有効になっています。

このパラメータは必須です。

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **デフォルト値** – false
+ **データ型** – ブール型

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
+ **データ型** – ブール型

TCP キープアライブを使用して接続がタイムアウトしないようにするかどうか。次の値を指定できます。
+ True: ドライバーは、TCP キープアライブを使用して、接続がタイムアウトしないようにします。
+ False: ドライバーは TCP キープアライブを使用しません。

このパラメータはオプションです。

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 整数

接続を非アクティブと見なす前に送信する認知されていないプローブ数。例えば、値を 3 に設定すると、ドライバーは接続がアクティブでないと判断する前に、未応答のキープアライブパケットを 3 つ送信します。

このパラメータを指定しない場合、Amazon Redshift はシステムのデフォルト値を使用します。

このパラメータはオプションです。

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 整数

ドライバーがプローブの確認応答を受信しなかった場合の、後続のキープアライブプローブの秒単位の間隔。このパラメータを指定する場合、正の整数である必要があります。

このパラメータを指定しない場合、Amazon Redshift はシステムのデフォルト値を使用します。

このパラメータはオプションです。

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 整数

ドライバーが最初のキープアライブプローブを送信した後の非アクティブ時間 (秒単位)。例えば、値を 120 に設定すると、ドライバーは最初のキープアライブパケットを送信する前に 2 分間の非アクティブ状態を維持します。このパラメータを指定する場合、正の整数である必要があります。

このパラメータを指定しない場合、Amazon Redshift はシステムのデフォルト値を使用します。

このパラメータはオプションです。

## タイムアウト
<a name="python-timeout-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 整数

サーバーへの接続がタイムアウトするまで待つ秒数。

このパラメータはオプションです。

## トークン
<a name="python-token-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

AWS IAM アイデンティティセンターが提供するアクセストークン、または AWS IAM アイデンティティセンターにリンクされているウェブ ID プロバイダーが提供する OpenID Connect (OIDC) JSON ウェブトークン (JWT)。アプリケーションは、このトークンを生成するために、AWS IAM アイデンティティセンターまたは AWS IAM アイデンティティセンターにリンクされている ID プロバイダーにより、アプリケーションのユーザーを認証する必要があります。

このパラメータは `IdpTokenAuthPlugin` で機能します。

## token\$1type
<a name="python-token_type-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

`IdpTokenAuthPlugin` で使用しているトークンのタイプ。

次の値を指定できます。

**ACCESS\$1TOKEN**  
AWS IAM アイデンティティセンターが提供するアクセストークンを使用する場合は、これを入力します。

**EXT\$1JWT**  
AWS IAM アイデンティティセンターと統合されているウェブベースの ID プロバイダーが提供する OpenID Connect (OIDC) JSON ウェブトークン (JWT) を使用する場合は、これを入力します。

このパラメータは `IdpTokenAuthPlugin` で機能します。

## ユーザー
<a name="python-user-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

認証に使用するユーザー名。

このパラメータはオプションです。

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

ID プロバイダによって提供される OAuth 2.0 アクセストークンまたは OpenID Connect ID トークン。アプリケーションを使用しているユーザーをウェブアイデンティティプロバイダーで認証することで、アプリケーションがこのトークンを取得するようにします。`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>

ID プロバイダープラグインの使用方法については、「[IAM 認証情報の提供オプション](options-for-providing-iam-credentials.md)」を参照してください。IAM ロールのベストプラクティスを含む IAM ID の管理の詳細については、「[Amazon Redshift での Identity and Access Management](redshift-iam-authentication-access-control.md)」を参照してください。

## ADFS アイデンティティプロバイダープラグインを使用した認証
<a name="python-connect-identity-provider-active-dir"></a>

次に、アクティブディレクトリフェデレーションサービス (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 のアイデンティティプロバイダプラグインを使用した認証の例です。以下のように、Azure エンタープライズアプリケーションの`client_id`および`client_secret`の値を作成することができます。

```
>>>  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 アイデンティティセンターのプロバイダープラグインを使用した認証
<a name="python-connect-identity-provider-aws-idc"></a>

 以下は、AWS IAM アイデンティティセンターのプロバイダープラグインを使用した認証の例です。

```
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'
)
```

## 汎用 SAML ブラウザ アイデンティティプロバイダープラグインで JumpCloud を使用した認証
<a name="python-connect-identity-provider-jumpcloud"></a>

以下に、認証用の汎用 SAML ブラウザ アイデンティティプロバイダープラグインで JumpCloud を使用する例を示します。

パスワードパラメータは必須です。ただし、ブラウザで多要素認証が行われるため、このパラメータを入力する必要はありません。

```
>>> 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)
+ [Amazon S3 バケットからデータをコピーする 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 仕様に従って、デフォルトではオフになっています。ロールバックコマンドの実行後に以下のコマンドを使用して、接続の自動コミットプロパティをオンにして、トランザクションが進行中でないことを確認できます。

```
#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"})
```

## Amazon S3 バケットからデータをコピーする 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"
```

次に、最初に Amazon Redshift データベースに接続する Python コードの例を示します。次に、`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 を作成します。`global_transaction_id`パラメータのみが postgres で使用されます。format\$1id と branch\$1qualifier は postgres では使用されません。`global_transaction_id`は、タプル(`format_id`、`global_transaction_id`、`branch_qualifier`)を返す postgres がサポートする任意の文字列識別子とすることができます。

`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 のリストを返します。

## カーソル
<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 は、1 つの接続で複数のカタログをサポートしていません。Amazon Redshift は現在のカタログのみを返します。

`get_tables([catalog, schema_pattern, …])`  
システム内でユーザー定義された固有のパブリックテーブルを返します。

`get_columns([catalog, schema_pattern, …])`  
Amazon Redshift データベース内の特定のテーブルのすべての列のリストを返します。

## AdfsCredentials プロバイダープラグイン
<a name="python-adfs-credentials-plugin"></a>

Amazon Redshift Python コネクタの AdfsCredentials プロバイダープラグイン API オペレーションの構文を次に示します。

```
redshift_connector.plugin.AdfsCredentialsProvider()
```

## AzureCredentials プロバイダープラグイン
<a name="python-azure-credentials-plugin"></a>

Amazon Redshift Python コネクタの AzureCredentials プロバイダープラグイン API オペレーションの構文を次に示します。

```
redshift_connector.plugin.AzureCredentialsProvider()
```

## ブラウザ AzureCredentials プロバイダープラグイン
<a name="python-browser-azure-credentials-plugin"></a>

Amazon Redshift Python コネクタのBrowserAzureCredentials プロバイダープラグイン API オペレーションの構文を以下に示します。

```
redshift_connector.plugin.BrowserAzureCredentialsProvider()
```

## BrowserSamlCredentials プロバイダープラグイン
<a name="python-browser-saml-credentials-plugin"></a>

Amazon Redshift Python コネクタの BrowserSamlCredentials プロバイダープラグイン API オペレーションの構文は以下のとおりです。

```
redshift_connector.plugin.BrowserSamlCredentialsProvider()
```

## Oktacredentials プロバイダープラグイン
<a name="python-okta-credentials-plugin"></a>

Amazon Redshift Python コネクタの OktaCredentials プロバイダープラグイン API オペレーションの構文を次に示します。

```
redshift_connector.plugin.OktaCredentialsProvider()
```

## PingCredentials プロバイダープラグイン
<a name="python-ping-credentials-plugin"></a>

Amazon Redshift Python コネクタの PingCredentials プロバイダー プラグイン API オペレーションの構文を次に示します。

```
redshift_connector.plugin.PingCredentialsProvider()
```

## SamlCredentials プロバイダープラグイン
<a name="python-saml-credentials-plugin"></a>

Amazon Redshift Python コネクタの SamlCredentials プロバイダープラグイン API オペレーションの構文を次に示します。

```
redshift_connector.plugin.SamlCredentialsProvider()
```

# Apache Spark 用の Amazon Redshift の統合
<a name="spark-redshift-connector"></a>

 [Apache Spark](https://aws.amazon.com/emr/features/spark/) は、機械学習、ストリーム処理、グラフ分析に役立つ分散処理フレームワークおよびプログラミングモデルです。Apache Spark は、Apache Hadoop と同様に、ビッグデータのワークロードを処理するために一般的に使用されているオープンソースの分散処理システムです。Spark には最適化された有向非循環グラフ (DAG) 実行エンジンが搭載されており、データをメモリ内に積極的にキャッシュします。これにより、特に特定のアルゴリズムやインタラクティブクエリのパフォーマンスを向上させることができます。

 この統合により、Amazon Redshift と Amazon Redshift Serverless のデータを読み書きする Apache Spark アプリケーションを構築するために使用できる Spark コネクタが提供されます。これらのアプリケーションは、アプリケーションのパフォーマンスやデータのトランザクションの一貫性を損なうことはありません。この統合は自動的に [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/) および [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/) に含まれるため、データインジェストと変換パイプラインの一部として Amazon Redshift のデータにアクセスしてロードする Apache Spark ジョブをすぐに実行できます。

現在、この統合では 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)を使用して、Amaxon 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)を有効にすることをお勧めします。
+  Amazon EMR 上の Spark から Amazon Redshift への JDBC 接続に対して SSL を有効にすることをお勧めします。
+ Amazon Redshift 認証パラメータのパラメータ `aws_iam_role` を使用して IAM ロールを渡すことをお勧めします。

# Spark コネクタによる認証
<a name="redshift-spark-connector-authentication"></a>

次の図は、Amazon S3、Amazon Redshift、Spark ドライバー、および Spark エグゼキューター間の認証を示しています。

![\[これは Spark コネクタ認証の図です。\]](http://docs.aws.amazon.com/ja_jp/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 を使用するには、[IAM 認証を使用するように JDBC URL を設定します](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)」を参照してください。

また、`COPY` および `UNLOAD` オペレーション中に Amazon Redshift が 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>

Redshift のユーザー名とパスワードの認証情報は、AWS Secrets Manager に保存されているシークレットから取得できます。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/ja_jp/redshift/latest/mgmt/redshift-spark-connector-authentication.html)

**注記**  
 謝辞: このドキュメントには、[Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) ライセンスの下でライセンス提供された [Apache Software Foundation](http://www.apache.org/) によって開発されたサンプルコードと説明が含まれています。

# プッシュダウンによるパフォーマンスの向上
<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 コネクタは Amazon Redshift ではなく Spark でその関数を実行するため、パフォーマンスが最適化されません。Spark の関数の一覧については、「[Built-in Functions](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 (または \$1)
+ 数学関数
  + \$1
  + -
  + \$1
  + /
  + - (単項)
  + abs
  + acos
  + asin
  + atan
  + ceil
  + cos
  + exp
  + floor
  + greatest
  + least
  + log10
  + pi
  + pow
  + round
  + sin
  + sqrt
  + tan
+ その他の関数
  + cast
  + coalesce
  + decimal
  + if
  + 情報
+ リレーショナル演算子
  + \$1=
  + =
  + >
  + >=
  + <
  + <=
+ 文字列関数
  + ascii
  + lpad
  + rpad
  + translate
  + 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 (ascending および descending)
  + 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>

 デフォルトでは、結果は Parquetet 形式で 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/ja_jp/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/ja_jp/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

**注記**  
 謝辞: このドキュメントには、[Apache 2.0 ライセンス](https://www.apache.org/licenses/LICENSE-2.0)の下でライセンス提供された [Apache Software Foundation](http://www.apache.org/) によって開発されたサンプルコードと説明が含まれています。

# サポートされているデータ型
<a name="spark-redshift-connector-data-types"></a>

Amazon Redshift の以下のデータ型は Spark コネクタでサポートされています。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/ja_jp/redshift/latest/mgmt/spark-redshift-connector-data-types.html)

## 複雑なデータ型
<a name="spark-redshift-connector-complex-data-types"></a>

 Spark コネクタを使用して、Redshift の SUPER データ型列との間で、`ArrayType`、`MapType`、`StructType` のような Spark の複雑なデータ型を読み書きできます。読み取りオペレーションにスキーマを指定すると、列のデータは Spark 内の対応する複合型 (ネストされた型も含む) に変換されます。さらに、`autopushdown` を有効にすると、ネストされた属性、マップ値、配列インデックスの投影が Redshift にプッシュダウンされるため、データの一部だけにアクセスするときに、ネストされたデータ構造全体をアンロードする必要がなくなります。

コネクタから DataFrames を書き込む場合、`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 に書き込むためにサポートされる tempformat 値です。`AVRO ` を使用しようとすると、例外が発生します。

# Amazon Redshift での ODBC ドライバーのバージョン 2.x による接続の設定
<a name="odbc20-install"></a>

ODBC 接続を使用すると、多くのサードパーティー SQL クライアントツールおよびアプリケーションから Amazon Redshift クラスターに接続できます。クライアントツールで JDBC がサポートされる場合、JDBC に用意された設定が簡単なため、ODBC ではなくその接続タイプを使用することを選択できます。クライアントツールで 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
```

前述の形式のフィールドには、次の値があります。


| フィールド | 値 | 
| --- | --- | 
| Driver | 使用する 64 ビット ODBC ドライバーの名前: [Amazon Redshift ODBC Driver (x64)] (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 ドライバーをインストールする必要があります。ドライバーをインストールするコンピュータには、それぞれ以下の最小要件があります。
+ マシンの管理者権限。
+ マシンは、以下のシステム要件を満たしている。
  + 次のいずれかの OS。
    + Windows 10 または 8.1。
    + Windows Server 2019、2016、または 2012。
  + 100 MB の使用可能なディスク容量。
  + 64 ビット Windows 用の Visual Studio 2015 の Visual C\$1\$1 再頒布可能パッケージがインストールされている。インストールパッケージは、Microsoft ウェブサイトの「[Visual Studio 2022 の Visual C\$1\$1 再頒布可能パッケージのダウンロード](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 Driver (x64)]** (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 ドライバーをダウンロードしてインストールした後、クライアントマシンか Amazon EC2 インスタンスにデータソース名 (DSN) エントリを追加します。SQL クライアントツールは、このデータソースを使用して Amazon Redshift データベースに接続できます。

ユーザー DSN の代わりにシステム DSN を作成することをお勧めします。一部のアプリケーションでは、データのロードに使用しているデータベースユーザーアカウントとは異なるデータベースユーザーアカウントで作成されたユーザー DSN を検出できないことがあります。

**注記**  
AWS Identity and Access Management (IAM) 認証情報または ID プロバイダー (IdP) 認証情報を使用した認証には、追加の手順が必要です。詳細については、「[IAM 認証情報を使用するように JDBC または ODBC 接続を設定する](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html)」を参照してください。

ODBC 接続用のシステム DSN エントリを作成するには

1. **[Start]** (スタート) メニューで、「ODBC Data Sources」と入力します。**[ODBC Data Sources]** (ODBC データソース) を選択します。

   Amazon Redshift への接続に使用するクライアントアプリケーションと同じビット数を持つ ODBC Data Source Administrator を選択してください。

1. **[ODBC Data Source Administrator]** (ODBC データソース管理者) で、**[Driver]** (ドライバー) タブを選択し、次のドライバーフォルダ **[Amazon Redshift ODBC Driver (x64)]** (Amazon Redshift ODBC ドライバー (x64)) を探します。

1. コンピューターのすべてのユーザーに対してドライバーを設定する場合は **[システム DSN]** タブを選択し、データベースユーザーアカウント別にドライバーを設定する場合は **[ユーザー DSN]** タブを選択します。

1. **[追加]** を選択します。**[新しいデータソースを作成]** ウィンドウが開きます。

1. **[Amazon Redshift ODBC driver (x64)]** (Amazon Redshift ODBC ドライバー (x64)) を選択し、**[Finish]** (完了) を選択します。[**Amazon Redshift ODBC Driver DSN Setup (ODBC ドライバー DSN セットアップ)**] ウィンドウが開きます。

1. **[Connection Settings]** (接続の設定) セクションで以下の情報を入力します。
   + 

**データソース名**  
 データソースの名前を入力します。例えば、「**Amazon Redshift 入門ガイド」に従っているのであれば、この DSN に関連付けるクラスターを覚えやすくするために `exampleclusterdsn` と入力します。
   + 

**サーバー**  
 Amazon Redshift クラスターのエンドポイントホストを指定します。この情報は、クラスターの詳細ページの Amazon Redshift コンソールで見つけることができます。詳細については、「[Amazon Redshift での接続の設定](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html)」を参照してください。
   + 

**ポート**  
 データベースが使用するポート番号を入力します。クラスターの作成、変更、または移行時に選択したポートに応じて、選択したポートへのアクセスを許可します。
   + 

**データベース**  
 Amazon Redshift データベースの名前を入力します。データベース名を指定せずにクラスターを起動した場合は、`dev`を入力します。それ以外の場合は、起動プロセスで選択した名前を使用します。「Amazon Redshift 入門ガイド」**に従っているのであれば、`dev` と入力します。

1. **[Authentication]** (認証) セクションで、標準認証または IAM 認証を設定する設定オプションを指定します。

1. **[SSL Options]** (SSL オプション) を選択し、次の値を指定します。
   + 

**認証モード**  
Secure Sockets Layer (SSL) を処理するモードを選択します。テスト環境では、`prefer`を使用できます。ただし、本番稼働環境の場合、および安全なデータ交換が必要な場合は、`verify-ca` または `verify-full` を使用します。
   + 

**最小 TLS**  
オプションとして、ドライバーがデータストアで接続の暗号化に使用できる TLS/SSL の最小バージョンを選択します。例えば、TLS 1.2 を指定すると、接続の暗号化に TLS 1.1 は使用できません。デフォルトのバージョンは、TLS 1.2 です。

1.  **[Proxy]** (プロキシ) タブで、任意のプロキシ接続設定を指定します。

1. **[Cursor]** (カーソル) タブで、クエリ結果を SQL クライアントツールまたはアプリケーションに返す方法に関するオプションを指定します。

1. **[詳細オプション]** で、`logLevel`、`logPath`、`compression`、および他のオプションの値を指定します。

1. **[テスト]** を選択します。クライアントコンピュータが Amazon Redshift データベースに接続できる場合は、**[Connection successful]** (接続成功) というメッセージが表示されます。クライアントコンピュータがデータベースに接続できない場合、ログファイルを生成して AWS のサポートに連絡し、潜在的な問題をトラブルシューティングすることができます。ログの生成については、「(リンク)」を参照してください。

1.  [**OK**] を選択してください。

# Linux での Amazon Redshift ODBC ドライバーの使用
<a name="odbc20-install-config-linux"></a>

Amazon Redshift データウェアハウスにアクセスするクライアントコンピュータに Amazon Redshift ODBC ドライバーをインストールする必要があります。ドライバーをインストールするコンピュータには、それぞれ以下の最小要件があります。
+ マシン上のルートアクセス。
+ 以下のいずれかのディストリビューション。
  + Red Hat® Enterprise Linux® (RHEL) 8 以降
  + CentOS 8 以降。
+ 150 MB の使用可能なディスク容量。
+ 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 を使用している場合は、次の手順に従います。
+  `odbc.ini` のファイルのフルパスとファイル名に `ODBCINI` を設定します。
+  `odbcinst.ini` のファイルを含むディレクトリのフルパスに `ODBCSYSINI` を設定します。
+  `amazon.redshiftodbc.ini` のファイルのフルパスとファイル名に `AMAZONREDSHIFTODBCINI` を設定します。

以下は、上記の値を設定する例です。

```
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) を使用してデータストアに接続する場合は、データソース名 (DSN) を定義するように `odbc.ini` ファイルを設定します。`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 システム要件
  + Apple macOS バージョン 11.7 以降 (Apple macOS Big Sur、Monterey、Ventura 以降など) の 64 ビットバージョンが必要です。Redshift ODBC ドライバーは 64 ビットクライアントアプリケーションのみをサポートします。
  + 150 MB の使用可能なディスク容量。
  + ドライバーは、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 Driver (x64)]** (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
```

コマンドラインアプリケーションの場合: エクスポートコマンドをシェルスタートアップファイル (例: `~/.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) を使用してデータストアに接続する場合は、データソース名 (DSN) を定義するように `odbc.ini` ファイルを設定します。`odbc.ini` ファイルのプロパティを設定して、Redshift データウェアハウスの接続情報を指定する DSN を作成します。

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/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  IAM プロフィール  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  IAM 認証情報  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  AD FS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  JWT  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 
|  Okta  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  Ping Federate  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  Browser Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  Browser SAML  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[Region]** (リージョン) が別々に設定されていない場合、**[Host]** (ホスト) で設定する必要があります。   | 
|  Auth プロファイル  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  Browser Azure AD OAUTH2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **[ClusterID]** と **[リージョン]** が別々に設定されていない場合、**[ホスト]** で設定する必要があります。   | 
|  AWS IAM アイデンティティーセンター  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 

## 外部認証情報サービスの使用
<a name="odbc20-authentication-external"></a>

また、AD FS、Azure AD、および Okta の組み込みサポートに加えて、Windows バージョンの Amazon Redshift ODBC ドライバーは、他の認証情報サービスのサポートを提供します。ドライバーは、任意の 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\$1LONGVARBINARY  | 
|  GEOMETRY  |  SQL\$1LONGVARBINARY  | 
|  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\$1TIMESTAMP  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1TIMESTAMP  | 
|  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 Driver DSN Setup] (Amazon Redshift ODBC ドライバー DSN セットアップ) ダイアログボックスを使用して DSN を設定するときにドライバーが使用する認証モードを指定します。
+  標準: Amazon Redshift ユーザー名とパスワードを使用した標準認証。
+  AWS プロファイル: プロファイルを使用した IAM 認証。
+  AWS IAM 認証情報: IAM 認証情報を使用した IAM 認証。
+  ID プロバイダー: AD FS: Active Directory フェデレーションサービス (AD FS) を使用した IAM 認証。
+  ID プロバイダー: 認可プラグイン: AWS IAM アイデンティティセンターのトークン、または AWS IAM アイデンティティセンターにリンクされているウェブ ID プロバイダーからの OpenID Connect (OIDC) JSON ベースの ID トークン (JWT) を受け入れる認可プラグイン。
+  ID プロバイダー: Azure AD: Azure AD ポータルを使用した IAM 認証。
+  ID プロバイダー: JWT: JSON ウェブトークン (JWT) を使用した IAM 認証。
+  ID プロバイダー: Okta: Okta を使用した IAM 認証。
+  ID プロバイダー: PingFederate: PingFederate を使用した IAM 認証。

このオプションは、Windows ドライバーの [Amazon Redshift ODBC Driver DSN Setup] (Amazon Redshift ODBC ドライバー DSN セットアップ) ダイアログボックスを使用して DSN を設定する場合にのみ使用できます。接続文字列または Windows 以外のマシンを使用して接続を設定すると、ドライバーは標準、AWS プロファイル、または指定した認証情報に基づく AWS のIAM 認証情報の認証を使用するかどうかを自動的に決定します。ID プロバイダーを使用するには、**plugin\$1name** プロパティを設定する必要があります。

このパラメータは必須です。

## AutoCreate
<a name="odbc20-autocreate-option"></a>
+ **デフォルト値**: 0
+ **データ型** – ブール型

指定されたユーザーが存在しない場合に、ドライバーが新しいユーザーを作成するかどうかを指定するブール値。
+  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 は **Server** パラメータでは指定されません。

このパラメータはオプションです。

## compression
<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
+ **データ型** – ブール型

ドライバーが複数のデータベースとクラスターからメタデータを返すかどうかを指定するブール値。
+ 1 \$1 TRUE: ドライバーは、現在のデータベースからのみメタデータを返します。
+  0 \$1 FALSE。ドライバーは、複数の Amazon Redshift データベースとクラスターにわたってメタデータを返します。

このパラメータはオプションです。

## dbgroups\$1filter
<a name="odbc20-dbgroups-filter-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

Azure、Browser Azure、および Browser SAML 認証型を使用しているときに Amazon Redshift への SAML レスポンスから受信する DbGroups を除外するために指定できる正規表現。

このパラメータはオプションです。

## ドライバー
<a name="odbc20-driver-option"></a>
+ **デフォルト値** - Amazon Redshift ODBC ドライバー (x64)
+ **データ型** - 文字列

ドライバーの名前。**[Amazon Redshift ODBC Driver (X64)]** (Amazon Redshift ODBC ドライバー (x64)) はサポートされる唯一の値です。

**DSN** を設定しない場合、このパラメータは必須です。

## DSN
<a name="odbc20-dsn-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

ドライバーデータソースの名前。アプリケーションは、SQLDriverConnect API で DSN を指定します。

**[Driver]** (ドライバー) を設定しない場合、このパラメータは必須です。

## EndpointUrl
<a name="odbc20-endpointurl-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

IAM 認証のために Amazon Redshift Coral サービスと通信するために使用される優先エンドポイント。

このパラメータはオプションです。

## ForceLowercase
<a name="odbc20-forcelowercase-option"></a>
+ **デフォルト値**: 0
+ **データ型** – ブール型

シングルサインオン認証を使用するときに ID プロバイダーから Amazon Redshift に送信されたすべてのデータベースグループ (DbGroups) をドライバーが小文字にするかどうかを指定するブール値。
+  1 \$1 TRUE: ドライバーは、ID プロバイダーから送信されるすべての DbGroups を小文字にします。
+  0 \$1 FALSE: ドライバーは DbGroups を変更しません。

このパラメータはオプションです。

## group\$1federation
<a name="odbc20-group-federation-option"></a>
+ **デフォルト値**: 0
+ **データ型** – ブール型

プロビジョニングされたクラスターでの一時的なクラスター認証情報を取得するために `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
+ **データ型** – ブール型

ドライバーが接続を認証するために IAM 認証方法を使用するかどうかを指定するブール値。
+  1 \$1 TRUE: ドライバーは、IAM 認証方法の 1 つを使用します (アクセスキーと秘密キーのペア、プロファイル、または認証情報サービスを使用)。
+  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 アイデンティティセンターインスタンスが配置されている AWS リージョン。

このパラメータは、plugin\$1name 設定オプションで `BrowserIdcAuthPlugin` を使用して認証する場合にのみ必要です。

## idp\$1host
<a name="odbc20-idp-host-option"></a>
+ **デフォルト値** – なし
+ **データ型** – 文字列

Amazon Redshift への認証に使用する IdP (ID プロバイダー) のホスト。

このパラメータはオプションです。

## idp\$1port
<a name="odbc20-idp-port-option"></a>
+ **デフォルト値** - なし
+ **データ型** – 整数

Amazon Redshift への認証に使用する IdP (ID プロバイダー) のポート。クラスターの作成、変更、または移行時に選択したポートに応じて、選択したポートへのアクセスを許可します。

このパラメータはオプションです。

## idp\$1response\$1timeout
<a name="odbc20-idp-response-timeout-option"></a>
+ **デフォルト値** – 120
+ **データ型** – 整数

ブラウザのプラグインを介して SAML または Azure AD サービスを使用する場合に、ドライバーが ID プロバイダーからの 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>
+ **デフォルト値** - なし
+ **データ型** - 文字列

ID プロバイダー (IdP) が設定されているクラウドパーティションを指定します。これにより、ドライバーが接続する IdP 認証エンドポイントが決まります。

このパラメータを空白のままにすると、ドライバーはデフォルトで商用パーティションを使用します。可能な値は以下のとおりです。
+ `us-gov`: IdP が Azure Government で設定されている場合は、この値を使用します。例えば、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
+ **データ型** – ブール型

ドライバーがプロキシサーバー経由で ID プロバイダー (IdP) の認証プロセスを渡すかどうかを指定するブール値。
+  1 \$1 TRUE: ドライバーは、プロキシサーバーを介して IdP 認証プロセスを渡します。
+  0 \$1 FALSE。ドライバーはプロキシサーバー経由で IdP 認証プロセスを渡しません。

このパラメータはオプションです。

## InstanceProfile
<a name="odbc20-instanceprofile-option"></a>
+ **デフォルト値**: 0
+ **データ型** – ブール型

認証にプロファイルを使用するように設定されている場合に、ドライバーが Amazon EC2 インスタンスプロファイルを使用するかどうかを指定するブール値。
+  1 \$1 TRUE: ドライバーは Amazon EC2 インスタンスプロファイルを使用します。
+  0 \$1 FALSE。代わりに、ドライバーは、[Profile Name] (プロファイル名) オプション (**[Profile]** (プロファイル)) で指定されたプロファイルの連鎖ロールを使用します。

このパラメータはオプションです。

## issuer\$1url
<a name="odbc20-issuer_url"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

 AWS IAM アイデンティティセンターサーバーのインスタンスエンドポイントを指します。

このパラメータは、plugin\$1name 設定オプションで `BrowserIdcAuthPlugin` を使用して認証する場合にのみ必要です。

## KeepAlive
<a name="odbc20-keepalive-option"></a>
+ **デフォルト値** - 1
+ **データ型** – ブール型

接続のタイムアウトを防ぐために TCP キープアライブを使用するようにドライバーを指定するブール値。
+  1 \$1 TRUE: ドライバーは、TCP キープアライブを使用して、接続がタイムアウトするのを防ぎます。
+  0 \$1 FALSE。ドライバーは TCP キープアライブを使用しません。

このパラメータはオプションです。

## KeepAliveCount
<a name="odbc20-keepalivecount-option"></a>
+ **デフォルト値**: 0
+ **データ型** – 整数

接続が切断されていると見なされる前に失うことが許容される TCP キープアライブパケットの数。このパラメータが 0 に設定されていると、ドライバーはこの設定のためにシステムデフォルトを使用します。

このパラメータはオプションです。

## KeepAliveInterval
<a name="odbc20-keepaliveinterval-option"></a>
+ **デフォルト値**: 0
+ **データ型** – 整数

TCP キープアライブを再送信する間隔の秒数。このパラメータが 0 に設定されていると、ドライバーはこの設定のためにシステムデフォルトを使用します。

このパラメータはオプションです。

## KeepAliveTime
<a name="odbc20-keepalivetime-option"></a>
+ **デフォルト値**: 0
+ **データ型** – 整数

ドライバーが TCP キープアライブパケットを送信する前にアイドル状態である秒数。このパラメータが 0 に設定されていると、ドライバーはこの設定のためにシステムデフォルトを使用します。

このパラメータはオプションです。

## listen\$1port
<a name="odbc20-listen-port-option"></a>
+ **デフォルト値** - 7890
+ **データ型** – 整数

ブラウザのプラグインを介して SAML、Azure AD または AWS IAM アイデンティティセンターのサービスを使用する場合に、ID プロバイダーから SAML レスポンスを受信するためにドライバーが使用するポートです。

このパラメータはオプションです。

## login\$1url
<a name="odbc20-login-url-option"></a>
+ **デフォルト値** – なし
+ **データ型** - 文字列

汎用 Browser SAML プラグインを使用する場合に、ID プロバイダーのウェブサイト上のリソース 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: OFF。すべてのログ記録を無効にします。
+  1: ERROR。ドライバーの実行を続行するよう許可してもエラーを発生する可能性があるエラーイベントを記録します。
+  2: API\$1CALL。ODBC API 関数呼び出しを関数の引数の値とともにログに記録します。
+  3: INFO。ドライバーの進行状況を示す全般的な情報を記録します。
+  4: MSG\$1PROTOCOL。ドライバーのメッセージプロトコルの詳細情報を記録します。
+  5: DEBUG。すべてのドライバーアクティビティを記録します。
+  6: DEBUG\$1APPEND。すべてのドライバーアクティビティのログを追加し続けます。

ログ記録を有効にすると、ドライバーは **LogPath** プロパティで指定された場所に次のログファイルを生成します。
+  接続のハンドシェイク中に発生したドライバーのアクティビティをログに記録する `redshift_odbc.log.1` ファイル。
+  データベースに接続した後のすべてのドライバーのアクティビティ用 `redshift_odbc.log` ファイル。

このパラメータはオプションです。

## LogPath
<a name="odbc20-logpath-option"></a>
+ **デフォルト値** - OS 固有の 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) の値。

このパラメータはオプションです。

## Password \$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 アイデンティティセンターを使用する認可プラグイン。
+  `BrowserSAML`: 認証に Okta や Ping などの SAML サービス用のブラウザプラグインを使用する。
+  `IdpTokenAuthPlugin`: AWS IAM アイデンティティセンターのトークン、または AWS IAM アイデンティティセンターにリンクされているウェブ ID プロバイダーからの OpenID Connect (OIDC) JSON ベースの ID トークン (JWT) を受け入れる認可プラグイン。
+  `JWT`: 認証に JSON ウェブトークン (JWT) を使用する。
+  `Ping`: 認証に PingFederate サービスを使用する。
+  `Okta`: 認証に Okta サービスを使用する。

このパラメータはオプションです。

## Port \$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 プロファイルの名前。
+  Use Instance Profile パラメータ (**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
+ **データ型** – ブール型

ドライバーが読み込み専用モードにするかどうかを指定するブール値。
+  1 \$1 TRUE: 接続は読み取り専用モードであり、データストアに書き込むことができません。
+  0 \$1 FALSE: 接続は読み取り専用モードではなく、データストアに書き込むことができます。

このパラメータはオプションです。

## リージョン
<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 セッショントークン。

このパラメータはオプションです。

## Server \$1 HostName \$1 Host
<a name="odbc20-server-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

接続先のエンドポイントサーバー。

このパラメータは必須です。

## ssl\$1insecure
<a name="odbc20-ssl-insecure-option"></a>
+ **デフォルト値**: 0
+ **データ型** – ブール型

ドライバーが 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 アイデンティティセンターが提供するアクセストークン、または AWS IAM アイデンティティセンターにリンクされているウェブ ID プロバイダーが提供する OpenID Connect (OIDC) JSON ウェブトークン (JWT)。アプリケーションは、このトークンを生成するために、AWS IAM アイデンティティセンターまたは AWS IAM アイデンティティセンターにリンクされている ID プロバイダーにより、アプリケーションのユーザーを認証する必要があります。

このパラメータは `IdpTokenAuthPlugin` で機能します。

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

`IdpTokenAuthPlugin` で使用しているトークンのタイプ。

次の値を指定できます。

**ACCESS\$1TOKEN**  
AWS IAM アイデンティティセンターが提供するアクセストークンを使用する場合は、これを入力します。

**EXT\$1JWT**  
AWS IAM アイデンティティセンターと統合されているウェブベースの ID プロバイダーが提供する OpenID Connect (OIDC) JSON ウェブトークン (JWT) を使用する場合は、これを入力します。

このパラメータは `IdpTokenAuthPlugin` で機能します。

## UID \$1 User \$1 LogonID
<a name="odbc20-uid-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

Amazon Redshift サーバーへのアクセスに使用するユーザー名。

このパラメータは、データベース認証を使用する場合に必要です。

## UseUnicode
<a name="odbc20-useunicode-option"></a>
+ **デフォルト値**: 0
+ **データ型** – ブール型

ドライバーが Redshift データを Unicode または通常の SQL タイプとして返すかどうかを指定するブール値。
+  1 \$1 TRUE: ドライバーは、文字データ型に対してワイド SQL 型を返します。
  + SQL\$1CHAR の代わりに SQL\$1WCHAR が返されます。
  + SQL\$1VARCHAR の代わりに SQL\$1WVARCHAR が返されます。
  + SQL\$1LONGVARCHAR の代わりに SQL\$1WLONGVARCHAR が返されます。
+  0 \$1 FALSE: ドライバーは、文字データ型に対して通常の SQL 型を返します。
  + SQL\$1WCHAR の代わりに SQL\$1CHAR が返されます。
  + SQL\$1WVARCHAR の代わりに SQL\$1VARCHAR が返されます。
  + SQL\$1WLONGVARCHAR の代わりに SQL\$1LONGVARCHAR が返されます。

このパラメータはオプションです。ドライバーバージョン 2.1.15 以降で有効です。

## web\$1identity\$1token
<a name="odbc20-web-identity-token-option"></a>
+ **デフォルト値** - なし
+ **データ型** - 文字列

ID プロバイダーによって提供される OAUTH トークン。JWT プラグインで使用されます。

BasicJwtCredentialsProvider に **plugin\$1name** パラメータを設定する場合、このパラメータは必須です。

# 以前のバージョンの ODBC ドライバー
<a name="odbc20-previous-versions"></a>

Amazon Redshift JDBC ドライバーバージョン 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) 

## 旧バージョンの ODBC ドライバー (Linux 用)
<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) 

## 旧バージョンの ODBC ドライバー (Apple macOS 用)
<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 がサポートされていない場合は、このセクションの手順に従って ODBC 接続を設定します。

Amazon Redshift には、Linux、Windows、macOS X オペレーティングシステム用の 64 ビット 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 connector installation and configuration guide](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/ja_jp/redshift/latest/mgmt/obtain-odbc-url.html)

 前述のテーブルのフィールドには、次の特殊文字を含めることができます。

```
[]{}(),;?*=!@ 
```

 これらの特殊文字を使用する場合は、値を中かっこで囲む必要があります。例えば、接続文字列内のパスワード値 `Your;password123` は `PWD={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 ドライバーをダウンロードしてインストールした後、クライアントマシンか Amazon EC2 インスタンスにデータソース名 (DSN) エントリを追加します。SQL クライアントツールは、このデータソースを使用して Amazon Redshift データベースに接続します。

ユーザー DSN の代わりにシステム DSN を作成することをお勧めします。アプリケーションによっては、別のユーザーアカウントを使用してデータをロードします。これらのアプリケーションは、別のユーザーアカウントで作成されたユーザー DSN を検出できない場合があります。

**注記**  
AWS Identity and Access Management ( IAM) 認証情報または ID プロバイダー (IdP) 認証情報を使用した認証には、追加の手順が必要です。詳細については、「[ステップ 5: IAM 認証情報を使用するように JDBC または ODBC 接続を設定する](generating-iam-credentials-steps.md#generating-iam-credentials-configure-jdbc-odbc)」を参照してください。

システム DSN エントリを作成する方法については、[Amazon Redshift ODBC connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) を参照してください。 

**Windows で ODBC 接続用のシステム DNS エントリを作成するには**

1. [**スタート**] メニューで、[**ODBC Data Sources (ODBC データソース)**] を開きます。

   Amazon Redshift への接続に使用するクライアントアプリケーションと同じビット数を持つ ODBC Data Source Administrator を選択してください。

1. **[ODBC Data Source Administrator]** (ODBC データソース管理者) で、**[Driver]** (ドライバー) タブを開き、ドライバーフォルダを探します。
   + **[Amazon Redshift ODBC Driver (64-bit)] (Amazon Redshift ODBC ドライバー (64 ビット)**)
   + **[Amazon Redshift ODBC Driver (32-bit)] (Amazon Redshift ODBC ドライバー (32 ビット)**)

1.  コンピュータのすべてのユーザーに対してドライバーを設定する場合は [**System DSN (システム DSN)**] タブを選択し、使用するユーザーアカウントのみに対してドライバーを設定する場合は [**User DSN (ユーザー DSN)**] タブを選択します。

1.  [**Add**] を選択します。[**Create New Data Source (新しいデータソースの作成)**] ウィンドウが開きます。

1.  **Amazon Redshift** ODBC ドライバーを選択し、[**Finish (完了)**] を選択します。[**Amazon Redshift ODBC Driver DSN Setup (ODBC ドライバー DSN セットアップ)**] ウィンドウが開きます。

1. [**接続設定**] で以下の情報を入力します。
<a name="rs-mgmt-dsn"></a>
**データソース名**  
データソースの名前を入力します。クラスターへの接続を作成するときに、後でデータソースを識別するためにどのような名前でも使用できます。例えば、「Amazon Redshift 入門ガイド」**に従っているのであれば、この DSN に関連付けるクラスターを覚えやすくするために `exampleclusterdsn` と入力します。
<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. [**Authentication (認証)**] で、標準認証または IAM 認証を設定する設定オプションを指定します。認証オプションの詳細については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* の「Configuring Authentication on Windows」を参照してください。

1. [**SSL Settings (SSL 設定)**] で次の値を指定します。
<a name="rs-mgmt-ssl-authentication"></a>
**SSL 認証**  
Secure Sockets Layer (SSL) を処理するモードを選択します。テスト環境では、`prefer`を使用できます。ただし、本番稼働環境の場合、および安全なデータ交換が必要な場合は、`verify-ca`または `verify-full` を使用します。Windows での SSL の使用の詳細については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* の「Configuring SSL Verification on Windows」を参照してください。

1. [**Additional Options (追加オプション)**] で、クエリ結果を SQL クライアントツールまたはアプリケーションに返す方法に関するオプションを指定します。詳細については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* の「Configuring Additional Options on Windows」を参照してください。

1. [**Logging Options (ログ記録オプション)**] で以下の値を指定します。詳細については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* の「Configuring Logging Options on Windows」を参照してください。

   次に、**[OK]** を選択します。

1. [**Data Type Options (データ型オプション)**] で、データ型の値を指定します。詳細については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* の「Configuring Data Type Options on Windows」を参照してください。

   次に、**[OK]** を選択します。

1. [**Test**] を選択します。クライアントコンピュータが Amazon Redshift データベースに接続できる場合は、[**Connection successful (接続成功)**] というメッセージが表示されます。

    クライアントコンピューターがデータベースに接続できない場合、考えられる問題をトラブルシューティングすることができます。詳細については、「[Amazon Redshift での接続の問題のトラブルシューティング](troubleshooting-connections.md)」を参照してください。

1. Windows で TCP キープアライブを設定して、接続がタイムアウトしないようにします。Windows で TCP キープアライブを設定する方法については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* を参照してください。

1. トラブルシューティングに役立つように、ログ記録を設定します。Windows でログ記録を設定する方法については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* を参照してください。

# 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 オペレーティングシステム向けの「[Linux での Amazon Redshift ODBC ドライバーの使用Linux での ODBC ドライバーの使用](install-odbc-driver-linux.md)」を参照してください。詳細については、「[Amazon Redshift ODBC connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)」の「Specifying ODBC Driver Managers on Non- Windows Machines」を参照してください。

Amazon Redshift ODBC ドライバーを設定するには、`amazon.redshiftodbc.ini`、`odbc.ini`、および `odbcinst.ini` の 3 つのファイルが必要です。

デフォルトの場所にインストールした場合、`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 connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) の「Specifying the Locations of the Driver Configuration Files」を参照してください。 

## Linux オペレーティングシステムでのデータソース名の作成
<a name="configure-odbc-ini-file"></a>

 データソース名 (DSN) を使用してデータストアに接続する場合は、DSN を定義するように `odbc.ini` ファイルを設定します。`odbc.ini` ファイルのプロパティを設定して、データストアの接続情報を指定する DSN を作成します。

`odbc.ini` ファイルの設定方法については、「[Amazon Redshift ODBC connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)」の「Creating a Data Source Name on a Non-Windows Machine」を参照してください。 

 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 connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) の「Configuring a DSN-less Connection on a Non-Windows Machine」を参照してください。 

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 connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) の「Specifying ODBC Driver Managers on Non-Windows Machines」を参照してください。

デフォルトでは、ODBC ドライバーマネージャーは、隠しバージョンの `odbc.ini` および `odbcinst.ini` 設定ファイル (.`odbc.ini` と .`odbcinst.ini`という名前) をホームディレクトリに配置します。また、ドライバーのインストールディレクトリの `amazon.redshiftodbc.ini` サブフォルダにある `/lib` ファイルを使用するように設定されています。これらの設定ファイルを他の場所に保存する場合は、ドライバーマネージャーがファイルを検索できるように環境変数を設定します。詳細については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* の「Specifying the Locations of the Driver Configuration Files」を参照してください。

## 接続機能の設定
<a name="connection-config-features"></a>

ODBC 設定には、次の接続機能を設定できます。
+ 認証情報を提供し、Amazon Redshift データベースへの接続を認証するように ODBC ドライバーを設定します。
+ SSL が有効な Amazon Redshift サーバーに接続している場合は、Secure Sockets Layer (SSL) で有効なソケットに接続するように ODBC ドライバーを設定します。
+ プロキシサーバー経由で Amazon Redshift に接続するように ODBC ドライバーを設定します。
+ クエリ処理モードを使用するように ODBC ドライバーを設定して、クエリが大量のメモリを消費しないようにします。
+ IAM 認証プロセスをプロキシサーバー経由で渡すように ODBC ドライバーを設定します。
+ 接続のタイムアウトを防ぐために TCP キープアライブを使用するように ODBC ドライバーを設定します。

これらの接続機能の詳細については、[Amazon Redshift ODBC connector installation and configuration guide](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 オペレーティングシステム向けの「[macOS X での Amazon Redshift ODBC ドライバーの使用macOS X での ODBC ドライバーの使用](install-odbc-driver-mac.md)」を参照してください。詳細については、「[Amazon Redshift ODBC connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)」の「Specifying ODBC Driver Managers on Non- Windows Machines」を参照してください。

Amazon Redshift ODBC ドライバーを設定するには、`amazon.redshiftodbc.ini`、`odbc.ini`、および `odbcinst.ini` の 3 つのファイルが必要です。

デフォルトの場所にインストールした場合、`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 オペレーティングシステムには、ユーザーのホームディレクトリ (`odbc.ini` または `odbcinst.ini`) に `/home/$USER` ファイルと `~/` ファイルが必要です。これらの既定のファイルは隠しファイルで、各ファイル名の前にドット (.) が表示されます。これらのファイルは、`-a`フラグを使用してディレクトリの内容をリストした場合にのみ表示されます。

`odbc.ini` ファイルと `odbcinst.ini` ファイルに対してどちらのオプションを選択しても、ファイルを変更してドライバーと DSN 設定情報を追加します。新しいファイルを作成する場合は、これらの設定ファイルの場所を指定する環境変数を設定する必要もあります。

デフォルトでは、ODBC ドライバーマネージャーは、隠しバージョンの `odbc.ini` および `odbcinst.ini` 設定ファイル (.`odbc.ini` と .`odbcinst.ini`という名前) をホームディレクトリに配置します。また、ドライバーのインストールディレクトリの `amazon.redshiftodbc.ini` サブフォルダにある `/lib` ファイルを使用するように設定されています。これらの設定ファイルを他の場所に保存する場合は、ドライバーマネージャーがファイルを見つけることができるように、次に説明する環境変数を設定します。詳細については、[Amazon Redshift ODBC connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) の「Specifying the Locations of the Driver Configuration Files」を参照してください。 

## macOS X オペレーティングシステムでのデータソース名の作成
<a name="configure-odbc-ini-file"></a>

 データソース名 (DSN) を使用してデータストアに接続する場合は、DSN を定義するように `odbc.ini` ファイルを設定します。`odbc.ini` ファイルのプロパティを設定して、データストアの接続情報を指定する DSN を作成します。

`odbc.ini` ファイルの設定方法については、「[Amazon Redshift ODBC connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)」の「Creating a Data Source Name on a Non-Windows Machine」を参照してください。 

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
```

 次の例は、macOS X オペレーティングシステムでの `odbc.ini` の設定を示しています。

```
[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 connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)」の「Configuring a DSN-less Connection on a Non-Windows Machine」を参照してください。

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 connector installation and configuration guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) の「Specifying ODBC Driver Managers on Non-Windows Machines」を参照してください。

デフォルトでは、ODBC ドライバーマネージャーは、隠しバージョンの `odbc.ini` および `odbcinst.ini` 設定ファイル (.`odbc.ini` と .`odbcinst.ini`という名前) をホームディレクトリに配置します。また、ドライバーのインストールディレクトリの `amazon.redshiftodbc.ini` サブフォルダにある `/lib` ファイルを使用するように設定されています。これらの設定ファイルを他の場所に保存する場合は、ドライバーマネージャーがファイルを検索できるように環境変数を設定します。詳細については、*Amazon Redshift ODBC Connector Installation and Configuration Guide* の「Specifying the Locations of the Driver Configuration Files」を参照してください。

## 接続機能の設定
<a name="connection-config-features"></a>

ODBC 設定には、次の接続機能を設定できます。
+ 認証情報を提供し、Amazon Redshift データベースへの接続を認証するように ODBC ドライバーを設定します。
+ SSL が有効な Amazon Redshift サーバーに接続している場合は、Secure Sockets Layer (SSL) で有効なソケットに接続するように ODBC ドライバーを設定します。
+ プロキシサーバー経由で Amazon Redshift に接続するように ODBC ドライバーを設定します。
+ クエリ処理モードを使用するように ODBC ドライバーを設定して、クエリが大量のメモリを消費しないようにします。
+ IAM 認証プロセスをプロキシサーバー経由で渡すように ODBC ドライバーを設定します。
+ 接続のタイムアウトを防ぐために TCP キープアライブを使用するように ODBC ドライバーを設定します。

これらの接続機能の詳細については、[Amazon Redshift ODBC connector installation and configuration guide](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 connector installation and configuration guide](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 ドライバーの以前のバージョンをダウンロードします。

## 以前のバージョンの ODBC ドライバー (Windows 用)
<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 ビットドライバーは廃止され、以前のバージョンはサポートされていません。

## 以前のバージョンの ODBC ドライバー (Linux 用)
<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 ビットドライバーは廃止され、以前のバージョンはサポートされていません。

## 以前のバージョンの ODBC ドライバー (macOS X 用)
<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) 

# 接続のセキュリティオプションを設定する
<a name="connecting-ssl-support"></a>

Amazon Redshift では Secure Sockets Layer (SSL) 接続がサポートされているため、データとサーバー証明書を暗号化でき、クライアントが接続するサーバー証明書を検証できます。

## SSL
<a name="connect-using-ssl"></a>

SSL 接続をサポートするために、Amazon Redshift では、[AWS Certificate Manager(ACM)](https://aws.amazon.com/certificate-manager/) によって発行された SSL 証明書を作成して各クラスターにインストールします。ACM 証明書は、ほとんどのオペレーションシステム、ウェブブラウザ、およびクライアントから公的に信頼されています。SQL クライアントまたはアプリケーションが、`sslmode`接続オプションを`require`、`verify-ca`、または`verify-full`に設定した SSL を使用して Amazon Redshift に接続する場合は、証明書バンドルをダウンロードする必要があるかもしれません。クライアントが証明書を必要とする場合、Amazon Redshift は以下のようにバンドル証明書を提供します。
+ [https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt](https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt)からバンドルをダウンロードします。
  + 予想される MD5 チェックサム番号は 418dea9b6d5d5de7a8f1ac42e164cdcf です。
  + sha256 のチェックサム番号は 36dba8e4b8041cd14b9d60158893963301bcb92e1c456847784de2acb5bd550 です。

  `https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt`にあった以前の証明書バンドルは使用しないでください。
+  中国のAWS リージョンでは、[https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt)からバンドルをダウンロードします。
  + 予想される MD5 チェックサム番号は 418dea9b6d5d5de7a8f1ac42e164cdcf です。
  + sha256 のチェックサム番号は 36dba8e4b8041cd14b9d60158893963301bcb92e1c456847784de2acb5bd550 です。

  `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/redshift-ca-bundle.crt`および`https://s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem`にあった以前の証明書バンドルは使用しないでください。

**重要**  
Amazon Redshift は、SSL 証明書の管理方法を変更しました。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「[SSL 接続用 ACM 証明書への移行](connecting-transitioning-to-acm-certs.md)」を参照してください。

デフォルトでは、クラスターデータベースは SSL の使用の有無にかかわらず接続を受け入れます。クラスターが SSL 接続を要求するように設定するには、クラスターに関連付けられているパラメータグループで `require_SSL` パラメータを `true` に設定します。

Amazon Redshift は、連邦情報処理標準 (FIPS) 140-2 に準拠する SSL モードをサポートしています。FIPS 準拠 SSL モードはデフォルトで無効化されています。

**重要**  
システムが FIPS に準拠する必要がある場合のみ、FIPS 準拠の SSL モードを有効にします。

FIPS 準拠の SSL モードを有効にするには、Amazon Redshift クラスターまたは Redshift Serverless ワークグループに関連付けたパラメータグループで、`use_fips_ssl` パラメータと `require_SSL` パラメータの両方を `true` に設定します。クラスターのパラメータグループの変更については、「[Amazon Redshift パラメータグループを作成します。](working-with-parameter-groups.md)」を参照してください。ワークグループのパラメータグループの変更については、「[Amazon Redshift Serverless への FIPS 準拠の SSL 接続の設定](serverless-connecting.md#serverless_secure-fips-ssl)」を参照してください。

 Amazon Redshift では、Elliptic Curve Diffie—Hellman Ephemeral (ECDHE) 鍵契約プロトコルがサポートされます。ECDHE を使用すると、クライアントとサーバーはそれぞれ、安全でないチャネルを介して共有シークレットを確立するために使用される楕円曲線パブリック/プライベートキーペアを持ちます。ECDHE を有効にするために、Amazon Redshift で設定を行う必要はありません。ECDHE を使用してクライアント/サーバー間の通信を暗号化する SQL クライアントツールから接続する場合、Amazon Redshift は提供された暗号リストを使用して適切な接続を行います。詳細については、ウィキペディアの [Elliptic curve diffie—hellman](https://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman) と OpenSSL ウェブサイトの [Ciphers](https://www.openssl.org/) を参照してください。

## ODBC の SSL および信頼 CA 証明書
<a name="connecting-ssl-support-odbc"></a>

最新の Amazon Redshift ODBC ドライバー (バージョン 1.3.7.1000 以降) を使用して接続している場合は、このセクションをスキップします。最新のドライバーをダウンロードする方法は、「[Amazon Redshift での ODBC ドライバーのバージョン 2.x による接続の設定](odbc20-install.md)」を参照してください。

引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「[SSL](#connect-using-ssl)」を参照してください。

ダウンロードした証明書が、予想される MD5 チェックサム番号と一致していることを確認できます。これを行うには、Linux オペレーティングシステムではMd5sumプログラムを使用するか、Windows および macOS X オペレーティングシステムでは別のツールを使用できます。

 ODBC DSN には、クライアント接続の暗号化処理方法とサーバー証明書の検証を決定する `sslmode` 設定が含まれます。Amazon Redshift では、クライアント接続から次の `sslmode` 値をサポートします。
+ `disable`

  SSL は無効となり、接続は暗号化されません。
+ `allow`

  SSL は、サーバーで必要な場合に使用されます。
+ `prefer`

  SSL は、サーバーでサポートされている場合に使用されます。Amazon Redshift は SSL をサポートしているため、`sslmode` を `prefer` に設定すると SSL が使用されます。
+ `require`

  SSL が必要です。
+ `verify-ca`

  SSL を使用する必要があり、サーバー証明書を検証する必要があります。
+ `verify-full`

  SSL を使用する必要があります。サーバー証明書を検証し、サーバーのホスト名が証明書上のホスト名属性と一致する必要があります。

クライアントとサーバー間の接続で SSL が使用され、サーバー証明書が検証されているかどうかを確認できます。これを実行するには、クライアント上の ODBC DSN の `sslmode` 設定と、サーバー上の Amazon Redshift クラスターの `require_SSL` 設定を確認します。次の表は、クライアントとサーバーのさまざまな設定の組み合わせの暗号化の結果を示しています。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/connecting-ssl-support.html)

### Microsoft Windows で ODBC によりサーバー証明書を使用して接続する
<a name="connecting-ssl-support-odbc-with-cert"></a>

 SSL とサーバー証明書を使用してクラスターに接続する場合は、まず証明書をクライアントコンピュータまたは Amazon EC2 インスタンスにダウンロードします。次に、ODBC DSN を設定します。

1.  Amazon Redshift の認定権限バンドルを、ドライバーのインストールディレクトリ内の`lib`フォルダでクライアントコンピュータにダウンロードし、ファイルを`root.crt`として保存します。ダウンロード情報については、「[SSL](#connect-using-ssl)」を参照してください。

1.  [**ODBC Data Source Administrator (ODBC データソース管理者)**] を開き、ODBC 接続のシステム DSN エントリを追加または編集します。DNS エイリアスを使用する場合を除き、[**SSL Mode (SSL モード)**] で [`verify-full`] を選択します。DNS エイリアスを使用する場合は、[`verify-ca`] を選択します。次に、[**Save **] を選択します。

    ODBC DSN の設定方法の詳細については、「[Amazon Redshift での ODBC ドライバーのバージョン 2.x による接続の設定](odbc20-install.md)」を参照してください。

## Java の SSL およびサーバー証明書
<a name="connecting-ssl-support-java"></a>

SSL は、クライアントとクラスター間を移動するデータを暗号化することによりセキュリティを強化します。サーバー証明書の使用により、クラスターが Amazon Redshift クラスターであることが確認され、セキュリティがさらに強化されます。これを行うには、プロビジョニングしたすべてのクラスターに自動インストールされたサーバー証明書をチェックします。JDBC でサーバー証明書を使用する方法の詳細については、PostgreSQL ドキュメントの「[Configuring the Client](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client)」を参照してください。

### Java で信頼 CA 証明書を使用して接続する
<a name="connecting-ssl-support-java-with-cert"></a>

**重要**  
Amazon Redshift は、SSL 証明書の管理方法を変更しました。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「[SSL](#connect-using-ssl)」を参照してください。

**信頼 CA 証明書を使用して接続するには**

Amazon Redshift 認証機関バンドルの CA 証明書を Java トラストストアまたはプライベートトラストストアにインポートするには、`redshift-keytool.jar` ファイルを使用します。

1. Java コマンドラインの `-Djavax.net.ssl.trustStore` オプションを使用している場合は、可能であればコマンドラインから解除します。

1. [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar) をダウンロードします。

1. 次のいずれかを行ってください。
   + Amazon Redshift の認定権限バンドルを Java TrustStore にインポートするには、次のコマンドを実行します。

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Amazon Redshift の認定権限バンドルをプライベート TrustStore にインポートするには、次のコマンドを実行します。

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

# SSL 接続用 ACM 証明書への移行
<a name="connecting-transitioning-to-acm-certs"></a>

Amazon Redshift では、現在クラスターの SSL 証明書を[AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/)」発行の証明書に置き換えています。ACM は、現在のほとんどのシステムで信頼されている信頼のある公開認証機関 (CA) です。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。

この変更は、以下のすべてに該当する場合のみ適用されます。
+  `sslMode` 接続オプションを `require`、`verify-ca`、または `verify-full` 設定オプションに指定して、SQL クライアントまたはアプリケーションから Amazon Redshift クラスターに SSL 接続されている。
+ Amazon Redshift ODBC または JDBC ドライバーを使用していない、または ODBC バージョン 1.3.7.1000 または JDBC バージョン 1.2.8.1005 より前の Amazon Redshift ドライバーを使用している。

この変更が商用 Amazon Redshift リージョンに影響する場合は、現在の信頼ルート CA 証明書を 2017 年 10 月 23 日までに更新する必要があります。Amazon Redshift は、お客様のクラスターを 2017 年 10 月 23 日までに順次 ACM 証明書に切り替えていきます。この変更によるお客様のクラスターのパフォーマンスまたはアベイラビリティーへの影響はほとんどありません。

AWS GovCloud (US) (米国)リージョンのお客様が、この変更により影響を受ける場合には、サービスの中断を避けるために、現在の信頼ルート CA 証明書を 2020 年 4 月 1 日までに更新する必要があります。この日付以降、SSL 暗号化接続を使用して Amazon Redshift クラスターに接続するクライアントには、追加の信頼できる認定権限 (CA) が必要です。クライアントは、信頼できる認定権限を使用して、クラスターに接続するときに Amazon Redshift クラスターの ID を確認します。SQL クライアントとアプリケーションを更新して、新しい信頼された CA を含む更新された証明書バンドルを使用するには、アクションが必要です。

**重要**  
2021 年 1 月 5 日、中国リージョンにおいて、Amazon Redshift の クラスター用の SSL 証明書が、AWS Certificate Manager(ACM) 発行の証明書に置き換えられました。この変更が中国 (北京) リージョンまたは中国 (寧夏) リージョンに影響する場合は、サービスの中断を避けるために、現在の信頼ルート CA 証明書を 2021 年 1 月 5 日までに更新する必要があります。この日付以降、SSL 暗号化接続を使用して Amazon Redshift クラスターに接続するクライアントには、追加の信頼できる認定権限 (CA) が必要です。クライアントは、信頼できる認定権限を使用して、クラスターに接続するときに Amazon Redshift クラスターの ID を確認します。SQL クライアントとアプリケーションを更新して、新しい信頼された CA を含む更新された証明書バンドルを使用するには、アクションが必要です。
+ [最新の Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する](#connecting-transitioning-to-acm-latest-odbc-jdbc)
+ [旧 Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する](#connecting-transitioning-to-acm-earlier-odbc-jdbc)
+ [その他の SSL 接続タイプを使用する](#connecting-transitioning-to-acm-other-ssl-types)

## 最新の Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する
<a name="connecting-transitioning-to-acm-latest-odbc-jdbc"></a>

最新の Amazon Redshift の ODBC ドライバーまたは JDBC ドライバーを使用することが推奨されています。ODBC バージョン 1.3.7.1000 および JDBC バージョン 1.2.8.1005 以前の Amazon Redshift ドライバーは、自動的に Amazon Redshift の自己署名証明書から ACM 証明書に移行されます。最新のドライバーをダウンロードする方法は、「[Amazon Redshift での JDBC ドライバーバージョン 2.x による接続の構成](jdbc20-install.md)」を参照してください。

最新の Amazon Redshift JDBC ドライバーを使用する場合は、JVM オプションの `-Djavax.net.ssl.trustStore` を使用しないことをお勧めします。`-Djavax.net.ssl.trustStore`を使用する必要がある場合は、Redshift の認定権限バンドルを指定のトラストストアにインポートします。ダウンロード情報については、「[SSL](connecting-ssl-support.md#connect-using-ssl)」を参照してください。詳細については、「[Amazon Redshift の認定権限バンドルを TrustStore にインポートする](#importing-the-acm-bundle-to-truststore)」を参照してください。

## 旧 Amazon Redshift ODBC ドライバーまたは JDBC ドライバーを使用する
<a name="connecting-transitioning-to-acm-earlier-odbc-jdbc"></a>
+ ODBC DSN が `SSLCertPath` を使用して設定されている場合は、指定されたパスの証明書ファイルに上書きします。
+ `SSLCertPath` が設定されていない場合は、ドライバーの DLL の位置にある証明書ファイル (`root.crt`) に上書きします。

バージョン 1.2.8.1005 より前の Amazon Redshift JDBC ドライバーを使用する必要がある場合は、以下のいずれかを行います。
+ JDBC 接続文字列で `sslCert` オプションを使用している場合は、`sslCert`オプションを解除します。続いて、Redshift の認証機関バンドルを Java トラストストアにインポートします。ダウンロード情報については、「[SSL](connecting-ssl-support.md#connect-using-ssl)」を参照してください。詳細については、「[Amazon Redshift の認定権限バンドルを TrustStore にインポートする](#importing-the-acm-bundle-to-truststore)」を参照してください。
+ Java コマンドラインの `-Djavax.net.ssl.trustStore` オプションを使用している場合は、可能であればコマンドラインから解除します。続いて、Redshift の認証機関バンドルを Java トラストストアにインポートします。ダウンロード情報については、「[SSL](connecting-ssl-support.md#connect-using-ssl)」を参照してください。詳細については、「[Amazon Redshift の認定権限バンドルを TrustStore にインポートする](#importing-the-acm-bundle-to-truststore)」を参照してください。

### Amazon Redshift の認定権限バンドルを TrustStore にインポートする
<a name="importing-the-acm-bundle-to-truststore"></a>

Amazon Redshift の認定権限バンドルの CA 証明書を Java TrustStore またはプライベート信頼ストアにインポートするには、`redshift-keytool.jar` を使用します。

**Amazon Redshift の認定権限バンドルを TrustStore にインポートするには**

1. [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar) をダウンロードします。

1. 次のいずれかを行ってください。
   + Amazon Redshift の認定権限バンドルを Java TrustStore にインポートするには、次のコマンドを実行します。

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Amazon Redshift の認定権限バンドルをプライベート TrustStore にインポートするには、次のコマンドを実行します。

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

## その他の SSL 接続タイプを使用する
<a name="connecting-transitioning-to-acm-other-ssl-types"></a>

次のいずれかを使用して接続している場合は、このセクションの手順に従います。
+  オープンソースの ODBC ドライバー 
+  オープンソースの JDBC ドライバー 
+  [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html) コマンドラインインターフェイス 
+  libpq に基づく言語バインディング (例: psycopg2 (Python)、ruby-pg (Ruby)) 

**その他の SSL 接続タイプで ACM 証明書を使用するには**

1.  Amazon Redshift の認定権限バンドルをダウンロードします。ダウンロード情報については、「[SSL](connecting-ssl-support.md#connect-using-ssl)」を参照してください。

1. バンドルの証明書を `root.crt` ファイルに追加します。
   + Linux および macOS X オペレーティングシステムでは、ファイルは `~/.postgresql/root.crt` です。
   + Microsoft Windows では、ファイルは `%APPDATA%\postgresql\root.crt` です。

# クライアントツールおよびコードからの接続
<a name="connecting-via-client-tools"></a>

Amazon Redshift には、クラスターやワークグループに接続する Amazon Redshift クエリエディタ v2 が用意されています。詳細については、「[クエリエディタ v2 を使用してデータベースのクエリを実行するAmazon Redshift クエリエディタ v2 を使用したデータベースのクエリの実行](query-editor-v2.md)」を参照してください。

このセクションでは、接続用サードパーティー製ツールのいくつかのオプションについて説明します。さらに、クラスターにプログラムにより接続する方法について説明します。

**Topics**
+ [Amazon Redshift RSQL を使用した接続](rsql-query-tool.md)
+ [Amazon Redshift RSQL を使用してクラスターに接続する](rsql-query-tool-starting-tool-connection.md)
+ [Amazon Redshift RSQL メタコマンド](rsql-query-tool-commands.md)
+ [Amazon Redshift RSQL 変数](rsql-query-tool-variables.md)
+ [Amazon Redshift RSQL エラーコード](rsql-query-tool-error-codes.md)
+ [Amazon Redshift RSQL 環境変数](rsql-query-tool-environment-variables.md)

# Amazon Redshift RSQL を使用した接続
<a name="rsql-query-tool"></a>

 Amazon Redshift RSQL は、Amazon Redshift クラスターおよびデータベースと対話するためのコマンドラインクライアントです。Amazon Redshift クラスターに接続したり、データベースオブジェクトを記述したり、データをクエリしたり、クエリ結果をさまざまな出力形式で表示したりすることができます。

 Amazon Redshift RSQL は、PostgreSQL psql コマンドラインツールの機能に、Amazon Redshift に特有の機能を追加したものをサポートします。これには以下が含まれます。
+ AD FS、PingIdentity、Okta、Azure ADm、またはその他の SAML/JWT ベースの ID プロバイダーを使用した、シングルサインオン認証を使用できます。多要素認証 (MFA) には、ブラウザベースの SAML アイデンティティプロバイダーを使用することもできます。
+ テーブルソートキー、テーブルソートキー、レイトバインディングビュー (LBV)、マテリアライズドビューなど、Amazon Redshift オブジェクトのプロパティまたは属性を記述できます。また、AWS Glueカタログや Apache Hive Metastore の外部テーブル、Amazon RDS for PostgreSQL、Amazon Aurora PostgreSQL-Compatible Edition、RDS for MySQL (プレビュー)、Amazon Aurora MySQL-Compatible Edition(プレビュー) の外部データベース、Amazon Redshift のデータ共有を利用して共有されたテーブルのプロパティや属性を記述することができます。
+ また、`IF`(`\ELSEIF`、`\ELSE,``\ENDIF`)、`\GOTO`および`\LABEL`のような拡張コントロールフローコマンドを使用することもできます。

 入力パラメータとして渡されたスクリプトを実行する Amazon Redshift RSQL バッチモードでは、SQL と複雑なビジネスロジックの両方を含むスクリプトを実行できます。既存の自己管理型のオンプレミスデータウェアハウスがある場合は、Amazon Redshift RSQL を使用して、Teradata BTEQ スクリプトなどの既存の抽出、変換、ロード (ETL) および自動化スクリプトを置き換えることができます。RSQL を使用すると、手続き型言語でスクリプトを手動で再実装する必要がなくなります。

 Amazon Redshift RSQL は Linux、Windows、macOS X オペレーションシステムで利用できます。

Amazon Redshift RSQL の問題を報告するには、redshift-rsql-support@amazon.comに書き込んでください。

**Topics**
+ [Amazon Redshift RSQL の開始方法](rsql-query-tool-getting-started.md)
+ [Amazon Redshift RSQL の変更ログ](rsql-query-tool-changelog.md)

# Amazon Redshift RSQL の開始方法
<a name="rsql-query-tool-getting-started"></a>

Linux、macOS、または Microsoft Windows オペレーションシステムを搭載したコンピュータに Amazon Redshift RSQL をインストールします。

## RSQL をダウンロードする
<a name="rsql-query-tool-download"></a>
+ Linux 64 ビット RPM: [RSQL バージョン 1.1.2](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.rhel.x86_64.rpm) 
  + Linux アーティファクト署名キー: [キー](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2-certificate.pem) 
  + Linux アーティファクト署名付き Hash: [Hash](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2-signature.bin) 
+ Mac OS 64 ビット PKG: [RSQL バージョン 1.1.2](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.universal.pkg) 
+ Windows 64 ビット MSI: [RSQL バージョン 1.1.2](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.x86_64.msi) 

[Amazon Redshift RSQL の変更ログ](rsql-query-tool-changelog.md) で変更ログを確認し、以前のバージョンをダウンロードしてください。

## Linux 用 RSQL をインストールする
<a name="rsql-query-tool-linux-install"></a>

Linux 用 RSQL をインストールするには、以下の手順に従います。

1. 次のコマンドでドライバーマネージャーをインストールします。

   ```
   sudo yum install unixODBC
   ```

1. ODBC ドライバーをインストールします。[Amazon Redshift ODBC ドライバーをダウンロードしてインストールするODBC ドライバーをダウンロードしてインストールする](odbc20-install-linux.md)。

1. ini ファイルをホームディレクトリにコピーします。

   ```
   cp /opt/amazon/redshiftodbcx64/odbc.ini ~/.odbc.ini
   ```

1. ファイルの場所を指すように環境変数を設定します。

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshiftodbcx64/
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshiftodbcx64/amazon.redshiftodbc.ini
   ```

1. これで、次のコマンドを実行して RSQL をインストールできます。

   ```
   sudo rpm -i AmazonRedshiftRsql-<version>.rhel.x86_64.rpm
   ```

## Mac 用 RSQL をインストールする
<a name="rsql-query-tool-mac-install"></a>

Mac OSX 用 RSQL をインストールするには、以下の手順に従います。

1. 次のコマンドでドライバーマネージャーをインストールします。

   ```
   brew install unixodbc --build-from-source
   ```

1. ODBC ドライバーをインストールします。[Amazon Redshift ODBC ドライバーをダウンロードしてインストールするODBC ドライバーをダウンロードしてインストールする](odbc-driver-mac-how-to-install.md)。

1. ini ファイルをホームディレクトリにコピーします。

   ```
   cp /opt/amazon/redshift/Setup/odbc.ini ~/.odbc.ini
   ```

1. ファイルの場所を指すように環境変数を設定します。

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshift/Setup
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshift/lib/amazon.redshiftodbc.ini
   ```

1. `/usr/local/lib`にない場合は、libodbc.dylib の場所に`DYLD_LIBRARY_PATH`を設定します。

   ```
   export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
   ```

1. pkg ファイルをダブルクリックしてインストーラを実行します。

1. インストーラの手順に従ってインストールを完了します。ライセンス契約の条項に同意する。

## Windows 用 RSQL をインストールする
<a name="rsql-query-tool-windows-install"></a>

Windows 用 RSQL をインストールするには、以下の手順に従います。

1. ODBC ドライバーをインストールします。[Amazon Redshift ODBC ドライバーをダウンロードしてインストールするODBC ドライバーをダウンロードしてインストールする](odbc-driver-windows-how-to-install.md)。

1. RSQL ダウンロードファイルをダブルクリックしてインストーラを実行し、プロンプトに従ってインストールを完了します。

# Amazon Redshift RSQL の変更ログ
<a name="rsql-query-tool-changelog"></a>

*1.1.2 (2025 年 12 月 11 日)*

バグ修正
+ \$1goto コマンドと \$1label コマンドで障害が発生するバグを修正しました。
+ 変数が引用符で囲まれたときに RSQL が変数値を印刷できないバグを修正しました。
+ UseDeclareFetch が有効になっていて、クエリ結果が ODBC DSN Fetch パラメータサイズを超えたときに RSQL がクラッシュするバグを修正しました。
+ ページャーがオンになっていても、複数の結果ページが一度に返される問題を修正しました。
+ トランザクションブロック内でクエリが失敗したときに RSQL がクラッシュするバグを修正しました。

*1.1.1 (2025 年 11 月 20 日)*

バグ修正
+ -c フラグの使用時に RSQL がクエリを誤って解析する問題を修正しました。この修正はすべてのプラットフォームに適用されます。
+ ユーザーが RSQL で \$1s コマンドを使用できなくなる Mac のバグを修正しました。

*1.1.0 (2025 年 11 月 11 日)*

バグ修正
+ RSQL で予期しないクラッシュを引き起こしていたメモリリークの問題を解決しました。
+ RSQL から OpenSSL 依存関係を削除しました。
+ 同じ環境内の libpq/psql インストールとのリンクの競合を修正しました。
+ Amazon Linux 2023、Windows、macOS のプラットフォーム互換性が向上しました。
+ 現在の表示サイズを超えると出力が切り捨てられる問題を修正しました。

*1.0.8 (2023-06-19)*

バグ修正
+ SHOW コマンドで出力が切り捨てられる問題を修正しました。
+ 外部 Kinesis ストリームと Kafka トピックを記述するためのサポートを \$1de に追加しました。

*1.0.7 (2023 年 3 月 22 日)*

バグ修正
+ RSQL がマテリアライズドビューを記述できない問題を修正しました。
+ Amazon Redshift Serverless を使用しているときに stl\$1connection\$1log でアクセス権限拒否エラーが発生する問題を修正しました。
+ RSQL が \$1GOTO ラベルを誤って処理する場合がある問題を修正しました。
+ SSL メッセージがクワイエットモードで印刷される問題を修正しました。
+ ストアドプロシージャを記述するときにランダムな文字が表示される問題を修正しました。
+ 重複する ERROR/INFO メッセージが印刷される問題を修正しました。

新
+ RSQL は、ODBC ドライバーから SSL 情報を直接取得するようになりました。



*1.0.6 (2023 年 2 月 21 日)*

バグ修正
+ Redshift パッチ 1.0.46086 (P173) で \$1d がエラー (整数の入力構文が無効: "xid") をスローする問題を修正しました。

新
+ サポートされているアーキテクチャを反映するようにインストールファイルの名前を変更しました。



*1.0.5 (2022-06-27)*

バグ修正
+ SQL エラーメッセージを標準エラー (stderr) に送信します。
+ ON\$1ERROR\$1STOP を使用する際の終了コードの問題を修正しました。スクリプトはエラーが発生した後に終了し、正しい終了コードを返すようになりました。
+ Maxerror は大文字と小文字は区別しなくなりました。

新
+ ODBC 2.x ドライバーのサポートを追加しました。



*1.0.4 (2022 年 3 月 19 日)*
+ 環境変数 RSPASSWORD のサポートを追加しました。Amazon Redshift に接続するためのパスワードを設定しました。例えば、`export RSPASSWORD=TestPassw0rd`。



*1.0.3 (2021 年 12 月 8 日)*

バグ修正
+ Windows OS でデータベースの切り替えに `\c` または `\logon` を使用しているときのダイアログポップアップを修正しました。
+ SSL 情報のチェック時におけるクラッシュを修正しました。



## Amazon Redshift RSQL の以前のバージョン
<a name="rsql-query-tool-changelog-legacy-versions"></a>

お使いのオペレーティングシステムに基づいて、必要な Amazon Redshift RSQL のバージョンをダウンロードするためのリンクのいずれかを選択してください。

**Linux 64 ビット RPM**
+ [RSQL バージョン 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.rhel.x86_64.rpm)
+ [RSQL バージョン 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.rhel.x86_64.rpm)
+ [RSQL バージョン 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.rpm)
+ [RSQL バージョン 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.rpm)
+ [RSQL バージョン 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.rpm)
+ [RSQL バージョン 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5-1.x86_64.rpm)
+ [RSQL バージョン 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4-1.x86_64.rpm)
+ [RSQL バージョン 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3-1.x86_64.rpm) 
+ [RSQL バージョン 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1-1.x86_64.rpm) 

**Mac OS 64 ビット DMG/PKG**
+ [RSQL バージョン 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.universal.pkg)
+ [RSQL バージョン 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.universal.pkg)
+ [RSQL バージョン 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.dmg)
+ [RSQL バージョン 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.dmg)
+ [RSQL バージョン 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.dmg)
+ [RSQL バージョン 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.dmg) 
+ [RSQL バージョン 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.dmg) 
+ [RSQL バージョン 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.dmg) 
+ [RSQL バージョン 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.dmg) 

**Windows 64 ビット MSI**
+ [RSQL バージョン 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.x86_64.msi)
+ [RSQL バージョン 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.x86_64.msi)
+ [RSQL バージョン 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.msi)
+ [RSQL バージョン 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.msi)
+ [RSQL バージョン 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.msi)
+ [RSQL バージョン 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.msi)
+ [RSQL バージョン 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.msi)
+ [RSQL バージョン 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.msi) 
+ [RSQL バージョン 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.msi) 

# Amazon Redshift RSQL を使用してクラスターに接続する
<a name="rsql-query-tool-starting-tool-connection"></a>

Amazon Redshift では、クラスターに接続し、RSQL を使用してクラスターを操作できます。これは、データをクエリし、データベースオブジェクトを作成し、Amazon Redshift クラスターを管理するための安全な方法を提供するコマンドラインツールです。以下のセクションでは、データソース名 (DSN) の有無にかかわらず RSQL を使用してクラスターへの接続を確立する手順について説明します。

## DSN なしで接続する
<a name="rsql-query-tool-starting-tool-connection-dsn-less-example"></a>

1. Amazon Redshift コンソールで、接続するクラスターを選択し、エンドポイント、データベース、ポートを書き留めます。

1. コマンドプロンプトで、コマンドラインパラメータを使用して、接続情報を指定します。

   ```
   rsql -h <endpoint> -U <username> -d <databasename> -p <port>
   ```

    ここでは、次の条件が適用されます。
   +  *<endpoint>* は前のステップで書き留めた [**Endpoint (エンドポイント)**] です。
   +  *<ユーザーネーム>* は、クラスターに接続する権限を持つユーザーの名前です。
   +  *<databasename>* は前のステップで書き留めた [**Database Name (データベース名)**] です。
   +  *<ポート>* は、前のステップで記録した**ポート**です。*<ポート>* は、オプションのパラメータです。

   以下に例を示します。

   ```
   rsql -h testcluster.example.amazonaws.com -U user1 -d dev -p 5439
   ```

1.  パスワードプロンプトで、*<ユーザーネーム>* ユーザーのパスワードを入力します。

   接続に成功した場合のレスポンスは次のようになります。

   ```
   % rsql -h testcluster.example.com -d dev -U user1 -p 5349
   Password for user user1:
   DSN-less Connected
   DBMS Name: Amazon Redshift
   Driver Name: Amazon Redshift ODBC Driver
   Driver Version: 1.4.27.1000
   Rsql Version: 1.0.1
   Redshift Version: 1.0.29306
   Type "help" for help.
   
   (testcluster) user1@dev=#
   ```

接続するコマンドは、Linux、Mac OS、および Windows で同じパラメータを持ちます。

## DSN を使用して接続する
<a name="rsql-query-tool-starting-tool-connection-dsn-example"></a>

RSQL を Amazon Redshift に接続するには、DSN を使用して接続プロパティの組織を簡素化できます。このトピックでは、ODBC ドライバーのインストール手順と DSN プロパティの説明が含まれています。

### パスワードで DSN 接続を使用する
<a name="rsql-query-tool-starting-tool-connection-dsn-example-password"></a>

次に、パスワードを使用した DSN 接続の設定例を示します。Mac OSX のデフォルト`<path to driver>`は`/opt/amazon/redshift/lib/libamazonredshiftodbc.dylib`、Linux のデフォルトは`/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so`です。

```
[testuser]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<database port>
Database=<dbname>
UID=<username>
PWD=<password>
sslmode=prefer
```

接続に成功した場合の出力結果は次のようになります。

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

### シングルサインオン DSN の使用
<a name="rsql-query-tool-starting-tool-connection-dsn"></a>

シングルサインオン認証用に DSN を設定できます。次に、シングルサインオン SSO を使用する DSN 接続設定の例を示します。

```
[testokta]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-US
iam=1
plugin_name=<plugin name>
uid=<okta username>
pwd=<okta password>
idp_host=<idp endpoint>
app_id=<app id>
app_name=<app name>
preferred_role=<role arn>
```

成功した接続からの出力例。

```
% rsql -D testokta 
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

次の例は、Azure シングルサインオンを使用する DSN 接続設定の例を示しています。

```
[testazure]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<cluster port>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-us
iam=1
plugin_name=<plugin name>
uid=<azure username>
pwd=<azure password>
idp_tenant=<Azure idp tenant uuid>
client_id=<Azure idp client uuid>
client_secret=<Azure idp client secret>
```

### IAM プロファイルで DSN 接続を使用する
<a name="rsql-query-tool-starting-tool-connection-dsn-iam"></a>

設定した IAM プロファイルを使用して Amazon Redshift に接続できます。IAM プロファイルは、`GetClusterCredentials`を呼び出すための権限が必要です。次の例は、使用する DSN プロパティを示しています。`ClusterID`および`Region`のパラメータは、`Host`が`examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`のように Amazon が提供するエンドポイントではない場合にのみ必要になります。

```
[testiam]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Profile=default
```

`Profile`キーの値は、AWSCLI 認証情報から選択した名前付きプロファイルです。この例は、`default`という名前のプロファイルの認証情報を示しています。

```
$ cat .aws/credentials
[default]
aws_access_key_id = ASIAIOSFODNN7EXAMPLE 
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

接続レスポンスは次のとおりです。

```
$ rsql -D testiam
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### インスタンスプロファイルでの DSN 接続の使用
<a name="rsql-query-tool-starting-tool-connection-dsn-instance"></a>

Amazon EC2 インスタンスプロファイルを使用して Amazon Redshift に接続できます。インスタンスプロファイルには、`GetClusterCredentials`を呼び出すための権限が必要です。使用する DSN プロパティについては、以下の例を参照してください。`ClusterID`および`Region`のパラメータは、`Host`が`examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`のように Amazon が提供するエンドポイントではない場合にのみ必要になります。

```
[testinstanceprofile]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Instanceprofile=1
```

接続レスポンスは次のとおりです。

```
$ rsql -D testinstanceprofile
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### デフォルトの認証情報プロバイダーチェーンで DSN 接続を使用する
<a name="rsql-query-tool-starting-tool-connection-dsn-provider-chain"></a>

デフォルトの認証情報プロバイダーチェーンを使用して接続するには、IAM プロパティのみを指定します。Amazon Redshift RSQL は、「AWS SDK for Java」の「[AWS 認証情報の使用](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html)」で説明されている順序で認証情報の取得を試みます。チェーン内の少なくとも 1 つのプロバイダーが `GetClusterCredentials` のアクセス許可を持っている必要があります。これは、ECS コンテナから接続する場合などに便利です。

```
[iamcredentials]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
```

# Amazon Redshift RSQL メタコマンド
<a name="rsql-query-tool-commands"></a>

Amazon Redshift RSQL メタコマンドは、データベース、または特定のデータベースオブジェクトに関する情報レコードを返します。結果には、さまざまな列とメタデータを含めることができます。その他のコマンドは、特定のアクションを実行します。これらのコマンドの先頭にはバックスラッシュが付きます。

## \$1d[S\$1]
<a name="rsql-query-tool-describe-d"></a>

 ユーザーが作成したローカルテーブル、レギュラービュー、レイトバインディングビュー、マテリアライズドビューを一覧表示します。`\dS `も`\d`と同様に、テーブルとビューを一覧表示しますが、システムオブジェクトは返されたレコードに含まれます。`+`の結果、一覧表示されたすべてのオブジェクトの追加メタデータ列`description`が表示されます。次に、コマンドの結果として返されるサンプルレコードを示します。

```
List of relations
 schema |   name    | type  |  owner  
--------+-----------+-------+---------
 public | category  | table | awsuser
 public | date      | table | awsuser
 public | event     | table | awsuser
 public | listing   | table | awsuser
 public | sales     | table | awsuser
 public | users     | table | awsuser
 public | venue     | table | awsuser
(7 rows)
```

## \$1d[S\$1] 名前
<a name="rsql-query-tool-describe-s-plus-named"></a>

テーブル、ビュー、またはインデックスについて説明します。列の名前と型が含まれます。また、distststyle、バックアップ設定、作成日 (2018 年 10 月以降に作成されたテーブル）、および制約条件を提供します。たとえば、`\dS+ sample`はオブジェクトのプロパティを返します。`S+`を付けると、返されたレコードに含まれる追加の列が表示されます。

```
Table "public.sample"
 Column |            Type             |   Collation    | Nullable | Default Value | Encoding  | DistKey | SortKey
--------+-----------------------------+----------------+----------+---------------+-----------+---------+---------
 col1   | smallint                    |                | NO       |               | none      | t       | 1
 col2   | character(100)              | case_sensitive | YES      |               | none      | f       | 2
 col3   | character varying(100)      | case_sensitive | YES      |               | text32k   | f       | 3
 col4   | timestamp without time zone |                | YES      |               | runlength | f       | 0
 col5   | super                       |                | YES      |               | zstd      | f       | 0
 col6   | bigint                      |                | YES      |               | az64      | f       | 0

Diststyle: KEY
Backup: YES
Created: 2021-07-20 19:47:27.997045
Unique Constraints:
    "sample_pkey" PRIMARY KEY (col1)
    "sample_col2_key" UNIQUE (col2)
Foreign-key constraints:
    "sample_col2_fkey" FOREIGN KEY (col2) REFERENCES lineitem(l_orderkey)
```

テーブルのディストリビューションスタイル、または*ディストスタイル*は、KEY、AUTO、EVEN または ALL のいずれかです。

*バックアップ*は、スナップショットの作成時にテーブルがバックアップされるかどうかを示します。有効な値は `YES` または `NO` です。

*作成*は、テーブルが作成された時刻のタイムスタンプです。2018 年 11 月より前に作成された Amazon Redshift テーブルでは、作成日は使用できません。この日付より前に作成されたテーブルには「なし」と表示されます (使用不可）。

*ユニーク制約*は、テーブルにユニーク制約とプライマリキー制約を一覧表示します。

*外部キー制約*は、テーブルに外部キー制約を一覧表示します。

## \$1dC[\$1] [パターン]
<a name="rsql-query-tool-describe-dc"></a>

キャストを一覧表示します。ソースタイプ、ターゲットタイプ、およびキャストが暗黙的かどうかが含まれます。

次に、`\dC+`からの結果のサブセットを示します。

```
List of casts
         source type         |         target type         |      function       |   implicit?   | description 
-----------------------------+-----------------------------+---------------------+---------------+-------------
 "char"                      | character                   | bpchar              | in assignment | 
 "char"                      | character varying           | text                | in assignment | 
 "char"                      | integer                     | int4                | no            | 
 "char"                      | text                        | text                | yes           | 
 "path"                      | point                       | point               | no            | 
 "path"                      | polygon                     | polygon             | in assignment | 
 abstime                     | date                        | date                | in assignment | 
 abstime                     | integer                     | (binary coercible)  | no            | 
 abstime                     | time without time zone      | time                | in assignment | 
 abstime                     | timestamp with time zone    | timestamptz         | yes           | 
 abstime                     | timestamp without time zone | timestamp           | yes           | 
 bigint                      | bit                         | bit                 | no            | 
 bigint                      | boolean                     | bool                | yes           | 
 bigint                      | character                   | bpchar              | in assignment | 
 bigint                      | character varying           | text                | in assignment | 
 bigint                      | double precision            | float8              | yes           | 
 bigint                      | integer                     | int4                | in assignment | 
 bigint                      | numeric                     | numeric             | yes           | 
 bigint                      | oid                         | oid                 | yes           | 
 bigint                      | real                        | float4              | yes           | 
 bigint                      | regclass                    | oid                 | yes           | 
 bigint                      | regoper                     | oid                 | yes           | 
 bigint                      | regoperator                 | oid                 | yes           | 
 bigint                      | regproc                     | oid                 | yes           | 
 bigint                      | regprocedure                | oid                 | yes           | 
 bigint                      | regtype                     | oid                 | yes           | 
 bigint                      | smallint                    | int2                | in assignment | 
 bigint                      | super                       | int8_partiql        | in assignment |
```

## \$1dd[S] [パターン]
<a name="rsql-query-tool-describe-dds"></a>

他の場所では表示されないオブジェクトの説明が表示されます。

## \$1de
<a name="rsql-query-tool-describe-de"></a>

外部テーブルを一覧表示します。これには、AWS Glue Data Catalog のテーブル、Hive メタストア、Amazon RDS/Aurora MySQL、Amazon RDS/Aurora PostgreSQL、Amazon Redshift のデータ共有テーブルからの連携テーブルが含まれます。

## \$1de 名前
<a name="rsql-query-tool-describe-de-name"></a>

外部テーブルについて説明します。

次のサンプルは、AWS Glue外部テーブルを示しています。

```
# \de spectrum.lineitem
                            Glue External table "spectrum.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_shipdate      | date          | date          | 11       | 0             |
 l_commitdate    | date          | date          | 12       | 0             |
 l_receiptdate   | date          | date          | 13       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 14       | 0             |
 l_shipmode      | char(10)      | char(10)      | 15       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 16       | 0             |

Location: s3://redshiftbucket/kfhose2019/12/31
Input_format: org.apache.hadoop.mapred.TextInputFormat
Output_format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Serialization_lib: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Serde_parameters: {"field.delim":"|","serialization.format":"|"}
Parameters: {"EXTERNAL":"TRUE","numRows":"178196721475","transient_lastDdlTime":"1577771873"}
```

Hive メタストアテーブル。

```
# \de emr.lineitem
                     Hive Metastore External Table "emr.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_commitdate    | date          | date          | 11       | 0             |
 l_receiptdate   | date          | date          | 12       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 13       | 0             |
 l_shipmode      | char(10)      | char(10)      | 14       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 15       | 0             |
 l_shipdate      | date          | date          | 16       | 1             |

Location: s3://redshiftbucket/cetas
Input_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
Output_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Serialization_lib: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
Serde_parameters: {"serialization.format":"1"}
Parameters: {"EXTERNAL":"TRUE", "numRows":"4307207", "transient_lastDdlTime":"1626990007"}
```

PostgreSQL 外部テーブル。

```
# \de pgrsql.alltypes
                                Postgres Federated Table "pgrsql.alltypes"
 Column |        External Type        |        Redshift Type        | Position | Partition Key | Nullable
--------+-----------------------------+-----------------------------+----------+---------------+----------
 col1   | bigint                      | bigint                      | 1        | 0             |
 col2   | bigint                      | bigint                      | 2        | 0             |
 col5   | boolean                     | boolean                     | 3        | 0             |
 col6   | box                         | varchar(65535)              | 4        | 0             |
 col7   | bytea                       | varchar(65535)              | 5        | 0             |
 col8   | character(10)               | character(10)               | 6        | 0             |
 col9   | character varying(10)       | character varying(10)       | 7        | 0             |
 col10  | cidr                        | varchar(65535)              | 8        | 0             |
 col11  | circle                      | varchar(65535)              | 9        | 0             |
 col12  | date                        | date                        | 10       | 0             |
 col13  | double precision            | double precision            | 11       | 0             |
 col14  | inet                        | varchar(65535)              | 12       | 0             |
 col15  | integer                     | integer                     | 13       | 0             |
 col16  | interval                    | varchar(65535)              | 14       | 0             |
 col17  | json                        | varchar(65535)              | 15       | 0             |
 col18  | jsonb                       | varchar(65535)              | 16       | 0             |
 col19  | line                        | varchar(65535)              | 17       | 0             |
 col20  | lseg                        | varchar(65535)              | 18       | 0             |
 col21  | macaddr                     | varchar(65535)              | 19       | 0             |
 col22  | macaddr8                    | varchar(65535)              | 20       | 0             |
 col23  | money                       | varchar(65535)              | 21       | 0             |
 col24  | numeric                     | numeric(38,20)              | 22       | 0             |
 col25  | path                        | varchar(65535)              | 23       | 0             |
 col26  | pg_lsn                      | varchar(65535)              | 24       | 0             |
 col28  | point                       | varchar(65535)              | 25       | 0             |
 col29  | polygon                     | varchar(65535)              | 26       | 0             |
 col30  | real                        | real                        | 27       | 0             |
 col31  | smallint                    | smallint                    | 28       | 0             |
 col32  | smallint                    | smallint                    | 29       | 0             |
 col33  | integer                     | integer                     | 30       | 0             |
 col34  | text                        | varchar(65535)              | 31       | 0             |
 col35  | time without time zone      | varchar(65535)              | 32       | 0             |
 col36  | time with time zone         | varchar(65535)              | 33       | 0             |
 col37  | timestamp without time zone | timestamp without time zone | 34       | 0             |
 col38  | timestamp with time zone    | timestamp with time zone    | 35       | 0             |
 col39  | tsquery                     | varchar(65535)              | 36       | 0             |
 col40  | tsvector                    | varchar(65535)              | 37       | 0             |
 col41  | txid_snapshot               | varchar(65535)              | 38       | 0             |
 col42  | uuid                        | varchar(65535)              | 39       | 0             |
 col43  | xml                         | varchar(65535)              | 40       | 0             |
```

## \$1df[anptw][S\$1] [パターン]
<a name="rsql-query-tool-df"></a>

 さまざまなタイプの関数を一覧表示します。例えば、コマンド`\df`は関数のリストを返します。結果には、名前、返されたデータタイプ、アクセス権、追加のメタデータなどのプロパティが含まれます。関数の種類には、トリガー、ストアドプロシージャ、window 関数、およびその他のものがあります。例えば`S+`をコマンド`\dfantS+`に追加すると、`owner`、`security`、および`access privileges`などのメタデータ列が追加されます。

## \$1dL[S\$1] [パターン]
<a name="rsql-query-tool-describe-dl"></a>

 データベースに関連付けられている手続き言語に関するデータを一覧表示します。情報には、plpgsql などの名前と、信頼できるかどうかを含んだ追加のメタデータ、アクセス権限、および説明が含まれます。サンプル呼び出しは、例えば`\dLS+`であり、言語とそのプロパティが一覧表示されます。`S+`をコマンドに追加すると、`call handler`および`access privileges`などのメタデータ列が追加されます。

サンプル結果:

```
List of languages
   name    | trusted | internal language |      call handler       |                         validator                          | access privileges |          description           
-----------+---------+-------------------+-------------------------+------------------------------------------------------------+-------------------+--------------------------------
 c         | f       | t                 | -                       | fmgr_c_validator(oid)                                      |                   | Dynamically-loaded C functions
 exfunc    | f       | f                 | exfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 internal  | f       | t                 | -                       | fmgr_internal_validator(oid)                               |                   | Built-in functions
 mlfunc    | f       | f                 | mlfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 plpgsql   | t       | f                 | plpgsql_call_handler()  | plpgsql_validator(oid)                                     |                   | 
 plpythonu | f       | f                 | plpython_call_handler() | plpython_compiler(cstring,cstring,cstring,cstring,cstring) | rdsdb=U/rdsdb     | 
 sql       | t       | t                 | -                       | fmgr_sql_validator(oid)                                    | =U/rdsdb          | SQL-language functions
```

## \$1dm[S\$1] [パターン]
<a name="rsql-query-tool-describe-dm"></a>

 マテリアライズドビューを一覧表示します。例えば、`\dmS+`は、マテリアライズドビューとそのプロパティを一覧表示します。`S+`をコマンドに追加すると、メタデータ列が追加されます。

## \$1dn[S\$1] [パターン]
<a name="rsql-query-tool-describe-dn"></a>

 スキーマを一覧表示します。例えば、`S+`を`\dnS+`のコマンドに追加すると、`description`および`access privileges`などの追加のメタデータ列が追加されます。

## \$1dp [パターン]
<a name="rsql-query-tool-describe-dp"></a>

 テーブル、ビューおよびシーケンスのアクセス権限を一覧表示します。

## \$1dt[S\$1] [パターン]
<a name="rsql-query-tool-describe-dt"></a>

 テーブルの一覧表示 例えば、`S+`をコマンド`\dtS+`に追加すると、この場合`description`のようなメタデータ列が追加されます。

## \$1du
<a name="rsql-query-tool-describe-du"></a>

 データベースのユーザーを一覧表示します。名前とスーパーユーザーなどのロール、属性が含まれます。

## \$1dv[S\$1] [パターン]
<a name="rsql-query-tool-describe-dv"></a>

 ビューを一覧表示します。スキーマ、タイプ、および所有者データが含まれます。例えば、`S+`をコマンド`\dvS+`に追加すると、メタデータ列が追加されます。

## \$1H
<a name="rsql-query-tool-describe-h"></a>

 HTML 出力をオンにします。これは、フォーマットされた結果をすばやく返す場合に便利です。例えば、`select * from sales; \H`は、売上表の結果を HTML で返します。結果を表形式に戻すには、`\q`または quiet を使用します。

## \$1i
<a name="rsql-query-tool-describe-i"></a>

 ファイルからコマンドを実行します。例えば、作業ディレクトリに rsql\$1steps.sql があると仮定すると、次のものがファイルのコマンドを実行します。`\i rsql_steps.sql`。

## \$1l[\$1] [パターン]
<a name="rsql-query-tool-describe-l"></a>

 データベースを一覧表示します。所有者、エンコード、および追加情報が含まれます。

## \$1q
<a name="rsql-query-tool-describe-q"></a>

 quit または `\q` コマンドを実行して、データベースセッションからログオフし、RSQL を終了します。

## \$1sv[\$1] ビュー名
<a name="rsql-query-tool-describe-sv-name"></a>

 ビューの定義を表示します。

## \$1timing
<a name="rsql-query-tool-describe-timing"></a>

 例えば、クエリのランタイムが表示されます。

## \$1z [パターン]
<a name="rsql-query-tool-describe-z"></a>

 \$1dpと同じ出力です。

## \$1?
<a name="rsql-query-tool-help"></a>

 ヘルプ情報を表示します。オプションのパラメータにより、表示する項目を指定します。

## \$1EXIT
<a name="rsql-query-tool-flow-control-exit"></a>

 すべてのデータベースセッションからログオフし、Amazon Redshift RSQL を終了します。加えて、オプションの終了コードを指定することも可能です。例えば `\EXIT 15` では、Amazon Redshift の RSQL ターミナルを終了し、その際に終了コードとして 15 を返します。

次の例は、接続からの出力と RSQL からの終了を示しています。

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.34.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306 
Type "help" for help.

(testcluster) user1@dev=# \exit 15

% echo $?
15
```

## \$1EXPORT
<a name="rsql-query-tool-export"></a>

 後続の SQL SELECT ステートメントによって返されたデータベース情報を保存するために RSQL が使用するエクスポートファイルの名前を指定します。

export\$101.sql

```
\export report file='E:\\accounts.out'
\rset rformat off
\rset width 1500
\rset heading "General Title"
\rset titledashes on
select * from td_dwh.accounts;
\export reset
```

コンソール出力

```
Rformat is off.
Target width is 1500.
Heading is set to: General Title
Titledashes is on.
(exported 40 rows)
```

## \$1LOGON
<a name="rsql-query-tool-flow-control-logon"></a>

 データベースに接続します。接続パラメータは、位置指定の構文を使って指定することも、接続文字列として指定することもできます。　

コマンドの構文は次のとおりです。`\logon {[DBNAME|- USERNAME|- HOST|- PORT|- [PASSWORD]] | conninfo}`

`DBNAME` は、接続先に指定するデータベースの名前です。`USERNAME` は、データベースへの接続に使用するユーザー名です。`HOST` のデフォルト値は `localhost` です。`PORT` のデフォルト値は `5439` です。

`\LOGON` コマンドでホスト名を指定した場合、その名前が、追加の `\LOGON` コマンドでのデフォルトのホスト名になります。デフォルトのホスト名を変更するには、追加の `HOST` コマンドで新しく `\LOGON` を指定します。

`user1` に対する `\LOGON` コマンドの出力例を以下に示します。

```
(testcluster) user1@redshiftdb=# \logon dev
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user1".
(testcluster) user1@dev=#
```

*user2*に対する出力例

```
(testcluster) user1@dev=# \logon dev user2 testcluster2.example.com
Password for user user2: 
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user2" on host "testcluster2.example.com" at port "5439".
(testcluster2) user2@dev=#
```

## \$1REMARK
<a name="rsql-query-tool-flow-control-remark"></a>

 これは `\echo` コマンドの拡張です。`\REMARK` は、指定された文字列を出力ストリームに表示します。`\REMARK ` は `\echo` を拡張して、出力を改行する機能を追加したものです。

次の例は、コマンドからの出力例を示しています。

```
(testcluster) user1@dev=# \remark 'hello//world'
hello
world
```

## \$1RSET
<a name="rsql-query-tool-rset"></a>

コマンド `\rset` はコマンドのパラメータと変数を設定します。`\rset` には、インタラクティブモードとバッチモードの両方があります。*-x*、または引数 (*--<arg>* など) といった bash オプションとしてのオプションをサポートしません。

このコマンドは、以下のような変数を設定します。
+ ERRORLEVEL
+ HEADING および RTITLE
+ RFORMAT
+ MAXERROR
+ TITLEDASHES
+ WIDTH

以下の例は、HEADING を指定します。

```
\rset heading "Winter Sales Report"
```

その他の `\rset` 使用方法例については、[Amazon Redshift RSQL 変数](rsql-query-tool-variables.md)トピックに例がいくつか挙げられています。

## \$1RUN
<a name="rsql-query-tool-flow-control-run"></a>

 指定されたファイルに含まれる Amazon Redshift RSQL スクリプトを実行します。`\RUN`は`\i`コマンドを拡張して、ファイル内のヘッダー行をスキップするオプションを追加します。

ファイル名にカンマ、セミコロン、またはスペースが含まれている場合は、それを一重引用符で囲みます。また、ファイル名の後に続くテキストは、引用符で囲まれます。UNIX では、ファイル名の大文字と小文字が区別されます。Windows では、ファイル名の大文字と小文字は区別されません。

次の例は、コマンドからの出力例を示しています。

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as lineitem_cnt from lineitem;
select count(*) as customer_cnt from customer;
select count(*) as orders_cnt from orders;



(testcluster) user1@dev=# \run file=test.sql
 lineitem_cnt
--------------
      4307207
(1 row)

 customer_cnt
--------------
     37796166
(1 row)

 orders_cnt
------------
          0
(1 row)


(testcluster) user1@dev=# \run file=test.sql skip=2
2 records skipped in RUN file.
 orders_cnt
------------
          0
(1 row)
```

## \$1OS
<a name="rsql-query-tool-flow-control-os"></a>

 `\!` コマンドのエイリアスです。`\OS` は、パラメータとして渡されたオペレーションシステムコマンドを実行します。OS コマンドの実行後、コントロールは Amazon Redshift RSQL に戻されます。例えば、次のコマンドを実行して、現在のシステム日付時刻を表示し、RSQL ターミナルに戻ることができます。`\os date`。

```
(testcluster) user1@dev=# \os date
Tue Sep 7 20:47:54 UTC 2021
```

## \$1GOTO
<a name="rsql-query-tool-flow-control-goto"></a>

 Amazon Redshift RSQL 用の新しいコマンドです。`\GOTO`は、介在するコマンドをすべてスキップし、指定した`\LABEL`で処理を再開します。`\LABEL`は前方リファレンスでなければなりません。辞書的に`\GOTO`の前にある`\LABEL`にはジャンプできません。

出力例を次に示します。

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as cnt from lineitem \gset
select :cnt as cnt;
\if :cnt > 100
    \goto LABELB
\endif

\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'


(testcluster) user1@dev=# \i test.sql
   cnt
---------
 4307207
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1LABEL
<a name="rsql-query-tool-flow-control-label"></a>

 Amazon Redshift RSQL 用の新しいコマンドです。`\LABEL`は、`\GOTO`コマンドのターゲットとして、プログラムを実行するためのエントリーポイントを確立します。

次の例は、コマンドからの出力例を示しています。

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) from lineitem limit 5;
\goto LABELB
\remark "this step was skipped by goto label";
\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'



(testcluster) user1@dev=# \i testgoto.sql
  count
 4307193
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1IF (\$1ELSEIF, \$1ELSE, \$1ENDIF)
<a name="rsql-query-tool-flow-control-if"></a>

 `\IF`、およびそれと関連するコマンドは、入力スクリプトの一部を条件付きで実行します。PSQL`\if`(`\elif`、`\else`、`\endif`) コマンドの拡張機能です。`\IF`と`\ELSEIF`は、`AND`、`OR`、`NOT`の条件を含むブール表現をサポートします。

次の例は、コマンドからの出力例を示しています。

```
(testcluster) user1@dev=# \! cat test.sql
SELECT query FROM stv_inflight LIMIT 1 \gset
select :query as query;
\if :query > 1000000
    \remark 'Query id is greater than 1000000'
\elseif :query = 1000000
    \remark 'Query id is equal than 1000000'
\else
    \remark 'Query id is less than 1000000'
\endif


(testcluster) user1@dev=# \i test.sql 
 query
--------
 994803
(1 row)
 
Query id is less than 1000000
```

ブランチロジックで `ERRORCODE` を使用する。

```
\if :'ERRORCODE' = '00000'
    \remark 'The statement was executed without error'
\else
    \remark :LAST_ERROR_MESSAGE
\endif
```

`\IF` ブロックで `\GOTO` を使用し、コードの実行方法を制御します。

# Amazon Redshift RSQL 変数
<a name="rsql-query-tool-variables"></a>

 キーワードには、RSQL の変数として機能するものがあります。それぞれを特定の値に設定するか、値を再設定することができます。ほとんどは `\rset` で設定されており、これにはインタラクティブモードとバッチモードがあります。コマンドは、小文字または大文字で定義できます。

## ACTIVITYCOUNT
<a name="rsql-query-tool-activitycount"></a>

 最後に送信されたリクエストの影響を受けた行の数を示します。データ返すリクエストの場合、これはデータベースから RSQL に返された行の数です。この値は 0 または正の整数です。最大値は 18,446,744,073,709,551,615 です。

 特別に処理された変数 `ACTIVITYCOUNT` は変数 `ROW_COUNT` に似ています。ただし、`ROW_COUNT`はコマンド完了時に `SELECT`、`COPY`、または `UNLOAD` について影響を受けた行の数をクライアントアプリケーションに報告しませんが、`ACTIVITYCOUNT` は報告します。

activitycount\$101.sql:

```
select viewname, schemaname
from pg_views
where schemaname = 'not_existing_schema';
\if :ACTIVITYCOUNT = 0
\remark 'views do not exist'
\endif
```

コンソール出力:

```
viewname | schemaname
----------+------------
(0 rows)

views do not exist
```

## ERRORLEVEL
<a name="rsql-query-tool-describe-rset-errorlevel"></a>

エラーに重要度レベルを割り当てます。この重大度を使用して、アクションの方針を決定します。`ERRORLEVEL` コマンドが使用されていない場合、その値はデフォルトで `ON` になります。

errorlevel\$101.sql:

```
\rset errorlevel 42P01 severity 0

select * from tbl;

select 1 as col;

\echo exit
\quit
```

コンソール出力:

```
Errorlevel is on.
rsql: ERROR: relation "tbl" does not exist
(1 row)

col
1

exit
```

## HEADING および RTITLE
<a name="rsql-query-tool-describe-rset-heading-rtitle"></a>

ユーザーがレポートの上部に表示されるヘッダーを指定できるようにします。`RSET RTITLE` コマンドによって指定されたヘッダーには、クライアントコンピュータの現在のシステム日付が自動的に含められます。

rset\$1heading\$1rtitle\$102.rsql の内容:

```
\remark Starting...
\rset rtitle "Marketing Department||Confidential//Third Quarter//Chicago"
\rset width 70
\rset rformat on
select * from rsql_test.tbl_currency order by id limit 2;
\exit
\remark Finishing...
```

コンソール出力:

```
Starting...
Rtitle is set to: &DATE||Marketing Department||Confidential//Third Quarter//Chicago (Changes will take effect after RFORMAT is
switched ON)
Target width is 70.
Rformat is on.
09/11/20       Marketing       Department Confidential
                  Third Quarter
                     Chicago
id  | bankid  | name |      start_date
100 |       1 | USD | 2020-09-11 10:51:39.106905
110 |       1 | EUR | 2020-09-11 10:51:39.106905
(2 rows)

Press any key to continue . . .
```

## MAXERROR
<a name="rsql-query-tool-describe-rset-maxerror"></a>

最大エラー重大度レベルを指定します。このレベルを超えると、RSQL がジョブ処理を終了します。リターンコードは、RSQL が各ジョブまたはタスクの完了後にクライアントオペレーティングシステムに返す整数値です。リターンコードの値は、ジョブまたはタスクの完了ステータスを示します。指定された `maxerror` 値を超えるエラー重大度レベルを生成するステートメントがスクリプトに含まれている場合、RSQL はただちに終了します。従って、エラー重大度レベル 8 で RSQL を終了させるには、`RSET MAXERROR 7`を使用します。

maxerror\$101.sql の内容:

```
\rset maxerror 0
                        
select 1 as col;

\quit
```

コンソール出力:

```
Maxerror is default.
(1 row)

col
1
```

## RFORMAT
<a name="rsql-query-tool-describe-rset-heading-rformat"></a>

ユーザーがフォーマットコマンドの設定を適用するかどうかを指定できるようにします。

rset\$1rformat.rsql の内容:

```
\remark Starting...
\pset border 2
\pset format wrapped
\pset expanded on
\pset title 'Great Title'
select * from rsql_test.tbl_long where id = 500;
\rset rformat
select * from rsql_test.tbl_long where id = 500;
\rset rformat off
select * from rsql_test.tbl_long where id = 500;
\rset rformat on
select * from rsql_test.tbl_long where id = 500;
\exit
\remark Finishing...
```

コンソール出力:

```
Starting...
Border style is 2. (Changes will take effect after RFORMAT is switched ON)
Output format is wrapped. (Changes will take effect after RFORMAT is switched ON)
Expanded display is on. (Changes will take effect after RFORMAT is switched ON)
Title is "Great Title". (Changes will take effect after RFORMAT is switched ON)
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular
format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+

Rformat is off.
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+
Press any key to continue . . .
```

## ROW\$1COUNT
<a name="rsql-query-tool-describe-rset-row_count"></a>

前回のクエリの影響を受けたレコードの数を取得します。以下のコードフラグメントにあるように、これは結果をチェックするために使用されるのが一般的です。

```
SET result = ROW_COUNT;

IF result = 0
...
```

## TITLEDASHES
<a name="rsql-query-tool-describe-rset-heading-titledashes"></a>

このコントロールは、ユーザーが SQL ステートメントに返される列データの上にダッシュ文字のラインを出力するかどうかを指定できるようにします。

例:

```
\rset titledashes on
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
\rset titledashes off
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
```

コンソール出力:

```
dept_no      emp_no          salary
----------- ----------- --------------------
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00

dept_no     emp_no         salary
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00
```

## WIDTH
<a name="rsql-query-tool-describe-rset-heading-width"></a>

出力形式を折り返しに設定し、レポート内の各行のターゲット幅を指定します。パラメータを指定しない場合は、形式とターゲット幅両方の現在の設定を返します。

rset\$1width\$101.rsql の内容:

```
\echo Starting...
\rset width
\rset width 50
\rset width
\quit
\echo Finishing...
```

コンソール出力:

```
Starting...
Target width is 75.
Target width is 50.
Target width is 50.
Press any key to continue . . .
```

パラメータ指定時の例:

```
\echo Starting...
\rset rformat on
\pset format wrapped
select * from rsql_test.tbl_long where id = 500;
\rset width 50
select * from rsql_test.tbl_long where id = 500;
\quit
\echo Finishing...
```

コンソール出力:

```
Starting...
Rformat is on.
Output format is wrapped.
id  |                                          long_string
500 | In general, the higher the number the more borders and lines the ta.
    |.bles will have, but details depend on the particular format.
(1 row)

Target width is 50.
id  |                                          long_string
500 | In general, the higher the number the more.
    |. borders and lines the tables will have, b.
    |.ut details depend on the particular format.
    |..
(1 row)
Press any key to continue . . .
```

# Amazon Redshift RSQL エラーコード
<a name="rsql-query-tool-error-codes"></a>

成功メッセージ、警告、例外:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

データ例外:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

整合性制約違反:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

# Amazon Redshift RSQL 環境変数
<a name="rsql-query-tool-environment-variables"></a>

 Amazon Redshift RSQL では、環境変数を使用してデフォルトのパラメータ値を選択できます。

## RSPASSWORD
<a name="rsql-query-tool-rspassword"></a>

**重要**  
一部のオペレーティングシステムでは管理者以外のユーザーがプロセスの環境変数を参照できるため、セキュリティ上の理由からこの環境変数を使用することは推奨されません。

 Amazon Redshift RSQL が Amazon Redshift に接続する場合に使用するパスワードを設定します。この環境変数を設定するには、Amazon Redshift RSQL 1.0.4 以降がインストールされている必要があります。

 RSQL では、RSPASSWORD が設定されている場合、RSPASSWORD を優先します。RSPASSWORD が設定されておらず、DSN を使用して接続する場合、RSQL は DSN ファイルのパラメータからパスワードを取得します。最終的に、RSPASSWORD が設定されておらず、DSN も使用しない場合、RSQL によって接続が試行された後、パスワードプロンプトが表示されます。

RSPASSWORD の設定例を次に示します。

```
export RSPASSWORD=TestPassw0rd
```

# 認証プロファイルを使用して Amazon Redshift に接続する
<a name="connecting-with-authentication-profiles"></a>

Amazon Redshift への接続が多数存在する場合には、すべての接続の設定を管理することが困難な場合があります。多くの場合、各 JDBC 接続または ODBC 接続は、専用の設定オプションを使用しています。認証プロファイルを使用すると、接続オプションをまとめて保存しておくことができます。これにより、ユーザーは接続に使用するプロファイルを選択でき、個々のオプションの設定を管理する必要がなくなります。プロファイルは、さまざまなシナリオやユーザータイプに適用できます。

認証プロファイルが作成されていれば、ユーザーはすぐに使用できるプロファイルを接続文字列に追加できます。これにより、各ロールとユースケースに適した設定で、Amazon Redshift に接続することが可能になります。

Amazon Redshift API の詳細については、「[CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile)」を参照してください。

# 認証プロファイルの作成
<a name="connecting-with-authentication-profiles-creating"></a>

AWS CLI から `create-authentication-profile` コマンドを使用して、認証プロファイルを作成します。これには、既存の Amazon Redshift クラスターと既存のデータベースがあることが前提です。ユーザーの認証情報には、Amazon Redshift データベースに接続するアクセス許可と、認証プロファイルを取得する権限が必要です。設定オプションは JSON 文字列として指定するか、JSON 文字列を含むファイルの参照を通じて提供します。

```
create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>
```

 次の例では、`ExampleProfileName`という名前のプロファイルを作成します。ここでは、クラスター名やその他のオプション設定を定義するキーと値を、JSON 文字列として追加します。

```
create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}"
}
```

 このコマンドは、JSON で指定した設定でプロファイルを作成します。次の結果が表示され、プロファイルが作成されたことを示します。

 `{"AuthenticationProfileName": "ExampleProfileName", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ` 

## 認証プロファイルの作成に関する制限事項とクォータ
<a name="connecting-with-authentication-profiles-limitations"></a>

各カスタマーには、認証プロファイルのクォータが 10 個あります。

認証プロファイルでは、特定のエラーが発生することがあります。例えば、既存の名前で新しいプロファイルを作成した場合や、プロファイルのクォータを超えた場合などに発生します。詳細については、「[CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile)」を参照してください。

認証プロファイルストアには、JDBC、ODBC、および Python での接続文字列のための、特定のオプションキーと値を保存することはできません。
+ `AccessKeyID`
+ `access_key_id`
+ `SecretAccessKey`
+ `secret_access_key_id`
+ `PWD`
+ `Password`
+ `password`

JDBC または ODBC 接続文字列の場合、キーまたは値 `AuthProfile` をプロファイルストアに保存することはできません() Python 接続の場合、`auth_profile`を保存することはできません。

認証プロファイルは Amazon DynamoDB に保存され、AWSにより管理されます。

# 認証プロファイルを使用した接続
<a name="connecting-with-authentication-profiles-using"></a>

作成した後の認証プロファイルには、JDBC バージョン 2.0 の `AuthProfile` 用の接続オプションとして、プロファイル名を含めることができます。この接続オプションは、保存された設定を取得するために使用します。

```
jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>
```

JDBC URL 文字列の例を次に示します。

```
jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

JDBC URL の中で、`AccessKeyID`および `SecretAccessKey` の両方を認証プロファイル名とともに指定します。

また、設定オプションをセミコロン区切り文字で区切ることもできます。例えば、ログ記録のオプションが含まれている次の例のようになります。

```
jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

**注記**  
 認証プロファイルには機密情報を含めないでください。例えば、`AccessKeyID` または `SecretAccessKey` 値は、認証プロファイルには保存しないようにします。認証プロファイルストアには、シークレットキーの格納を禁止するルールがあります。機密情報に関連付けられたキーと値を格納しようとすると、エラーが発生します。

# 認証プロファイルの取得
<a name="connecting-with-authentication-profiles-getting"></a>

既存の認証プロファイルを一覧表示するには、次のコマンドを実行します。

```
describe-authentication-profiles --authentication-profile-name <value: String>
```

2 つのプロファイルが取得された場合の例を以下に示します。プロファイル名を指定しない場合、すべてのプロファイルが返されます。

`{ "AuthenticationProfiles": [ { "AuthenticationProfileName": "testProfile1", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }, { "AuthenticationProfileName": "testProfile2", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ] } `

# Amazon Redshift での接続の問題のトラブルシューティング
<a name="troubleshooting-connections"></a>

 SQL クライアントツールからクラスターへの接続で問題が発生した場合は、問題を絞り込むために確認できるいくつかの点があります。SSL またはサーバー証明書を使用している場合、接続の問題をトラブルシューティングしているときにまずこの複雑さを排除します。その後、解決策を見つけたらもう一度これを追加します。詳細については、「[接続のセキュリティオプションを設定する](connecting-ssl-support.md)」を参照してください。

アプリケーションに影響を与える可能性のある Amazon Redshift 機能の動作の変更については、「[Amazon Redshift の動作の変更](behavior-changes.md)」を参照してください。

**重要**  
Amazon Redshift は、SSL 証明書の管理方法を変更しました。SSL 接続で問題が発生した場合は、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「[SSL 接続用 ACM 証明書への移行](connecting-transitioning-to-acm-certs.md)」を参照してください。

 次のセクションに、接続の問題のサンプルエラーメッセージと考えられる解決策を示します。SQL クライアントツールによってエラーメッセージが異なるため、このリストは完全ではありませんが、問題のトラブルシューティングに適した開始点です。

## Amazon EC2 以外からの接続と、ファイアウォールのタイムアウトの問題
<a name="connecting-firewall-guidance"></a>



 COPY コマンドなどの長いクエリを実行すると、データベースへのクライアント接続がハングまたはタイムアウトしているように見えます。この場合、Amazon Redshift コンソールにはクエリが完了したと表示されますが、クライアントツール自体はまだクエリを実行しているように見えることがあります。接続がいつ停止したかに応じて、クエリの結果がないか、不完全になる可能性があります。

### 考えられる解決策
<a name="connecting-firewall-guidance.Solutions"></a>

この問題は、Amazon EC2 インスタンス以外のマシンから Amazon Redshift に接続するときに発生します。この場合、アイドル状態の接続は、一定期間非アクティブになった後、ファイアウォールなどの中間ネットワークコンポーネントによって終了します。このような動作は、Virtual Private Network (VPN) やローカルネットワークからログインした場合によく発生します。

このようなタイムアウトを回避するために以下の変更を行うことを推奨します。
+ クライアントシステムで TCP/IP タイムアウト値を大きく設定します。この変更は、クラスターへの接続に使用しているコンピュータで行います。クライアントやネットワークに対してタイムアウト期間を調整する必要があります。詳細については、「[TCP/IP タイムアウト設定を変更する](#connecting-firewall-guidance.change-tcpip-settings)」を参照してください。
+ 必要に応じて、DSN レベルでキープアライブの動作を設定します。詳細については、「[DSN のタイムアウト設定を変更する](#connecting-firewall-guidance.change-dsn-settings)」を参照してください。

### TCP/IP タイムアウト設定を変更する
<a name="connecting-firewall-guidance.change-tcpip-settings"></a>

TCP/IP タイムアウト設定を変更するには、クラスターへの接続に使用するオペレーティングシステムに応じて、タイムアウト設定を設定します。
+ Linux — クライアントが Linux で動作している場合は、次のコマンドをルートユーザーとして実行し、現在のセッションのタイムアウト設定を変更します。

  ```
  /sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
  ```

  設定を保持するには、次の値を使ってファイル `/etc/sysctl.conf` を作成または変更し、システムを再起動します。

  ```
  net.ipv4.tcp_keepalive_time=200
  net.ipv4.tcp_keepalive_intvl=200
  net.ipv4.tcp_keepalive_probes=5
  ```
+ Windows — クライアントが Windows で動作している場合、HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Services\$1Tcpip\$1Parameters\$1 にある次のレジストリ設定の値を編集します。
  + KeepAliveTime: 30000
  + KeepAliveInterval: 1000
  + TcpMaxDataRetransmissions: 10

  これらの設定は DWORD のデータの種類を使用します。これらがレジストリパスに存在しない場合、設定を作成し、これらの推奨値を指定できます。Windows レジストリの編集の詳細については、Windows のドキュメントを参照してください。

  これらの値を設定したら、コンピュータを再起動して変更を有効にします。

 
+ Mac — クライアントが Mac で動作している場合は、次のコマンドを実行して現在のセッションのタイムアウト設定を変更します。

  ```
  sudo sysctl net.inet.tcp.keepintvl=200000
  sudo sysctl net.inet.tcp.keepidle=200000
  sudo sysctl net.inet.tcp.keepinit=200000
  sudo sysctl net.inet.tcp.always_keepalive=1
  ```

  設定を保持するには、次の値を使ってファイル `/etc/sysctl.conf` を作成または変更します。

  ```
  net.inet.tcp.keepidle=200000
  net.inet.tcp.keepintvl=200000
  net.inet.tcp.keepinit=200000
  net.inet.tcp.always_keepalive=1
  ```

  コンピュータを再起動し、次のコマンドを実行して値が設定されていることを確認します。

  ```
  sysctl net.inet.tcp.keepidle
  sysctl net.inet.tcp.keepintvl
  sysctl net.inet.tcp.keepinit
  sysctl net.inet.tcp.always_keepalive
  ```

### DSN のタイムアウト設定を変更する
<a name="connecting-firewall-guidance.change-dsn-settings"></a>

必要に応じて、DSN レベルでキープアライブの動作を設定できます。これを行うには、odbc.ini ファイルで以下のパラメータを追加または変更します。

**KeepAlivesCount**  
接続が切断されていると見なされる前に失うことが許容される TCP キープアライブパケットの数。

**KeepAlivesIdle**  
ドライバーが TCP キープアライブパケットを送信する前にアイドル状態である秒数。

**KeepAlivesInterval**  
TCP キープアライブを再送信する間隔の秒数。

これらのパラメータがない場合、または値が 0 である場合、システムは指定されている TCP/IP キープアライブパラメータを使用して DSN キープアライブの動作を決定します。Windows では、`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\`のレジストリに TCP/IP パラメータ があります。Linux および macOS では、TCP/IP のパラメータは sysctl.conf ファイルにあります。

## 接続が拒否または失敗する
<a name="connecting-refusal-failure-issues"></a>

接続が拒否された場合や失敗した場合、次のいずれかと同様のエラーが表示されることがあります。
+ "Failed to establish a connection to *<endpoint>*."
+ "Could not connect to server: Connection timed out。Is the server running on host *'<endpoint>'* and accepting TCP/IP connections on port *'<port>'*?"
+ "Connection refused。Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections."

### 考えられる解決策
<a name="connecting-refusal-failure-issues.Solutions"></a>

通常、接続の確立に失敗したことを示すエラーメッセージが表示された場合は、クラスターにアクセスするためのアクセス許可の問題またはクラスターへのトラフィックネットワークの問題を示しています。

クラスターが属するネットワークの外部にあるクライアントツールからクラスターに接続するには、クラスターのセキュリティグループにインバウンドルールを追加します。ルールの設定は、Amazon Redshift クラスターを仮想プライベートクラウド (VPC) で作成しているかどうかによって異なります。
+ Amazon VPC に基づく仮想プライベートクラウド (VPC) で Amazon Redshift クラスターを作成した場合は、Amazon VPC で クライアント CIDR/IP アドレスを指定するインバウンドルールを VPC セキュリティグループに追加します。クラスターの VPC セキュリティグループの設定とパブリックにアクセス可能なオプションの詳細については、「[VPC での Redshift リソース](managing-clusters-vpc.md)」を参照してください。
+  VPC の外で Amazon Redshift クラスターを作成した場合は、Amazon Redshift のクラスターセキュリティグループにクライアント CIDR/IP アドレスを追加します。クラスターセキュリティグループの設定の詳細については、「[Amazon Redshift セキュリティグループ](security-network-isolation.md#working-with-security-groups)」を参照してください。

Amazon EC2 インスタンスで実行するクライアントツールからクラスターに接続する場合も、インバウンドルールを追加します。この場合は、クラスターセキュリティグループにルールを追加します。ルールでは、クライアントツールの Amazon EC2 インスタンスに関連付けられた Amazon EC2 セキュリティグループを指定する必要があります。

 場合によっては、ファイアウォールなど、クライアントとサーバーの間にレイヤーが存在することがあります。このような場合は、ファイアウォールがクラスター用に設定したポート経由のインバウンド接続を受け入れることを確認します。

## クライアントおよびドライバーに互換性がない
<a name="connecting-architecture-mismatch"></a>

 クライアントとドライバーに互換性がない場合、「指定された DSN にドライバーとアプリケーション間のアーキテクチャの不一致が含まれている」というエラーが表示されることがあります。

### 考えられる解決策
<a name="connecting-architecture-mismatch.Solutions"></a>

 接続を試みてアーキテクチャの不一致に関するエラーが発生する場合、クライアントツールとドライバーに互換性がないことを意味します。これは、システムのアーキテクチャが一致しないために発生します。例えば、32 ビットクライアントツールがあるが、ドライバーの 64 ビットバージョンをインストールした場合にこれが発生することがあります。64 ビットクライアントツールが 32 ビットドライバーを使用できることはありますが、64 ビットドライバーで 32 ビットアプリケーションを使用することはできません。ドライバーとクライアントツールが同じバージョンのシステムアーキテクチャを使用していることを確認します。

## クエリがハングして、クラスターに達しない場合がある
<a name="connecting-drop-issues"></a>

クエリが完了しないという問題に直面します。クエリは実行されますが、SQL クライアント ツールでハングします。クエリは、システムテーブルや Amazon Redshift コンソールなどでクラスターに表示されない場合があります。

### 考えられる解決策
<a name="connecting-drop-issues.Solutions"></a>

 この問題は、パケットドロップが原因で発生する可能性があります。この場合、2 つのインターネットプロトコル (IP) ホスト間のネットワークパスの最大伝送ユニット (MTU) サイズに差があります。MTU サイズにより、ネットワーク接続を介して 1 つのイーサネットフレームで転送できるパケットの最大サイズ (バイト単位) が決まります。AWS では、一部の Amazon EC2 インスタンスタイプが 1500 MTU (Ethernet v2 フレーム) をサポートしており、その他のインスタンスタイプは 9001 MTU (TCP/IP ジャンボフレーム) をサポートしています。

 MTU サイズの違いで発生する問題を防ぐために、次のいずれかを行うことをお勧めします: 
+ ご使用のクラスターが EC2-VPC プラットフォームを使用している場合、`Destination Unreachable` を返すインバウンドカスタム Internet Control Message Protocol (ICMP) ルールによって Amazon VPC セキュリティグループを設定します。このルールは、送信側ホストがネットワークパスに沿って最低の MTU サイズを使用するように指示します。この方法の詳細については、「[セキュリティグループを設定して ICMP の「Destination Unreachable」を許可する](#configure-custom-icmp)」を参照してください。
+ ご使用のクラスターが EC2-Classic プラットフォームを使用しているか、ICMP インバウンドルールを許可できない場合、TCP/IP ジャンボフレームを無効にして、Ethernet v2 フレームを使用します。この方法の詳細については、「[インスタンスの MTU の設定](#set-mtu)」を参照してください。

### セキュリティグループを設定して ICMP の「Destination Unreachable」を許可する
<a name="configure-custom-icmp"></a>

 2 つのホスト間のネットワークで MTU サイズに違いがある場合、ネットワーク設定がパス MTU 検出 (PMTUD) をブロックしないことをまず確認します。PMTUD は、受信側ホストが次の ICMP メッセージで送信側ホストに応答するのを可能にします: `Destination Unreachable: fragmentation needed and DF set (ICMP Type 3, Code 4)` このメッセージは、送信側ホストがネットワークパスに沿って最低の MTU サイズを使用してリクエストを再送信するように指示します。このネゴシエーションがないと、リクエストが大きすぎて受信側ホストが受け取れないため、パケットドロップが発生する可能性があります。この ICMP メッセージの詳細については、*インターネット技術標準化委員会 (IETF)* のウェブサイトから [RFC792](http://tools.ietf.org/html/rfc792) を参照してください。

 この ICMP インバウンドルールを Amazon VPC セキュリティグループのために明示的に設定しない場合、PMTUD はブロックされます。AWS では、セキュリティグループは、インバウンドおよびアウトバウンドトラフィックのルールをインスタンスに指定する仮想ファイアウォールです。Amazon Redshift クラスターセキュリティグループの詳細については、[Amazon Redshift セキュリティグループ](security-network-isolation.md#working-with-security-groups)を参照してください。EC2-VPC プラットフォームを使用するクラスターでは、Amazon Redshift はクラスターへのトラフィックを許可または拒否するために VPC セキュリティグループを使用します。デフォルトでは、セキュリティグループはロックされており、すべてのインバウンドトラフィックを拒否します。EC2-Classic インスタンスまたは EC2-VPC インスタンスのインバウンドルールとアウトバウンドルールを設定する方法については、「Amazon EC2 ユーザーガイド」の「[EC2-Classic と VPC 内のインスタンスの違い](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-classic-platform.html#ec2_classic_platform)」を参照してください。**

 VPC セキュリティグループにルールを追加する方法については、「[VPC セキュリティグループ](managing-vpc-security-groups.md)」を参照してください。このルールに必要な特定の PMTUD 設定の詳細については、「*Amazon EC2 ユーザーガイド*」の「[パス MTU 検出](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery)」を参照してください。

### インスタンスの MTU の設定
<a name="set-mtu"></a>

クラスターで EC2-Classic プラットフォームが使用されている場合や、インバウンドトラフィックにカスタム ICMP ルールを許可できない場合があります。このような場合、Amazon Redshift クラスターに接続する EC2 インスタンスのネットワークインターフェイス (NIC) で MTU を 1500 に調整することをお勧めします。この調整によって TCP/IP ジャンボフレームが無効になるため、同じパケットサイズが一貫して接続に使用されるようになります。ただし、このオプションでは、Amazon Redshift への接続だけでなく、インスタンス全体の最大ネットワークスループットを減らすことに注意してください。詳細については、次の手順を参照してください。<a name="set-mtu-win-os"></a>

**Microsoft Windows のオペレーティング システムで MTU を設定する**

クライアントが Microsoft Windows オペレーティングシステムで動作している場合、`netsh`コマンドを使用してイーサネットアダプターの MTU 値を確認し、設定できます。

1. 現在の MTU 値を調べるには、次のコマンドを実行します。

   ```
   netsh interface ipv4 show subinterfaces
   ```

1.  出力で `MTU` アダプタの `Ethernet` の値を確認します。

1. 値が `1500` ではない場合、次のコマンドを実行して設定します。

   ```
   netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent
   ```

   この値を設定したら、コンピュータを再起動して変更を有効にします。<a name="set-mtu-linux-os"></a>

**Linux オペレーティング システムで MTU を設定する**

 クライアントが Linux オペレーティング システムで動作している場合、`ip`コマンドを使用して MTU 値を確認し、設定できます。

1. 現在の MTU 値を調べるには、次のコマンドを実行します。

   ```
   $ ip link show eth0
   ```

1. 出力で次の `mtu` の値を確認します。

1. 値が `1500` ではない場合、次のコマンドを実行して設定します。

   ```
   $ sudo ip link set dev eth0 mtu 1500
   ```<a name="set-mtu-mac-os"></a>

**Mac オペレーティング システムで MTU を設定する**
+ `How to change the MTU for troubleshooting purposes` については macOS サポートサイトの指示に従ってください。詳細については、[サポートサイト](https://support.apple.com)を検索してください。

## JDBC フェッチサイズパラメータの設定
<a name="jdbc_fetch_size"></a>

デフォルトでは、Redshift JDBC ドライバーはリングバッファを使用してメモリを効率的に管理し、メモリ不足エラーを防止します。フェッチサイズパラメータは、リングバッファが明示的に無効になっている場合にのみ適用できます。詳細については、「[link](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-enablefetchringbuffer-option)」を参照してください。この設定では、各バッチで取得される行数を制御するようにフェッチサイズを設定する必要があります。

次の場合は、フェッチサイズパラメータを使用します。
+ 行ベースのバッチ処理をきめ細かく制御する必要がある
+ 従来のフェッチサイズ動作を必要とするレガシーアプリケーションを使用している

リングバッファが無効な場合、デフォルトでは、JDBC ドライバーはクエリに対して一度にすべての結果を収集します。大きな結果セットを返すクエリは、過剰なメモリを消費する可能性があります。一度にすべてではなくバッチで結果セットを取得するには、アプリケーションで JDBC フェッチサイズパラメータを設定します。

**注記**  
フェッチサイズは ODBC ではサポートされません。

最適なパフォーマンスのためには、メモリ不足エラーが発生しない最大の値にフェッチサイズを設定します。フェッチサイズの値を低く設定すると、サーバートリップが増え、それにより実行時間が長くなります。サーバーは、クライアントが結果セット全体を取得するまで、WLM クエリスロットおよび関連メモリを含むリソースを予約します。そうでない場合、クエリはキャンセルされます。フェッチサイズを適切に調整すると、それらのリソースはより迅速に解放され、他のクエリに利用できるようになります。

**注記**  
大きなデータセットを抽出する必要がある場合は、[UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) ステートメントを使用してデータを Amazon S3 に転送することをお勧めします。UNLOAD を使用するときは、コンピューティングノードは並行してデータの転送を高速化します。

JDBC フェッチサイズパラメータの詳細については、PostgreSQL のドキュメントで「[Getting results based on a cursor](https://jdbc.postgresql.org/documentation/query/#getting-results-based-on-a-cursor)」を参照してください。