

 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>

JDBC(Java Database Connectivity), Python 및 ODBC(Open Database Connectivity) 연결을 통해 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에 연결하려면 클러스터의 Virtual Private Cloud(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 연결을 설정하는 방법에 대해 설명합니다. SSL(Secure Sockets Layer) 및 서버 인증서를 사용하여 클라이언트와 서버 간의 통신을 암호화하는 방법에 대해서도 설명합니다.

## Amazon Redshift용 JDBC, Python 및 ODBC 드라이버
<a name="connecting-drivers"></a>

클러스터 데이터를 사용하려면 클라이언트 컴퓨터 또는 인스턴스에서 연결하기 위한 JDBC, Python 또는 ODBC 드라이버가 있어야 합니다. JDBC, Python 또는 ODBC 데이터 액세스 API 작업을 사용할 수 있는 애플리케이션을 코딩하거나, 혹은 JDBC, Python 또는 ODBC를 지원하는 SQL 클라이언트 도구를 사용하세요.

Amazon Redshift를 통해 JDBC, Python 및 ODBC 드라이버를 다운로드할 수 있습니다. 이 드라이버는 지원에서 지원됩니다. PostgreSQL 드라이버는 테스트되지 않았으며 Amazon Redshift 팀에서 지원하지 않습니다. Amazon Redshift 클러스터에 연결할 때 Amazon Redshift 전용 드라이버를 사용하세요. Amazon Redshift 드라이버는 다음과 같은 이점이 있습니다.
+ IAM, SSO 및 페더레이션 인증 지원.
+ 새로운 Amazon Redshift 데이터 유형 지원.
+ 인증 프로파일 지원.
+ Amazon Redshift 개선 사항과 함께 향상된 성능.

 JDBC 및 ODBC 드라이버를 다운로드하여 클러스터 연결을 구성하는 방법에 대한 자세한 내용은 [Amazon Redshift용 JDBC 드라이버 버전 2.x 연결 구성](jdbc20-install.md), [Amazon Redshift Python 커넥터](python-redshift-driver.md) 및 [Amazon Redshift용 ODBC 드라이버 버전 2.x 연결 구성](odbc20-install.md) 섹션을 참조하세요.

IAM 역할에 대한 모범 사례를 비롯한 IAM ID 관리에 대한 자세한 내용은 [Amazon Redshift의 Identity and Access Management](redshift-iam-authentication-access-control.md) 섹션을 참조하세요.

# 클러스터 연결 문자열 찾기
<a name="connecting-connection-string"></a>

SQL 클라이언트 도구를 사용하여 클러스터에 연결하려면 클러스터 연결 문자열이 있어야 합니다. Amazon Redshift 콘솔의 클러스터 세부 정보 페이지에서 클러스터 연결 문자열을 확인할 수 있습니다.

**클러스터의 연결 문자열을 찾으려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터 이름을 선택하여 세부 정보를 엽니다.

1. **JDBC URL** 및 **ODBC URL** 연결 문자열은 **일반 정보(General information)** 섹션에서 추가 세부 정보와 함께 사용할 수 있습니다. 각 문자열은 클러스터가 실행되는 AWS 리전을 기반으로 합니다. 해당 연결 문자열 옆에 있는 아이콘을 클릭하여 복사합니다.

클러스터 엔드포인트에 연결하려면 [DescribeClusters API 요청](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html)의 클러스터 엔드포인트 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 KeepAlive를 사용하도록 구성됩니다. 연결 URL에서 관련 속성을 설정하여 드라이버가 KeepAlive 패킷 전송을 시작하는 시기를 지정하거나 기능을 해제할 수 있습니다. 연결 URL의 구문에 대한 자세한 내용은 [연결 URL 구축](jdbc20-build-connection-url.md) 섹션을 참조하세요.


| 속성 | 설명 | 
| --- | --- | 
|  `TCPKeepAlive`  |  TCP KeepAlive를 해제하려면 이 속성을 `FALSE`로 설정합니다.  | 

**Topics**
+ [Amazon Redshift JDBC 드라이버, 버전 2.1 다운로드](jdbc20-download-driver.md)
+ [Amazon Redshift JDBC 드라이버, 버전 2.2 설치](jdbc20-install-driver.md)
+ [JDBC URL 가져오기](jdbc20-obtain-url.md)
+ [연결 URL 구축](jdbc20-build-connection-url.md)
+ [JDBC와 Apache Maven의 연결 구성](configure-jdbc20-connection-with-maven.md)
+ [인증 및 SSL 구성](jdbc20-configure-authentication-ssl.md)
+ [로깅 구성](jdbc20-configuring-logging.md)
+ [데이터 형식 변환](jdbc20-data-type-mapping.md)
+ [준비된 명령문 지원 사용](jdbc20-prepared-statement-support.md)
+ [JDBC 드라이버 버전 2.2과 1.x의 차이점](jdbc20-jdbc10-driver-differences.md)
+ [JDBC 드라이버 버전 2.x용 초기화(.ini) 파일 생성](jdbc20-ini-file.md)
+ [JDBC 드라이버 버전 2.x 구성 옵션](jdbc20-configuration-options.md)
+ [JDBC 드라이버 버전 2.x의 이전 버전](jdbc20-previous-driver-version-20.md)

# Amazon Redshift JDBC 드라이버, 버전 2.1 다운로드
<a name="jdbc20-download-driver"></a>

**참고**  
Amazon Redshift JDBC 2.x 드라이버는 스레드 세이프로 설계되지 않았습니다. 두 개 이상의 스레드가 동시에 동일한 연결을 사용하려고 하면 교착 상태, 오류, 잘못된 결과 또는 기타 예상치 못한 동작이 발생할 수 있습니다.  
다중 스레드 애플리케이션이 있는 경우 동시 액세스를 방지하기 위해 드라이버에 대한 액세스를 동기화하는 것이 좋습니다.

Amazon Redshift는 JDBC 4.2 API와 호환되는 도구용 드라이버를 제공합니다. 이 드라이버의 클래스 이름은 `com.amazon.redshift.Driver`입니다.

JDBC 드라이버를 설치하고 JDBC 드라이버 라이브러리를 참조하며 드라이버 클래스를 등록하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요.

Amazon Redshift JDBC 드라이버 버전 2.x를 사용하는 각 컴퓨터에 대해 Java 런타임 환경(JRE) 8.0이 설치되어 있는지 확인합니다.

데이터베이스 인증을 위해 Amazon Redshift JDBC 드라이버를 사용하는 경우 Java 클래스 경로에 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 드라이버 종속 라이브러리 파일이 포함되어 있습니다. JDBC 드라이버와 동일한 위치에 종속 jar 파일의 압축을 풉니다. JDBC 드라이버만 CLASSPATH에 있어야 합니다.

  전체 AWS SDK for Java 1.x는 이 ZIP 파일에 포함되어 있지 않습니다. 그러나 AWS Identity and Access Management(IAM) 데이터베이스 인증에 필요한 AWS SDK for Java 1.x 드라이버 종속 라이브러리는 포함되어 있습니다.

  IAM 데이터베이스 인증에 필요한 AWS SDK가 있는 이 Amazon Redshift JDBC 드라이버를 사용합니다.

  전체 AWS SDK for Java 1.x를 설치하려면 *AWS SDK for Java Developer Guide*의 [AWS SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html)를 참조하세요.
+ [JDBC 4.2 호환 드라이버 버전 2.x(AWS SDK 제외)](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.jar) 

JDBC 드라이버 버전 2.x 소프트웨어 라이선스를 검토하고 로그 파일을 변경합니다.
+ [JDBC 드라이버 버전 2.x 라이선스](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/LICENSE) 
+ [JDBC 드라이버 버전 2.x 변경 로그](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)

JDBC 드라이버 버전 1.2.27.1051 이상은 Amazon Redshift 저장 프로시저를 지원합니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [Amazon Redshift에서 저장 프로시저 생성](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html) 섹션을 참조하세요.

# Amazon Redshift JDBC 드라이버, 버전 2.2 설치
<a name="jdbc20-install-driver"></a>

Amazon Redshift JDBC 4.2 호환 드라이버 버전 2.x와 AWS SDK용 드라이버 종속 라이브러리를 설치하려면 ZIP 아카이브에서 원하는 디렉터리로 파일을 추출합니다.

Amazon Redshift JDBC 4.2 호환 드라이버 버전 2.x(AWS SDK 제외)를 설치하려면 원하는 디렉터리에 JAR 파일을 복사합니다.

Amazon Redshift JDBC 드라이버를 사용하여 Amazon Redshift 데이터 스토어에 액세스하려면 다음 설명에 따라 구성을 수행해야 합니다.

**Topics**
+ [JDBC 드라이버 라이브러리 참조](jdbc20-driver-libraries.md)
+ [드라이버 클래스 등록](jdbc20-register-driver-class.md)

# JDBC 드라이버 라이브러리 참조
<a name="jdbc20-driver-libraries"></a>

데이터에 연결하는 데 사용하는 JDBC 애플리케이션이나 Java 코드는 드라이버 JAR 파일에 액세스해야 합니다. ZIP 아카이브에서 추출한 모든 JAR 파일을 애플리케이션 또는 코드에 지정합니다.

## JDBC 애플리케이션에서 드라이버 사용
<a name="jdbc20-use-driver-jdbc-app"></a>

JDBC 애플리케이션은 일반적으로 드라이버 라이브러리 파일 목록 추가를 위한 구성 옵션 집합을 제공합니다. 제공된 옵션을 사용하여 ZIP 아카이브의 모든 JAR 파일을 애플리케이션의 드라이버 구성의 일부로 포함합니다. 자세한 내용은 JDBC 애플리케이션 설명서를 참조하세요.

## Java 코드에서 드라이버 사용
<a name="jdbc20-use-driver-java-code"></a>

클래스 경로에 모든 드라이버 라이브러리 파일을 포함해야 합니다. 클래스 경로는 Java Runtime Environment가 클래스와 기타 리소스 파일을 검색하는 경로입니다. 운영 체제의 클래스 경로를 설정하려면 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/ko_kr/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]는 서버가 클라이언트 요청을 수신 대기하는 데 사용하는 TCP(Transmission Control Protocol) 포트의 번호입니다.

```
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)을 참조하세요.

# JDBC와 Apache Maven의 연결 구성
<a name="configure-jdbc20-connection-with-maven"></a>

Apache Maven은 소프트웨어 프로젝트 관리 및 이해 도구입니다. AWS SDK for Java는 Apache Maven 프로젝트를 지원합니다. 자세한 내용은 *AWS SDK for Java Developer Guide*의 [Using the SDK with Apache Maven](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html) 섹션을 참조하세요.

Apache Maven을 사용하는 경우 Amazon Redshift JDBC 드라이버를 사용하여 Amazon Redshift 클러스터에 연결하는 프로젝트를 구성하고 구축할 수 있습니다. 이를 위해 JDBC 드라이버를 프로젝트의 `pom.xml` 파일에 종속성으로 추가하세요. Maven을 사용해 프로젝트를 빌드하고 JDBC 연결을 사용하려면 다음 섹션에서 설명하는 단계를 따르세요.

**JDBC 드라이버를 Maven 종속성으로 구성하려면**

1. `pom.xml` 파일의 리포지토리 섹션에 Amazon 리포지토리 또는 Maven Central 리포지토리를 추가합니다.
**참고**  
다음 코드 예제의 URL은 브라우저에서 사용하면 오류를 반환합니다. 이 URL은 Maven 프로젝트의 컨텍스트에만 사용하세요.

   보안 소켓 계층(SSL)을 사용하여 연결하려면 다음 리포지토리를 `pom.xml` 파일에 추가합니다.

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

   Maven Central 리포지토리의 경우 `pom.xml` 파일에 다음을 추가합니다.

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

1. `pom.xml` 파일의 종속성 섹션에서 사용할 드라이버 버전을 선언합니다.

   Amazon Redshift는 JDBC 4.2 API와 호환되는 도구용 드라이버를 제공합니다. 이러한 드라이버가 지원하는 기능에 대한 자세한 내용은 [Amazon Redshift JDBC 드라이버, 버전 2.1 다운로드](jdbc20-download-driver.md) 섹션을 참조하세요.

   다음 예에서 `driver-version`을 사용 중인 드라이버 버전(예: `2.1.0.1`)으로 바꿉니다. JDBC 4.2 호환 드라이버의 경우 다음을 사용합니다.

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

   이 드라이버의 클래스 이름은 `com.amazon.redshift.Driver`입니다.

IAM 데이터베이스 인증을 사용할 때는 Amazon Redshift Maven 드라이버에 다음과 같은 선택적 종속성이 필요합니다.

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

Amazon Redshift JDBC 드라이버를 최신 버전으로 업그레이드하거나 변경하려면 먼저 종속 항목의 버전 섹션을 최신 버전의 드라이버로 수정합니다. 그런 다음 다음과 같이 Maven Clean Plugin으로 프로젝트를 정리하세요.

```
mvn clean
```

# 인증 및 SSL 구성
<a name="jdbc20-configure-authentication-ssl"></a>

무단 액세스로부터 데이터를 보호하기 위해 Amazon Redshift 데이터 스토어는 사용자 자격 증명을 사용하여 모든 연결을 인증할 것을 요구합니다. 또한 일부 데이터 스토어는 단방향 인증 여부에 관계없이 보안 소켓 계층(SSL) 프로토콜을 통한 연결을 요구합니다.

Amazon Redshift JDBC 드라이버 버전 2.x는 이러한 인증 프로토콜을 완벽하게 지원합니다.

드라이버에서 지원하는 SSL 버전은 사용 중인 JVM 버전에 따라 다릅니다. 각 Java 버전에서 지원하는 SSL 버전에 대한 자세한 내용은 Java Platform Group Product Management Blog의 [Diagnosing TLS, SSL, and HTTPS](https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https)를 참조하세요.

연결에 사용되는 SSL 버전은 드라이버와 서버 모두에서 지원하는 가장 높은 버전으로 연결 시 결정됩니다.

연결하려는 Amazon Redshift 서버의 보안 요구 사항에 따라 연결을 인증하도록 Redshift JDBC 드라이버 버전 2.x를 구성합니다.

연결을 인증하려면 항상 Redshift 사용자 이름과 암호를 입력해야 합니다. 서버에서 SSL 활성화 및 필요 여부에 따라 SSL을 통해 연결하도록 드라이버를 구성해야 할 수도 있습니다. 또는 단방향 SSL 인증을 사용하여 클라이언트(드라이버 자체)가 서버의 ID를 확인하도록 할 수 있습니다.

연결 URL에서 드라이버에 구성 정보를 제공합니다. 연결 URL의 구문에 대한 자세한 내용은 [연결 URL 구축](jdbc20-build-connection-url.md) 섹션을 참조하세요.

*SSL*은 전송 계층 보안과 보안 소켓 계층(TLS/SSL)을 나타냅니다. 이 드라이버는 TLS/SSL의 업계 표준 버전을 지원합니다.

## IAM 인증 구성
<a name="jdbc20-configure-iam-authentication"></a>

IAM 인증을 사용하여 Amazon Redshift 서버에 연결하는 경우 다음 속성을 데이터 원본 연결 문자열의 일부로 설정합니다.

 IAM 인증에 대한 자세한 내용은 [Amazon Redshift의 Identity and Access Management](redshift-iam-authentication-access-control.md) 섹션을 참조하세요.

IAM 인증을 사용하려면 다음 연결 문자열 형식 중 하나를 사용합니다.


| 연결 문자열 | 설명 | 
| --- | --- | 
|  `jdbc:redshift:iam:// [host]:[port]/[db]`  |  일반 연결 문자열입니다. 드라이버는 호스트에서 ClusterID와 리전을 유추합니다.  | 
|  `jdbc:redshift:iam:// [cluster-id]: [region]/[db]`  |  드라이버는 주어진 ClusterID 및 리전에 따라 호스트 정보를 검색합니다.  | 
|  `jdbc:redshift:iam:// [host]/[db]`  |  드라이버는 기본값이 포트 5439이며 호스트에서 ClusterID와 리전을 유추합니다. 클러스터를 생성, 수정 또는 마이그레이션할 때 선택한 포트에 따라 선택한 포트에 대한 액세스를 허용합니다.  | 

## 프로파일 지정
<a name="jdbc20-aws-credentials-profiles"></a>

IAM 인증을 사용하는 경우 프로파일 이름 아래에 필수 또는 선택적 연결 속성을 추가로 지정할 수 있습니다. 이를 통해 연결 문자열에 특정 정보를 직접 넣는 것을 피할 수 있습니다. Profile 속성을 사용하여 연결 문자열에 프로파일 이름을 지정합니다.

AWS 자격 증명 파일에 프로파일을 추가할 수 있습니다. 이 파일의 기본 위치는 `~/.aws/credentials`입니다.

환경 변수 `AWS_CREDENTIAL_PROFILES_FILE`에 경로를 설정하여 기본값을 변경할 수 있습니다.

 프로파일에 대한 자세한 내용은 *AWS SDK for Java*의 [AWS 자격 증명 작업](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) 섹션을 참조하세요.

## 인스턴스 프로파일 자격 증명 사용
<a name="jdbc20-instance-profile-credentials"></a>

IAM 역할과 연결된 Amazon EC2 인스턴스에서 애플리케이션을 실행하는 경우 인스턴스 프로파일 자격 증명을 사용하여 연결할 수 있습니다.

이렇게 하려면 앞의 테이블에 나와 있는 IAM 연결 문자열 형식 중 하나를 사용하고 dbuser 연결에 사용하는 Amazon Redshift 사용자 이름으로 dbuser 연결 속성을 설정합니다.

인스턴스 프로파일에 대한 자세한 내용은 *IAM User Guide*의 [Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) 섹션을 참조하세요.

## 자격 증명 공급자 사용
<a name="jdbc20-aws-credentials-provider"></a>

드라이버에서 다음 서비스의 자격 증명 공급자 플러그인도 지원합니다.
+ AWS IAM Identity Center
+ Active Directory Federation Service(ADFS)
+ JSON 웹 토큰(JWT) 서비스
+ Microsoft Azure Active Directory(AD) 서비스 및 브라우저
+ Okta 서비스
+ PingFederate 서비스 
+ Okta, Ping, ADFS 등의 SAML 서비스용 브라우저 SAML

이러한 서비스 중 하나를 사용하는 경우 연결 URL에서 다음 속성을 지정해야 합니다.
+ **Plugin\$1Name** – 자격 증명 공급자 플러그인 클래스의 정규화된 클래스 경로입니다.
+ **IdP\$1Host:** – Amazon Redshift에 인증하는 데 사용하는 서비스의 호스트입니다.
+ **IdP\$1Port** – 인증 서비스의 호스트가 수신 대기하는 포트입니다. Okta에는 필요하지 않습니다.
+ **User** – idp\$1host 서버의 사용자 이름입니다.
+ **Password** – idp\$1host 사용자 이름과 연결된 암호입니다.
+ **DbUser** – 연결에 사용하는 Amazon Redshift 사용자 이름입니다.
+ **SSL\$1Insecure** – IDP 서버 인증서를 확인해야 하는지 여부를 나타냅니다.
+ **Client\$1ID** – Azure AD 포털의 사용자 이름과 연결된 클라이언트 ID입니다. Azure AD에만 사용됩니다.
+ **Client\$1Secret** – Azure AD 포털의 클라이언트 ID와 연결된 클라이언트 암호입니다. Azure AD에만 사용됩니다.
+ **IdP\$1Tenant** – Amazon Redshift 애플리케이션의 Azure AD 테넌트 ID입니다. Azure AD에만 사용됩니다.
+ **App\$1ID** – Amazon Redshift 애플리케이션의 Okta 앱 ID입니다. Okta에만 사용됩니다.
+ **App\$1Name** – Amazon Redshift 애플리케이션의 Okta 앱 이름(옵션)입니다. Okta에만 사용됩니다.
+ **Partner\$1SPID** – 파트너 SPID(서비스 공급자 ID) 값(옵션)입니다. PingFederate에만 사용됩니다.
+ **Idc\$1Region** - AWS IAM Identity Center 인스턴스가 위치한 AWS 리전입니다. AWS IAM Identity Center에만 사용됩니다.
+ **Issuer\$1Url** - AWS IAM Identity Center 서버의 인스턴스 엔드포인트입니다. AWS IAM Identity Center에만 사용됩니다.

이러한 서비스 중 하나에 브라우저 플러그인을 사용하는 경우 연결 URL에 다음이 포함될 수도 있습니다.
+ **Login\$1URL** – 브라우저 플러그인을 통해 SAML(Security Assertion Markup Language) 또는 Azure AD 서비스를 사용할 때 자격 증명 공급자의 웹 사이트에 있는 리소스의 URL입니다. 브라우저 플러그인을 사용하는 경우 이 파라미터는 필수입니다.
+ **Listen\$1Port** - 브라우저 플러그인을 통해 SAML, Azure AD 또는 AWS IAM ID 센터 서비스를 사용할 때 드라이버가 ID 제공업체로부터 SAML 응답을 가져오는 데 사용하는 포트입니다.
+ **IdP\$1Response\$1Timeout** - 브라우저 플러그인을 통해 SAML, Azure AD 또는 AWS IAM ID 센터 서비스를 사용할 때 드라이버가 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을 사용하지만 자격 증명 확인이 필요하지 않은 경우 비검증 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을 사용하고 인증서가 있는 경우 단방향 인증을 사용하여 서버의 자격 증명을 확인하도록 드라이버를 구성할 수 있습니다.

단방향 인증에는 서버의 자격 증명 확인을 위한 서명된 신뢰할 수 있는 SSL 인증서가 필요합니다. 특정 인증서를 사용하거나 적절한 인증서가 들어 있는 TrustStore에 액세스하도록 드라이버를 구성할 수 있습니다. 인증서 또는 TrustStore를 지정하지 않으면 드라이버가 기본 Java TrustStore(일반적으로 `jssecacerts` 또는 `cacerts`)를 사용합니다.

**단방향 SSL 인증을 구성하려면**

1. UID 속성을 Amazon Redshift 서버 액세스를 위한 Redshift 사용자 이름으로 설정합니다.

1. PWD 속성을 Redshift 사용자 이름에 해당하는 암호로 설정합니다.

1. SSL 속성을 true로 설정합니다.

1. SSLRootCert 속성을 루트 CA 인증서의 위치로 설정합니다.

1. 기본 Java TrustStore 중 하나를 사용하지 않는 경우 다음 중 하나를 수행합니다.
   + 서버 인증서를 지정하려면 SSLRootCert 속성을 인증서의 전체 경로로 설정합니다.
   + TrustStore를 지정하려면 다음을 수행합니다.

     1. keytool 프로그램으로 사용하려는 TrustStore에 서버 인증서를 추가합니다.

     1. 드라이버를 사용하여 Java 애플리케이션을 시작할 때 사용할 TrustStore와 암호를 지정합니다. 예:

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

1. 그중 하나의 경로를 선택하세요.
   + 인증서를 검증하려면 SSLMode 속성을 verify-ca로 설정합니다.
   + 인증서를 검증하고 인증서의 호스트 이름을 확인하려면 SSLMode 속성을 verify-full로 설정합니다.

# 로깅 구성
<a name="jdbc20-configuring-logging"></a>

문제 진단에 도움이 되도록 드라이버에서 로그를 설정할 수 있습니다.

다음 방법을 사용하여 드라이버 정보를 로그할 수 있습니다.
+ 로그된 정보를 .log 파일에 저장하려면 [로그 파일 사용](jdbc20-using-log-files.md) 섹션을 참조하세요.
+ 로그된 정보를 DriverManager에 지정된 LogStream 또는 LogWriter로 보내려면 [LogStream 또는 LogWriter 사용](jdbc20-logstream-option.md) 섹션을 참조하세요.

연결 URL에서 드라이버에 구성 정보를 제공합니다. 연결 URL의 구문에 대한 자세한 내용은 [연결 URL 구축](jdbc20-build-connection-url.md) 섹션을 참조하세요.

# 로그 파일 사용
<a name="jdbc20-using-log-files"></a>

문제를 포착할 수 있을 만큼만 로깅을 길게 설정합니다. 로깅은 성능을 떨어뜨릴 뿐만 아니라 대용량의 디스크 공간을 소비할 수 있기 때문입니다.

연결 URL에서 LogLevel 키를 설정하여 로깅을 설정하고 로그 파일에 포함되는 세부 정보의 양을 지정합니다. 다음 표에는 Amazon Redshift JDBC 드라이버 버전 2.x에서 제공하는 로깅 수준이 나열되어 있습니다. 아래로 갈수록 더 자세한 세부 정보가 로그됩니다.


| LogLevel 값 | 설명 | 
| --- | --- | 
|  1  |  드라이버 중단으로 이어질 심각한 오류 이벤트를 로그합니다.  | 
|  2  |  드라이버가 계속 실행될 수 있는 오류 이벤트를 로그합니다.  | 
|  3  |  작업을 수행하지 않으면 발생할 수 있는 이벤트를 로그합니다. 이 수준의 로깅과 이 수준 이상의 로깅 수준은 사용자의 쿼리도 기록합니다.  | 
|  4  |  드라이버의 진행 상황을 설명하는 일반 정보를 로그합니다.  | 
|  5  |  드라이버 디버깅에 유용한 세부 정보를 로그합니다.  | 
|  6  |  모든 드라이버 활동을 로그합니다.  | 

**로그 파일을 사용하는 로깅을 설정하려면**

1. LogLevel 속성을 로그 파일에 포함하려는 정보 수준으로 설정합니다.

1. LogPath 속성을 로그 파일을 저장할 폴더의 전체 경로로 설정합니다.

   예를 들어 다음 연결 URL은 로깅 수준 3을 사용하고 로그 파일을 C:\$1temp 폴더에 저장합니다. `jdbc:redshift://redshift.company.us-west- 1.redshift.amazonaws.com:9000/Default;DSILogLevel=3;LogPath=C:\temp` 

1. 새 설정이 적용되도록 하려면 JDBC 애플리케이션을 다시 시작하고 서버에 다시 연결합니다.

   Amazon Redshift JDBC 드라이버가 LogPath 속성에 지정된 위치에 다음 로그 파일을 생성합니다.
   +  연결과 관련되지 않은 드라이버 활동을 로그하는 redshift\$1jdbc.log 파일입니다.
   + 각 데이터베이스 연결에 대한 redshift\$1jdbc\$1connection\$1[Number].log 파일입니다. 여기서 [Number]는 각 로그 파일을 식별하는 번호입니다. 이 파일은 연결과 관련된 드라이버 활동을 로그합니다.

LogPath 값이 유효하지 않으면 드라이버가 로그된 정보를 표준 출력 스트림(`System.out`)으로 전송합니다.

# LogStream 또는 LogWriter 사용
<a name="jdbc20-logstream-option"></a>

문제를 포착할 수 있을 만큼만 로깅을 길게 설정합니다. 로깅은 성능을 떨어뜨릴 뿐만 아니라 대용량의 디스크 공간을 소비할 수 있기 때문입니다.

연결 URL에 LogLevel 키를 설정하여 로깅을 설정하고 DriverManager에 지정된 LogStream 또는 LogWriter로 전송되는 세부 정보의 양을 지정합니다.

**LogStream 또는 LogWriter를 사용하는 로깅을 설정하려면**

1. 드라이버의 진행률을 설명하는 일반 정보를 로그하도록 드라이버를 구성하려면 LogLevel 속성을 1 또는 INFO로 설정합니다.

1. 새 설정이 적용되도록 하려면 JDBC 애플리케이션을 다시 시작하고 서버에 다시 연결합니다.

# 데이터 형식 변환
<a name="jdbc20-data-type-mapping"></a>

Amazon Redshift JDBC 드라이버 버전 2.x는 Amazon Redshift, SQL 및 Java 데이터 유형 간 변환으로 많은 일반 데이터 유형을 지원합니다.

다음 표에는 지원되는 데이터 형식 매핑이 나와 있습니다.


| Amazon Redshift 형식 | SQL 형식 | Java 형식 | 
| --- | --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  |  Long  | 
|  BOOLEAN  |  SQL\$1BIT  |  Boolean  | 
|  CHAR  |  SQL\$1CHAR  |  문자열  | 
|  DATE  |  SQL\$1TYPE\$1DATE  |  java.sql.Date  | 
|  DECIMAL  |  SQL\$1NUMERIC  |  BigDecimal  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  |  Double  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  |  byte[]  | 
|  INTEGER  |  SQL\$1INTEGER  |  Integer  | 
|  OID  |  SQL\$1BIGINT  |  Long  | 
|  SUPER  |  SQL\$1LONGVARCHAR  |  문자열  | 
|  REAL  |  SQL\$1REAL  |  Float  | 
|  SMALLINT  |  SQL\$1SMALLINT  |  Short  | 
|  TEXT  |  SQL\$1VARCHAR  |  문자열  | 
|  TIME  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  VARCHAR  |  SQL\$1VARCHAR  |  문자열  | 

# 준비된 명령문 지원 사용
<a name="jdbc20-prepared-statement-support"></a>

Amazon Redshift JDBC 드라이버는 준비된 문을 지원합니다. 준비된 문을 사용하여 동일한 연결 중 여러 번 실행해야 하는 파라미터화된 쿼리의 성능을 향상시킬 수 있습니다.

*준비된 문*은 서버 측에서 컴파일되지만 즉시 실행되지 않는 SQL 문입니다. 컴파일된 문은 객체 또는 연결을 닫을 때까지 PreparedStatement 객체로 서버에 저장됩니다. 해당 객체가 존재하는 동안 문을 다시 컴파일하지 않고도 여러 파라미터 값을 사용하여 준비된 문을 필요한 만큼 실행할 수 있습니다. 이로 인해 오버헤드가 줄어 쿼리 집합을 더 빠르게 실행할 수 있습니다.

준비된 문에 대한 자세한 내용은[Oracle에서 제공하는 JDBC Basics 튜토리얼](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)의 "Using Prepared Statements" 섹션을 참조하세요.

쿼리가 여러 개 포함된 문을 준비할 수 있습니다. 예를 들어 다음의 준비된 문에는 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)이 아직 존재하지 않는다는 오류를 반환합니다. CREATE 쿼리를 실행해야 INSERT 쿼리를 준비할 수 있습니다.

# 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 클라이언트가 필요한 구성 파라미터를 가져올 수 있는 공통 위치를 제공합니다.

SQL 클라이언트에 대한 구성 옵션이 들어 있는 JDBC 드라이버 버전 2.x 초기화(.ini) 파일을 생성할 수 있습니다. 파일의 기본 이름은 `rsjdbc.ini`입니다. JDBC 드라이버 버전 2.x는 다음 위치(우선 순위에 따라 나열됨)에서 .ini 파일을 확인합니다.
+ `IniFile`연결 URL 또는 SQL 클라이언트의 연결 속성 대화 상자에 있는 파라미터. `IniFile` 파라미터에 파일 이름을 포함한 .ini 파일의 전체 경로가 포함되어 있는지 확인합니다. `IniFile` 파라미터에 대한 자세한 내용은 [INIFILE](jdbc20-configuration-options.md#jdbc20-inifile-option) 섹션을 참조하세요. `IniFile` 파라미터가.ini 파일의 위치를 잘못 지정하면 오류가 표시됩니다.
+ 파일 이름을 포함한 전체 경로가 포함된 AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE과 같은 환경 변수. `rsjdbc.ini`를 사용하거나 파일 이름을 지정합니다. AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE 환경 변수가.ini 파일의 위치를 잘못 지정하면 오류가 표시됩니다.
+ 드라이버 JAR 파일이 있는 디렉터리.
+ 사용자 홈 디렉터리.
+ 시스템의 임시 디렉터리.

.ini 파일을 [DRIVER]와 같은 섹션으로 구성할 수 있습니다. 각 섹션에는 다양한 연결 파라미터를 지정하는 키-값 페어가 있습니다. `IniSection` 파라미터를 사용하여.ini 파일에 섹션을 지정할 수 있습니다. `IniSection` 파라미터에 대한 자세한 내용은 [IniSection](jdbc20-configuration-options.md#jdbc20-inisection-option) 섹션을 참조하세요.

다음은 [DRIVER], [DEV], [QA] 및 [PROD]에 대한 섹션이 있는 .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] 섹션 속성(포함된 경우).
+ 연결 URL 또는 SQL 클라이언트의 연결 속성 대화 상자에 `IniSection` 옵션이 제공되는 경우 사용자 정의 섹션 구성 파라미터.
+ `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)
+ [범위](#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)
+ [User](#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>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

Amazon Redshift 애플리케이션과 연결된 Okta 제공 고유 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로 설정합니다.
+ **꺼짐**

  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**  
단일 작업으로 모든 행을 가져옵니다.

**양의 정수**  
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 명령이 포함된 명령문을 감지하면 해당 트랜잭션의 페치 링 버퍼가 거짓으로 설정됩니다. 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
+ **데이터 형식** – 부울

이 옵션은 Statement에서 세미콜론으로 구분된 여러 SQL 명령을 처리할지 여부를 지정합니다.

이 파라미터는 선택 사항입니다.

다음 값을 지정할 수 있습니다.

**true**  
드라이버가 Statement 객체에서 세미콜론으로 구분된 여러 SQL 명령을 처리합니다.

**false**  
드라이버가 단일 Statement에서 여러 SQL 명령에 대한 오류를 반환합니다.

## fetchRingBufferSize
<a name="jdbc20-fetchringbuffersize-option"></a>
+ **기본값** – 1G
+ **데이터 형식** – 문자열

이 옵션은 결과 집합을 가져오는 동안 사용되는 링 버퍼의 크기를 지정합니다. 크기를 바이트 단위로 지정할 수 있습니다(예: 1KB의 경우 1K, 5,000바이트의 경우 5000, 1MB의 경우 1M, 1GB의 경우 1G). 또한 힙 메모리의 비율을 지정할 수 있습니다. 드라이버는 제한에 도달하면 행 가져오기를 중지합니다. 애플리케이션이 행을 읽고 링 버퍼의 공간을 확보하면 가져오기가 다시 시작됩니다.

이 파라미터는 선택 사항입니다.

## ForceLowercase
<a name="jdbc20-forcelowercase-option"></a>
+ **기본값** – false
+ **데이터 형식** – 부울

이 옵션은 드라이버가 Single Sign-On 인증을 사용할 때 자격 증명 공급자에서 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 Identity Center 인스턴스가 위치한 AWS 리전입니다.

이 파라미터는 plugin\$1name 구성 옵션에서 `BrowserIdcAuthPlugin`을 사용하여 인증하는 경우에만 필요합니다.

## IdP\$1Host
<a name="jdbc20-idp_host-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

Amazon Redshift에 인증하는 데 사용하는 자격 증명 공급자(IdP) 호스트입니다. 연결 문자열이나 프로파일에 지정할 수 있습니다.

이 파라미터는 선택 사항입니다.

## IdP\$1Partition
<a name="jdbc20-idp_partition-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

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 서비스를 사용할 때 드라이버가 자격 증명 공급자의 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 Identity Center 서버의 인스턴스 엔드포인트를 가리킵니다.

이 파라미터는 plugin\$1name 구성 옵션에서 `BrowserIdcAuthPlugin`을 사용하여 인증하는 경우에만 필요합니다.

## Listen\$1Port
<a name="jdbc20-listen-port"></a>
+ **기본값** – 7890
+ **데이터 형식** – 정수

드라이버가 브라우저 플러그인을 통해 SAML, Azure AD 또는 AWS IAM Identity Center 서비스를 사용할 때 ID 제공업체 또는 권한 부여 코드로부터 SAML 응답을 받는 데 사용하는 포트입니다.

이 파라미터는 선택 사항입니다.

## Login\$1URL
<a name="jdbc20-login_url-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

브라우저 플러그인을 통해 SAML 또는 Azure AD 서비스를 사용할 때 자격 증명 공급자의 웹 사이트에 있는 리소스의 URL입니다.

브라우저 플러그인을 통해 SAML 또는 Azure AD 서비스로 인증하는 경우 이 파라미터는 필수입니다.

## loginTimeout
<a name="jdbc20-logintimeout-option"></a>
+ **기본값** - 0
+ **데이터 형식** – 정수

서버에 연결하고 인증하면서 시간 제한이 지날 때까지 대기하는 시간(초)입니다. 연결 구성이 이 제한 시간보다 어래 걸리면 연결이 중단됩니다.

이 속성이 0으로 설정되는 경우에는 연결 시간 제한이 없습니다.

이 파라미터는 선택 사항입니다.

## loginToRp
<a name="jdbc20-logintorp-option"></a>
+ **기본값** – `urn:amazon:webservices`
+ **데이터 형식** – 문자열

AD FS 인증 유형에 사용할 신뢰 당사자 트러스트입니다.

이 파라미터는 선택 사항입니다.

## LogLevel
<a name="jdbc20-loglevel-option"></a>
+ **기본값** - 0
+ **데이터 형식** – 정수

이 속성을 사용하여 드라이버에서 로깅을 설정하거나 해제하고 로그 파일에 포함되는 세부 정보의 양을 지정합니다.

문제를 포착할 수 있을 만큼만 로깅을 사용합니다. 로깅은 성능을 떨어뜨릴 뿐만 아니라 대용량의 디스크 공간을 소비할 수 있기 때문입니다.

이 파라미터는 선택 사항입니다.

파라미터를 다음 값 중 하나로 설정합니다.

**0**  
모든 로깅을 사용 중지합니다.

**1**  
드라이버를 중단시키는 매우 심각한 오류 이벤트를 로그하는 FATAL 수준에서 로깅을 사용합니다.

**2**  
드라이버가 계속 실행될 수 있는 오류 이벤트를 로그하는 ERROR 수준에서 로깅을 사용합니다.

**3**  
작업을 수행하지 않으면 오류가 발생할 수 있는 이벤트를 로그하는 WARNING 수준에서 로깅을 사용합니다.

**4**  
드라이버의 진행 상황을 설명하는 일반 정보를 로그하는 INFO 수준에서 로깅을 사용합니다.

**5**  
드라이버 디버깅에 유용한 세부 정보를 로그하는 DEBUG 수준에서 로깅을 사용합니다.

**6**  
모든 드라이버 활동을 로그하는 TRACE 수준에서 로깅을 사용합니다.

로깅을 사용하면 드라이버가 `LogPath` 속성에 지정된 위치에 다음 로그 파일을 생성합니다.
+ ** `redshift_jdbc.log`** – 연결과 관련되지 않은 드라이버 활동을 로그하는 파일입니다.
+ **`redshift_jdbc_connection_[Number].log`** – 각 데이터베이스 연결에 대한 파일입니다. 여기서 `[Number]`는 각 로그 파일을 다른 로그 파일과 구별하는 숫자입니다. 이 파일은 연결과 관련된 드라이버 활동을 로그합니다.

LogPath 값이 유효하지 않으면 드라이버가 로그된 정보를 표준 출력 스트림인 `System.out`으로 전송합니다.

## LogPath
<a name="jdbc20-logpath-option"></a>
+ **기본값** – 현재 작업 디렉터리.
+ **데이터 형식** – 문자열

DSILogLevel 속성을 사용할 때 드라이버가 로그 파일을 저장하는 폴더의 전체 경로입니다.

연결 URL이 모든 JDBC 애플리케이션과 호환되는지 확인하려면 다른 백슬래시를 입력하여 파일 경로에서 백슬래시(\$1)를 이스케이프 처리하는 것이 좋습니다.

이 파라미터는 선택 사항입니다.

## OverrideSchemaPatternType
<a name="jdbc20-override-schema-pattern-type"></a>
+ **기본값** – null
+ **데이터 형식** – 정수

이 옵션은 getTables 호출에 사용하는 쿼리 유형을 재정의할지 여부를 지정합니다.

**0**  
스키마 없는 범용 쿼리

**1**  
로컬 스키마 쿼리

**2**  
외부 스키마 쿼리

이 파라미터는 선택 사항입니다.

## Partner\$1SPID
<a name="jdbc20-partner_spid-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

PingFederate 서비스를 사용하여 연결을 인증할 때 사용할 파트너 SPID(서비스 공급자 ID) 값입니다.

이 파라미터는 선택 사항입니다.

## 암호
<a name="jdbc20-password-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

IDP를 통해 IAM 인증을 사용하여 연결할 때 IDP\$1Host 서버의 암호입니다. 표준 인증을 사용할 때 Amazon Redshift 데이터베이스 암호에 PWD 대신 사용할 수 있습니다.

이 파라미터는 선택 사항입니다.

## Plugin\$1Name
<a name="jdbc20-plugin_name-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

특정 자격 증명 공급자 플러그인을 구현하기 위한 정규화된 클래스 이름입니다.

이 파라미터는 선택 사항입니다.

다음과 같은 공급자 옵션이 지원됩니다.
+ **`AdfsCredentialsProvider`** – Active Directory Federation Service입니다.
+ **`AzureCredentialsProvider`** – Microsoft Azure Active Directory(AD) Service입니다.
+ **`BasicJwtCredentialsProvider`** – JSON Web Tokens (JWT) Service입니다.
+ **`BasicSamlCredentialsProvider`** - 많은 SAML 서비스 공급자와 함께 사용할 수 있는 SAML(Security Assertion Markup Language) 자격 증명입니다.
+ **`BrowserAzureCredentialsProvider`** – Browser Microsoft Azure Active Directory(AD) Service입니다.
+ **`BrowserAzureOAuth2CredentialsProvider` ** – 네이티브 인증용 Browser Microsoft Azure Active Directory(AD) Service입니다.
+ **`BrowserIdcAuthPlugin`** - AWS IAM Identity Center를 사용하는 인증 플러그인입니다.
+ **`BrowserSamlCredentialsProvider`** – Okta, Ping, ADFS 등의 SAML 서비스용 Browser SAML입니다.
+ **`IdpTokenAuthPlugin`** – AWS IAM Identity Center 토큰 또는 AWS IAM Identity Center에 연결된 웹 ID 제공업체의 OpenID Connect(OIDC) JSON 기반 자격 증명 토큰(JWT)을 수락하는 권한 부여 플러그인입니다.
+ **`OktaCredentialsProvider`** – Okta Service입니다.
+ **`PingCredentialsProvider`** – PingFederate Service입니다.

## 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 옵션을 지정하면 리전 옵션이 무시됩니다. 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를 지정할 때 이 파라미터를 지정할 수 있습니다.

이 파라미터는 선택 사항입니다.

## 범위
<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 KeepAlive를 설정하거나 해제합니다.

이 파라미터는 선택 사항입니다.

다음 값을 지정할 수 있습니다.

**TRUE**  
드라이버가 TCP KeepAlive를 사용하여 연결 시간 초과를 방지합니다.

**FALSE**  
드라이버가 TCP KeepAlive를 사용하지 않습니다.

## 토큰
<a name="jdbc20-token-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

AWS IAM Identity Center에서 제공한 액세스 토큰 또는 AWS IAM Identity Center와 연결된 웹 ID 제공업체가 제공한 OpenID Connect(OIDC) JSON 웹 토큰(JWT)입니다. 애플리케이션은 AWS IAM Identity Center 또는 AWS IAM Identity Center와 연결된 자격 증명 공급자를 통해 애플리케이션 사용자를 인증하여 이 토큰을 생성해야 합니다.

이 파라미터는 `IdpTokenAuthPlugin`과 함께 작동합니다.

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

`IdpTokenAuthPlugin`에서 사용되는 토큰 유형입니다.

다음 값을 지정할 수 있습니다.

**ACCESS\$1TOKEN**  
AWS IAM Identity Center에서 제공한 액세스 토큰을 사용하는 경우 이 값을 입력합니다.

**EXT\$1JWT**  
AWS IAM Identity Center와 통합된 웹 기반 ID 제공업체가 제공하는 OpenID Connect(OIDC) JSON 웹 토큰(JWT)을 사용하는 경우 이 값을 입력합니다.

이 파라미터는 `IdpTokenAuthPlugin`과 함께 작동합니다.

## UID
<a name="jdbc20-uid-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

데이터베이스에 액세스하는 데 사용하는 데이터베이스 사용자 이름입니다.

이 파라미터는 필수 사항입니다.

## User
<a name="jdbc20-user-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

IDP를 통해 IAM 인증을 사용하여 연결 시 idp\$1host 서버의 사용자 이름입니다. 표준 인증을 사용하는 경우 Amazon Redshift 데이터베이스 사용자 이름에 사용할 수 있습니다.

이 파라미터는 선택 사항입니다.

## webIdentityToken
<a name="jdbc20-webidentitytoken-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

자격 증명 공급자가 제공하는 OAuth 2.1 액세스 토큰 또는 OpenID Connect ID 토큰입니다. 애플리케이션에서 웹 자격 증명 공급자로 애플리케이션 사용자를 인증하여 이 토큰을 가져와야 합니다. 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 커넥터를 사용하면[AWS Python용 SDK(Boto3)](https://github.com/boto/boto3), pandas 및 Numerical Python(NumPy)과 작업을 통합할 수 있습니다. pandas에 대한 자세한 내용은 [pandas GitHub 리포지토리](https://github.com/pandas-dev/pandas)를 참조하세요. NumPy에 대한 자세한 내용은 [NumPy GitHub 리포지토리](https://github.com/numpy/numpy)를 참조하세요.

Amazon Redshift Python 커넥터는 오픈 소스 솔루션을 제공합니다. 소스 코드를 탐색하고, 개선 사항을 요청하고, 문제를 보고하고, 기여를 제공할 수 있습니다.

Amazon Redshift Python 커넥터를 사용하려면 Python 버전 3.6 이상이 있어야 합니다. 자세한 내용은 [Amazon Redshift Python 드라이버 사용권 계약](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE)을 참조하세요.

Amazon Redshift Python 커넥터는 다음을 제공합니다.
+ AWS Identity and Access Management(IAM) 인증. 자세한 내용은 [Amazon Redshift의 Identity and Access Management](redshift-iam-authentication-access-control.md) 섹션을 참조하세요.
+ 페더레이션 API 액세스를 사용한 자격 증명 공급자 인증. 페더레이션 API 액세스는 다음과 같은 기업 자격 증명 공급자에 대해 지원됩니다.
  + Azure AD. 자세한 내용은 AWS 빅 데이터 블로그 게시물 [Federate Amazon Redshift access with Microsoft Azure AD single sign-on](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/)을 참조하세요.
  + Active Directory Federation Services. 자세한 내용은 AWS 빅 데이터 블로그 게시물 [Federate access to your Amazon Redshift cluster with Active Directory Federation Services (AD FS): Part 1](https://aws.amazon.com/blogs/big-data/federate-access-to-your-amazon-redshift-cluster-with-active-directory-federation-services-ad-fs-part-1/)을 참조하세요.
  + Okta. 자세한 내용은 AWS 빅 데이터 블로그 게시물 [Federate Amazon Redshift access with Okta as an identity provider](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/)를 참조하세요.
  + PingFederate. 자세한 내용은 [PingFederate 사이트](https://www.pingidentity.com/en/software/pingfederate.html)를 참조하세요.
  + JumpCloud. 자세한 내용은 [JumpCloud 사이트](https://jumpcloud.com/)를 참조하세요.
+ Amazon Redshift 데이터 유형.

Amazon Redshift Python 커넥터는 Python Database API 사양 2.0을 구현합니다. 자세한 내용은 Python 웹 사이트의 [PEP 249—Python Database API Specification 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)
+ [NumPy와 Python 커넥터 통합](python-connect-integrate-numpy.md)
+ [pandas와 Python 커넥터 통합](python-connect-integrate-pandas.md)
+ [자격 증명 공급자 플러그인 사용](python-connect-identity-provider-plugins.md)
+ [Amazon Redshift Python 커넥터 사용 예](python-connect-examples.md)
+ [Amazon Redshift Python 커넥터용 API 참조](python-api-reference.md)

# Amazon Redshift Python 커넥터 설치
<a name="python-driver-install"></a>

다음 방법을 사용하여 Amazon Redshift Python 커넥터를 설치할 수 있습니다.
+ Python 패키지 인덱스(PyPi)
+ Conda
+ GitHub 리포지토리 복제

## PyPI에서 Python 커넥터 설치
<a name="python-pip-install-pypi"></a>

Python 패키지 인덱스(PyPi)에서 Python 커넥터를 설치하려면 pip를 사용할 수 있습니다. 다음 명령으로 실행하세요.

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

가상 환경 내에 커넥터를 설치할 수 있습니다. 다음 명령으로 실행하세요.

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

커넥터를 사용하여 pandas와 NumPy를 설치할 수도 있습니다.

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

pip에 대한 자세한 내용은 [pip 웹 사이트](https://pip.pypa.io/en/stable/)를 참조하세요.

## Conda에서 Python 커넥터 설치
<a name="python-pip-install-from-conda"></a>

Anaconda.org에서 Python 커넥터를 설치할 수 있습니다.

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

## AWS에서 GitHub 리포지토리를 복제하여 Python 커넥터 설치
<a name="python-pip-install-from-source"></a>

소스에서 Python 커넥터를 설치하려면 AWS에서 GitHub 리포지토리를 복제합니다. Python 및 virtualenv를 설치한 후 다음 명령을 실행하여 환경을 설정하고 필요한 종속성을 설치합니다.

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

# Amazon Redshift Python 커넥터의 구성 옵션
<a name="python-configuration-options"></a>

아래에서 Amazon Redshift JDBC Python 커넥터에 지정할 수 있는 옵션에 대한 설명을 찾을 수 있습니다. 아래 옵션은 달리 지정하지 않는 한 사용 가능한 최신 커넥터 버전에 적용됩니다.

## access\$1key\$1id
<a name="python-access-key-id-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

IAM 데이터베이스 인증용으로 구성한 IAM 사용자 또는 역할에 대한 액세스 키 ID입니다.

이 파라미터는 선택 사항입니다.

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **기본값** – False
+ **데이터 유형** – 부울

True  
커넥터가 SAML(Security Assertion Markup Language) 어설션의 `DbUser` 값을 사용하도록 지정합니다.

False  
`DbUser` 연결 파라미터의 값이 사용되도록 지정합니다.

이 파라미터는 선택 사항입니다.

## app\$1name
<a name="python-app-name-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

인증에 사용되는 자격 증명 공급자(IdP) 애플리케이션의 이름입니다.

이 파라미터는 선택 사항입니다.

## application\$1name
<a name="python-application_name-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

감사 목적으로 Amazon Redshift에 전달할 클라이언트 애플리케이션의 이름입니다. 입력하는 애플리케이션 이름은 [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html) 테이블의 'application\$1name' 열에 나타납니다. 이렇게 하면 문제를 디버깅할 때 연결 소스를 추적하고 문제를 해결할 수 있습니다.

이 파라미터는 선택 사항입니다.

## auth\$1profile
<a name="python-auth-profile-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

연결 속성이 JSON인 Amazon Redshift 인증 프로파일의 이름입니다. 연결 파라미터 이름 지정에 대한 자세한 내용은 `RedshiftProperty` 클래스를 참조하세요. 최종 사용자가 제공하고 해당 사항이 있는 경우 `RedshiftProperty` 클래스에는 IAM 인증 프로세스 중에 생성된 연결 파라미터가 저장됩니다(예: 임시 IAM 자격 증명). 자세한 내용은 [RedshiftProperty 클래스](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9)를 참조하세요.

이 파라미터는 선택 사항입니다.

## auto\$1create
<a name="python-auto-create-option"></a>
+ **기본값** – False
+ **데이터 유형** – 부울

사용자가 존재하지 않는 경우 사용자를 생성할지 여부를 나타내는 값입니다.

이 파라미터는 선택 사항입니다.

## client\$1id
<a name="python-client-id-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

Azure IdP의 클라이언트 ID입니다.

이 파라미터는 선택 사항입니다.

## client\$1secret
<a name="python-client-secret-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

Azure IdP의 클라이언트 보안 암호입니다.

이 파라미터는 선택 사항입니다.

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

Amazon Redshift 클러스터의 클러스터 식별자입니다.

이 파라미터는 선택 사항입니다.

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

Amazon Redshift로 인증하는 데 사용되는 IdP입니다. 유효한 값은 다음과 같습니다.
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin` - AWS IAM Identity Center를 사용하는 인증 플러그인입니다.
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin` – AWS IAM Identity Center 토큰 또는 AWS IAM Identity Center에 연결된 웹 ID 제공업체의 OpenID Connect(OIDC) JSON 기반 자격 증명 토큰(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
+ **데이터 유형** – 부울

애플리케이션이 다중 데이터베이스 datashare 카탈로그를 지원하는지 여부를 나타내는 값입니다. 기본값 True는 애플리케이션이 이전 버전과의 호환성을 위해 다중 데이터베이스 datashare 카탈로그를 지원하지 않음을 나타냅니다.

이 파라미터는 선택 사항입니다.

## 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**를 지정합니다.

## host
<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 게이트웨이에 대한 요청이 제한될 때 성능이 향상됩니다.

이 파라미터는 선택 사항입니다.

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **기본값** - Amazon Redshift Python 커넥터
+ **데이터 형식** – 문자열

BrowserIdcAuthPlugin을 사용하는 클라이언트에 사용할 표시 이름입니다.

이 파라미터는 선택 사항입니다.

## idc\$1region
<a name="python-idc_region"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

AWS IAM Identity Center 인스턴스가 위치한 AWS 리전입니다.

이 파라미터는 credentials\$1provider 구성 옵션에서 `BrowserIdcAuthPlugin`을 사용하여 인증하는 경우에만 필요합니다.

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

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 Identity Center 서버의 인스턴스 엔드포인트를 가리킵니다.

이 파라미터는 credentials\$1provider 구성 옵션에서 `BrowserIdcAuthPlugin`을 사용하여 인증하는 경우에만 필요합니다.

## listen\$1port
<a name="python-listen-port-option"></a>
+ **기본값** – 7890
+ **데이터 유형** – 정수

드라이버가 브라우저 플러그인을 통해 SAML, Azure AD 또는 AWS IAM Identity Center 서비스를 사용할 때 ID 제공업체 또는 권한 부여 코드로부터 SAML 응답을 받는 데 사용하는 포트입니다.

이 파라미터는 선택 사항입니다.

## login\$1url
<a name="python-login-url-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

IdP의 Single Sign-On 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)(decimal - 10진수 고정 소수점 및 부동 소수점 연산)을 참조하세요.

이 파라미터는 선택 사항입니다.

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

Ping 인증에 사용되는 파트너 SP ID입니다.

이 파라미터는 선택 사항입니다.

## 암호
<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 Native Authentication Provider의 이름입니다.

이 파라미터는 선택 사항입니다.

## region
<a name="python-region-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

클러스터가 있는 AWS 리전입니다.

이 파라미터는 선택 사항입니다.

## role\$1arn
<a name="python-role-arn-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

발신자가 수임하는 역할의 Amazon 리소스 이름(ARN)입니다. 이 파라미터는 `JwtCredentialsProvider`로 표시된 공급자가 사용합니다.

`JwtCredentialsProvider` 공급자의 경우 이 파라미터는 필수입니다. 그렇지 않으면 이 파라미터는 선택 항목입니다.

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **기본값** – jwt\$1redshift\$1session
+ **데이터 유형** – 문자열

맡은 역할 세션의 식별자입니다. 일반적으로 애플리케이션 사용자와 연결된 이름 또는 식별자를 전달합니다. 애플리케이션에서 사용하는 임시 보안 자격 증명은 해당 사용자와 연결됩니다. 이 파라미터는 `JwtCredentialsProvider`로 표시된 공급자가 사용합니다.

이 파라미터는 선택 사항입니다.

## 범위
<a name="python-scope-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

사용자가 동의할 수 있는 공백으로 구분된 범위 목록입니다. 애플리케이션이 해당 사용자가 호출하려는 API에 대한 동의를 얻을 수 있도록 이 파라미터를 지정합니다. credentials\$1provider 옵션에 BrowserAzureOAuth2CredentialsProvider를 지정할 때 이 파라미터를 지정할 수 있습니다.

이 파라미터는 BrowserAzureOAuth2CredentialsProvider 플러그인에 반드시 필요합니다.

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

IAM 데이터베이스 인증용으로 구성한 IAM 사용자 또는 역할에 대한 보안 액세스 키 ID입니다.

이 파라미터는 선택 사항입니다.

## session\$1token
<a name="python-session-token-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

IAM 데이터베이스 인증용으로 구성한 IAM 사용자 또는 역할에 대한 액세스 키 ID입니다. 임시 AWS 자격 증명이 사용 중인 경우 이 파라미터가 필요합니다.

이 파라미터는 선택 사항입니다.

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

Amazon Redshift Serverless 계정 ID입니다.

이 파라미터는 선택 사항입니다.

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

Amazon Redshift Serverless 작업 그룹 이름입니다.

이 파라미터는 선택 사항입니다.

## ssl
<a name="python-ssl-option"></a>
+ **기본값** – True
+ **데이터 유형** – 부울

보안 소켓 계층(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 keepalive를 사용하여 연결이 시간 초과되지 않도록 할지 여부입니다. 다음 값을 지정할 수 있습니다.
+ True: 드라이버가 TCP keepalive를 사용하여 연결이 시간 초과되지 않도록 합니다.
+ False: 드라이버가 TCP keepalive를 사용하지 않습니다.

이 파라미터는 선택 사항입니다.

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 정수

연결이 비활성 상태로 간주되기 전에 전송할 응답이 없는 프로브의 수입니다. 예를 들어, 값을 3으로 설정하면 드라이버가 응답이 없는 keepalive 패킷을 3회 전송한 후 연결이 더 이상 활성 상태가 아니라고 판단합니다.

이 파라미터가 지정되지 않으면 Amazon Redshift는 시스템의 기본값을 사용합니다.

이 파라미터는 선택 사항입니다.

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 정수

드라이버가 이전 킵얼라이브 프로브에 대한 확인 응답을 받지 못한 경우, 후속 keepalive 프로브 간 간격(초)입니다. 이 파라미터를 지정할 경우 양의 정수여야 합니다.

이 파라미터가 지정되지 않으면 Amazon Redshift는 시스템의 기본값을 사용합니다.

이 파라미터는 선택 사항입니다.

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 정수

드라이버가 첫 번째 keepalive 프로브를 전송하기까지의 비활성 상태 지속 시간(초)입니다. 예를 들어 값을 120으로 설정하면 드라이버는 첫 번째 keepalive 패킷을 전송하기 전 2분 동안 비활성 상태를 대기합니다. 이 파라미터를 지정할 경우 양의 정수여야 합니다.

이 파라미터가 지정되지 않으면 Amazon Redshift는 시스템의 기본값을 사용합니다.

이 파라미터는 선택 사항입니다.

## 제한 시간
<a name="python-timeout-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 정수

서버 연결 시간이 초과되기까지의 시간(초)입니다.

이 파라미터는 선택 사항입니다.

## 토큰
<a name="python-token-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

AWS IAM Identity Center에서 제공한 액세스 토큰 또는 AWS IAM Identity Center와 연결된 웹 ID 제공업체가 제공한 OpenID Connect(OIDC) JSON 웹 토큰(JWT)입니다. 애플리케이션은 AWS IAM Identity Center 또는 AWS IAM Identity Center와 연결된 자격 증명 공급자를 통해 애플리케이션 사용자를 인증하여 이 토큰을 생성해야 합니다.

이 파라미터는 `IdpTokenAuthPlugin`과 함께 작동합니다.

## token\$1type
<a name="python-token_type-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

`IdpTokenAuthPlugin`에서 사용되는 토큰 유형입니다.

다음 값을 지정할 수 있습니다.

**ACCESS\$1TOKEN**  
AWS IAM Identity Center에서 제공한 액세스 토큰을 사용하는 경우 이 값을 입력합니다.

**EXT\$1JWT**  
AWS IAM Identity Center와 통합된 웹 기반 ID 제공업체가 제공하는 OpenID Connect(OIDC) JSON 웹 토큰(JWT)을 사용하는 경우 이 값을 입력합니다.

이 파라미터는 `IdpTokenAuthPlugin`과 함께 작동합니다.

## user
<a name="python-user-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

권한 부여에 사용할 사용자 이름입니다.

이 파라미터는 선택 사항입니다.

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **기본값** – 없음
+ **데이터 유형** – 문자열

자격 증명 공급자가 제공하는 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'
 )
```

# NumPy와 Python 커넥터 통합
<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']]
```

# pandas와 Python 커넥터 통합
<a name="python-connect-integrate-pandas"></a>

다음은 Python 커넥터를 pandas와 통합하는 예입니다.

```
>>> import pandas

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

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

# 자격 증명 공급자 플러그인 사용
<a name="python-connect-identity-provider-plugins"></a>

자격 증명 공급자 플러그인을 사용하는 방법에 대한 일반적인 내용은 [IAM 자격 증명 제공 옵션](options-for-providing-iam-credentials.md) 섹션을 참조하세요. IAM 역할에 대한 모범 사례를 비롯한 IAM ID 관리에 대한 자세한 내용은 [Amazon Redshift의 Identity and Access Management](redshift-iam-authentication-access-control.md) 섹션을 참조하세요.

## ADFS 자격 증명 공급자 플러그인을 사용한 인증
<a name="python-connect-identity-provider-active-dir"></a>

다음은 ADFS(Active Directory Federation Service) 자격 증명 공급자 플러그인을 사용하여 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 Enterprise 애플리케이션에 대한 `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 Identity Center 자격 증명 공급자 플러그인을 사용한 인증
<a name="python-connect-identity-provider-aws-idc"></a>

 다음은 AWS IAM Identity Center 자격 증명 공급자 플러그인을 사용한 인증의 예입니다.

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

## Azure 브라우저 자격 증명 공급자 플러그인을 사용한 인증
<a name="python-connect-identity-provider-azure-browser"></a>

다음은 Azure 브라우저 자격 증명 공급자 플러그인을 사용하여 Amazon Redshift 데이터베이스에 연결하는 사용자를 인증하는 예입니다.

멀티 팩터 인증은 사용자가 로그인 보안 인증 정보를 제공하는 브라우저에서 발생합니다.

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

## Okta 자격 증명 공급자 플러그인을 사용한 인증
<a name="python-connect-identity-provider-okta"></a>

다음은 Okta 자격 증명 공급자 플러그인을 사용한 인증의 예입니다. Okta 애플리케이션을 통해 `idp_host`, `app_id` 및 `app_name`에 대한 값을 얻을 수 있습니다.

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

## 일반 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)
+ [autocommit 사용](#python-connect-enable-autocommit)
+ [커서 파라미터 스타일 구성](#python-connect-config-paramstyle)
+ [COPY를 사용하여 Amazon S3 버킷에서 데이터 복사 및 UNLOAD를 사용하여 Amazon S3 버킷에 데이터 쓰기](#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'])
```

## autocommit 사용
<a name="python-connect-enable-autocommit"></a>

autocommit 속성은 Python 데이터베이스 API 사양에 따라 기본적으로 해제되어 있습니다. 트랜잭션이 진행되지 않도록 롤백 명령을 수행한 후 다음 명령을 사용하여 연결의 autocommit 속성을 설정할 수 있습니다.

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

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

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

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

## 커서 파라미터 스타일 구성
<a name="python-connect-config-paramstyle"></a>

커서의 파라미터 스타일은 cursor.paramstyle을 통해 수정할 수 있습니다. 사용되는 기본 파라미터 스타일은 `format`입니다. 이 파라미터의 유효한 값은 `qmark`, `numeric`, `named`, `format`, `pyformat`입니다.

다음은 다양한 파라미터 스타일을 사용하여 샘플 SQL 문에 파라미터를 전달하는 예제입니다.

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

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

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

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

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

## COPY를 사용하여 Amazon S3 버킷에서 데이터 복사 및 UNLOAD를 사용하여 Amazon S3 버킷에 데이터 쓰기
<a name="python-connect-copy-unload-s3"></a>

다음 예에서는 Amazon S3 버킷에서 테이블로 데이터를 복사한 다음 해당 테이블에서 버킷으로 언로드하는 방법을 보여줍니다.

다음 데이터가 포함된 `category_csv.txt` 텍스트 파일이 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를 생성합니다. postgres에서는 `global_transaction_id` 파라미터만 사용됩니다. 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는 단일 연결에서 여러 카탈로그를 지원하지 않습니다. Amazon Redshift는 현재 카탈로그만 반환합니다.

`get_tables([catalog, schema_pattern, …])`  
시스템 내에서 사용자 정의된 고유한 공용 테이블을 반환합니다.

`get_columns([catalog, schema_pattern, …])`  
Amazon Redshift 데이터베이스의 특정 테이블에 있는 모든 열 목록을 반환합니다.

## AdfsCredentialsProvider 플러그인
<a name="python-adfs-credentials-plugin"></a>

다음은 Amazon Redshift Python 커넥터에 대한 AdfsCredentialsProvider 플러그인 API 작업의 구문입니다.

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

## AzureCredentialsProvider 플러그인
<a name="python-azure-credentials-plugin"></a>

다음은 Amazon Redshift Python 커넥터에 대한 AzureCredentialsProvider 플러그인 API 작업의 구문입니다.

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

## BrowserAzureCredentialsProvider 플러그인
<a name="python-browser-azure-credentials-plugin"></a>

다음은 Amazon Redshift Python 커넥터에 대한 BrowserAzureCredentialsProvider 플러그인 API 작업의 구문입니다.

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

## BrowserSamlCredentialsProvider 플러그인
<a name="python-browser-saml-credentials-plugin"></a>

다음은 Amazon Redshift Python 커넥터에 대한 BrowserSamlCredentialsProvider 플러그인 API 작업의 구문입니다.

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

## OktaCredentialsProvider 플러그인
<a name="python-okta-credentials-plugin"></a>

다음은 Amazon Redshift Python 커넥터에 대한 OktaCredentialsProvider 플러그인 API 작업의 구문입니다.

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

## PingCredentialsProvider 플러그인
<a name="python-ping-credentials-plugin"></a>

다음은 Amazon Redshift Python 커넥터에 대한 PingCredentialsProvider 플러그인 API 작업의 구문입니다.

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

## SamlCredentialsProvider 플러그인
<a name="python-saml-credentials-plugin"></a>

다음은 Amazon Redshift Python 커넥터에 대한 SamlCredentialsProvider 플러그인 API 작업의 구문입니다.

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

# Apache Spark용 Amazon Redshift 통합
<a name="spark-redshift-connector"></a>

 [Apache Spark](https://aws.amazon.com/emr/features/spark/)는 기계 학습, 스트림 처리 또는 그래픽 분석을 수행하는 데 도움이 되는 분산 처리 프레임워크 및 프로그래밍 모델입니다. Apache Hadoop과 마찬가지로, Spark는 빅 데이터 워크로드에 일반적으로 사용되는 오픈 소스 분산형 처리 시스템입니다. 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)을 사용하여 Amazon S3 버킷에 대한 보존 규칙을 정의하는 것이 좋습니다.
+  기본적으로 Amazon S3와 Redshift 간의 복사는 S3 버킷과 Redshift 클러스터가 서로 다른 AWS 리전에 있는 경우 작동하지 않습니다. 별도의 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/ko_kr/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)해야 합니다.

 다음은 Amazon Redshift에 연결하기 위해 JDBC 드라이버 URL 및 `aws_iam_role`을 지정하는 방법의 예입니다.

```
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 간에 인증하는 경우 다음 방법 중 하나를 사용하세요.
+ Java용 AWS SDK는 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 Redshift에 대한 Amazon S3 액세스 권한도 부여해야 합니다. 이렇게 하려면 먼저 [다른 AWS 서비스에 액세스할 수 있도록 Amazon Redshift에 권한을 부여](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html)한 다음 [IAM 역할을 사용하여 COPY 및 UNLOAD 작업에 권한을 부여](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html)합니다.

가장 좋은 방법은 권한 정책을 IAM 역할에 연결한 다음 필요에 따라 사용자 및 그룹에 할당하는 것입니다. 자세한 내용은 [Amazon Redshift의 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)를 참조하세요.

## 와의 통합AWS Secrets Manager
<a name="redshift-secrets-manager-authentication"></a>

AWS Secrets Manager에 저장된 시크릿에서 Redshift 사용자 이름 및 암호 보안 인증 정보를 검색할 수 있습니다. Redshift 보안 인증을 자동으로 제공하려면 `secret.id` 파라미터를 사용하세요. Redshift 보안 인증 시크릿을 만드는 방법에 대한 자세한 내용은 [AWS Secrets Manager 데이터베이스 보안 암호 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html)을 참조하세요.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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의 전체 함수 목록은 [내장 함수](https://spark.apache.org/docs/latest/api/sql/index.html)를 참조하세요.
+ 집계 함수
  + avg
  + count
  + 최대
  + min
  + sum
  + stddev\$1samp
  + stddev\$1pop
  + var\$1samp
  + var\$1pop
+ 부울 연산자
  + in
  + isnull
  + isnotnull
  + contains
  + endswith
  + startswith
+ 논리 연산자
  + 및
  + 또는
  + not(또는 \$1)
+ 수학 함수
  + \$1
  + -
  + \$1
  + /
  + -(단항)
  + abs
  + acos
  + asin
  + atan
  + ceil
  + cos
  + exp
  + floor
  + greatest
  + least
  + log10
  + pi
  + pow
  + round
  + sin
  + sqrt
  + tan
+ 기타 함수
  + cast
  + coalesce
  + decimal
  + 다음과 같은 경우
  + in
+ 관계형 연산자
  + \$1=
  + =
  + >
  + >=
  + <
  + <=
+ 문자열 함수
  + ASCII
  + lpad
  + rpad
  + translate
  + upper
  + lower
  + length
  + trim
  + ltrim
  + rtrim
  + like
  + substring
  + concat
+ 시간 및 날짜 함수
  + add\$1months
  + 날짜
  + date\$1add
  + date\$1sub
  + date\$1trunc
  + timestamp
  + trunc
+ 수학적 연산
  + CheckOverflow
  + 정밀성 증진
+ 관계형 연산
  + Aliases(예: AS)
  + 사례: 언제
  + Distinct
  + InSet
  + Joins and cross joins
  + 한도
  + Unions, union all
  + ScalarSubquery
  + Sorts(오름차순 및 내림차순)
  + UnscaledValue

# 기타 구성 옵션
<a name="spark-redshift-connector-other-config"></a>

이 페이지에서 Amazon Redshift Spark 커넥터에 지정할 수 있는 옵션에 관한 설명을 확인합니다.

## 문자열 열의 최대 크기
<a name="spark-redshift-connector-other-config-max-size"></a>

Redshift는 VARCHAR(256)로 저장되는 테이블 생성 시 문자열 열을 텍스트 열로 생성합니다. 더 큰 크기를 지원하는 열을 원하면 maxlength를 사용하여 문자열 열의 최대 길이를 지정할 수 있습니다. 다음은 `maxlength`를 지정하는 방법의 예입니다.

```
columnLengthMap.foreach { case (colName, length) =>
  val metadata = new MetadataBuilder().putLong("maxlength", length).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## 열 유형
<a name="spark-redshift-connector-other-config-column-type"></a>

열 유형을 설정하려면 `redshift_type` 필드를 사용합니다.

```
columnTypeMap.foreach { case (colName, colType) =>
  val metadata = new MetadataBuilder().putString("redshift_type", colType).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## 열에 대한 압축 인코딩
<a name="spark-redshift-connector-other-config-compression-encoding"></a>

 열에서 특정 압축 인코딩을 사용하려면 인코딩 필드를 사용하세요. 지원되는 압축 인코딩의 전체 목록은 [압축 인코딩](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html)을 참조하세요.

## 열에 대한 설명
<a name="spark-redshift-connector-other-config-description"></a>

설명을 설정하려면 `description` 필드를 사용합니다.

## Redshift와 Amazon S3 간의 인증
<a name="spark-redshift-connector-other-config-unload-as-text"></a>

 기본적으로 결과는 Parquet 형식으로 Amazon S3에 언로드됩니다. 파이프로 구분된 텍스트 파일로 결과를 언로드하려면 다음 옵션을 지정합니다.

```
.option("unload_s3_format", "TEXT")
```

## 푸시다운 문
<a name="spark-redshift-connector-other-config-lazy-pushdown"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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/ko_kr/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/ko_kr/redshift/latest/mgmt/spark-redshift-connector-data-types.html)

## 복잡한 데이터 형식
<a name="spark-redshift-connector-complex-data-types"></a>

 spark 커넥터를 사용하여 `ArrayType`, `MapType`, `StructType`과 같은 Spark 복합 데이터 형식을 Redshift SUPER 데이터 형식 열에 읽고 쓸 수 있습니다. 읽기 작업 중에 스키마를 제공하는 경우 열의 데이터는 중첩된 형식을 포함하여 Spark에서 해당 복합 형식으로 변환됩니다 또한 `autopushdown`을 활성화하면 중첩된 속성, 맵 값 및 배열 인덱스의 투영이 Redshift로 푸시다운되므로 데이터의 일부만 액세스할 때 중첩된 전체 데이터 구조를 더 이상 언로드할 필요가 없습니다.

커넥터에서 데이터 프레임을 작성할 때 `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` 데이터 구조의 모든 키는 문자열 형식이어야 하며 모든 값은 int와 같은 동일한 형식이어야 한다는 점에 유의합니다.

다음 예는 열 `hello`에서 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` 키만 있어야 합니다.
+ 복잡한 형식을 Redshift에 쓰기 위한 임시 형식 값은 `CSV`, `CSV GZIP` 및 `PARQUET `만 지원됩니다. `AVRO `를 사용하려고 하면 예외가 발생합니다.

# Amazon Redshift용 ODBC 드라이버 버전 2.x 연결 구성
<a name="odbc20-install"></a>

ODBC 연결을 사용하여 여러 서드 파티 SQL 클라이언트 도구 및 애플리케이션에서 Amazon Redshift 클러스터에 연결할 수 있습니다. 클라이언트 도구가 JDBC를 지원하는 경우에는 JDBC의 구성 용이성 때문에 ODBC가 아닌 JDBC 연결 유형을 사용하는 것이 좋을 수도 있습니다. 하지만 클라이언트 도구가 JDBC를 지원하지 않는 경우, 이 섹션의 단계에 따라 클라이언트 컴퓨터 또는 Amazon EC2 인스턴스에서 ODBC 연결을 설정할 수 있습니다.

Amazon Redshift는 Linux, Windows, Mac 운영 체제용의 64비트 ODBC 드라이버를 제공합니다. 32비트 ODBC 드라이버는 단종되었습니다. 긴급 보안 패치를 제외하고 32비트 ODBC 드라이버로의 추가 업데이트는 릴리스되지 않습니다.

ODBC 드라이버 변경 사항에 대한 최신 정보는 [변경 로그](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/CHANGELOG.md)를 참조하세요.

**Topics**
+ [ODBC URL 가져오기](odbc20-getting-url.md)
+ [Microsoft Windows에서 Amazon Redshift ODBC 드라이버 사용](odbc20-install-config-win.md)
+ [Linux에서 Amazon Redshift ODBC 드라이버 사용](odbc20-install-config-linux.md)
+ [Apple macOS에서 Amazon Redshift ODBC 드라이버 사용](odbc20-install-config-mac.md)
+ [인증 방법](odbc20-authentication-ssl.md)
+ [데이터 유형 변환](odbc20-converting-data-types.md)
+ [ODBC 드라이버 옵션](odbc20-configuration-options.md)
+ [이전 ODBC 드라이버 버전](odbc20-previous-versions.md)

# ODBC URL 가져오기
<a name="odbc20-getting-url"></a>

Amazon Redshift는 Amazon Redshift 콘솔에 클러스터의 ODBC URL을 표시합니다. 이 URL에는 클라이언트 컴퓨터와 데이터베이스 간의 연결을 설정하는 데 필요한 정보가 포함되어 있습니다.

ODBC URL의 형식은 다음과 같습니다.

```
Driver={driver}; Server=endpoint_host; Database=database_name; UID=user_name; PWD=password; Port=port_number
```

위에 나와 있는 형식의 필드는 다음과 같은 값을 가집니다.


| Field | 값 | 
| --- | --- | 
| Driver | 사용할 64비트 ODBC 드라이버의 이름은 Amazon Redshift ODBC 드라이버(x64)입니다. | 
| Server | Amazon Redshift 클러스터의 엔드포인트 호스트입니다. | 
| Database | 클러스터에서 생성한 데이터베이스입니다. | 
| UID | 데이터베이스 연결 권한을 갖는 데이터베이스 사용자 계정의 사용자 이름입니다. 이 값은 클러스터 수준 권한이 아니라 데이터베이스 수준 권한이지만, 클러스터를 시작할 때 설정한 Redshift 관리자 계정을 사용할 수 있습니다. | 
| PWD | 데이터베이스에 연결하기 위한 데이터베이스 사용자 계정 암호입니다. | 
| Port | 클러스터를 시작할 때 지정한 포트 번호입니다. 방화벽이 있는 경우에는 이 포트가 사용할 수 있게 열려있어야 합니다. | 

다음은 ODBC URL의 예입니다. 

```
Driver={Amazon Redshift ODBC Driver (x64)}; Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com; Database=dev; UID=adminuser; PWD=insert_your_admin_user_password_here; Port=5439
```

ODBC URL을 찾을 수 있는 위치에 대한 자세한 내용은 [클러스터 연결 문자열 찾기](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-connection-string)를 참조하세요.

# Microsoft Windows에서 Amazon Redshift ODBC 드라이버 사용
<a name="odbc20-install-config-win"></a>

Amazon Redshift 데이터 웨어하우스에 액세스하는 클라이언트 컴퓨터에 Amazon Redshift ODBC 드라이버를 설치해야 합니다. 드라이버를 설치하는 컴퓨터마다 다음과 같은 시스템 요구 사항이 적용됩니다.
+ 시스템에 대한 관리자 권한 
+ 시스템이 다음 시스템 요구 사항 충족
  + 다음 운영 체제 중 하나:
    + Windows 10 또는 8.1
    + Windows Server 2019, 2016 또는 2012
  + 사용 가능한 디스크 공간 100MB
  + 설치된 64비트 Windows용 Visual 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 드라이버(x64)**입니다.

1. [Amazon Redshift ODBC 드라이버 버전 2.x 라이선스](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE)를 검토하세요.

1. .msi 파일을 두 번 클릭한 후 마법사의 단계에 따라 드라이버를 설치합니다.

# ODBC 연결을 위한 시스템 DSN 항목 생성
<a name="odbc20-dsn-win"></a>

ODBC 드라이버를 다운로드하여 설치한 후에는 데이터 원본 이름(DSN) 항목을 클라이언트 컴퓨터 또는 Amazon EC2 인스턴스에 추가합니다. SQL 클라이언트 도구는 이 데이터 원본을 사용하여 Amazon Redshift 데이터베이스에 연결할 수 있습니다.

사용자 DSN 대신 시스템 DSN을 생성하는 것이 좋습니다. 일부 애플리케이션은 다른 데이터베이스 사용자 계정을 사용하여 데이터를 로드하며, 다른 데이터베이스 사용자 계정으로 생성된 사용자 DSN을 감지하지 못할 수 있습니다.

**참고**  
AWS Identity and Access Management(IAM) 자격 증명 또는 자격 증명 공급자(IdP) 자격 증명을 사용한 인증의 경우 추가 단계가 필요합니다. 자세한 내용은 [IAM 자격 증명을 사용하도록 JDBC 또는 ODBC 연결 구성](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html)을 참조하세요.

ODBC 연결을 위한 시스템 DSN 항목을 생성하려면:

1. **시작** 메뉴에서 ‘ODBC 데이터 소스’를 입력합니다. **ODBC Data Sources(ODBC 데이터 소스)**를 선택합니다.

   Amazon Redshift에 연결하는 데 사용하는 클라이언트 애플리케이션과 동일한 비트를 가진 ODBC 데이터 원본 관리자를 선택해야 합니다.

1. **ODBC Data Source Administrator(ODBC 데이터 소스 관리자)**에서 **Driver(드라이버)** 탭을 선택하고 **Amazon Redshift ODBC Driver (x64)** 드라이버 폴더를 찾습니다.

1. 해당 컴퓨터의 모든 사용자가 이용할 수 있도록 드라이버를 구성하려면 **시스템 DSN(System DSN)** 탭을 선택하고, 본인의 데이터베이스 사용자 계정에서만 이용할 수 있도록 드라이버를 구성하려면 **사용자 DSN(User DSN)** 탭을 선택합니다.

1. **추가**를 선택합니다. **새 데이터 원본 생성(Create New Data Source)** 창이 열립니다.

1. **Amazon Redshift ODBC 드라이버(x64)**를 선택하고 **Finish(마침)**를 선택합니다. **Amazon Redshift ODBC 드라이버 DSN 설정(Amazon Redshift ODBC Driver DSN Setup)** 창이 열립니다.

1. **Connection Settings(연결 설정)** 섹션에 다음 정보를 입력합니다.
   + 

**데이터 소스 이름**  
 데이터 소스 이름을 입력합니다. 예를 들어 *Amazon Redshift 시작 안내서*에 따른 경우 `exampleclusterdsn`을 입력하면 이 DSN과 연결할 클러스터를 기억하기 쉽습니다.
   + 

**Server**  
 Amazon Redshift 클러스터의 엔드포인트 호스트를 지정합니다. 이 정보는 Amazon Redshift 콘솔의 클러스터 세부 정보 페이지에서 찾을 수 있습니다. 자세한 내용은 [Amazon Redshift에서 연결 구성](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html)을 참조하세요.
   + 

**Port**  
 데이터베이스가 사용하는 포트 번호를 입력합니다. 클러스터를 생성, 수정 또는 마이그레이션할 때 선택한 포트에 따라 선택한 포트에 대한 액세스를 허용합니다.
   + 

**데이터베이스**  
 Amazon Redshift 데이터베이스의 이름을 입력합니다. 데이터베이스 이름을 지정하지 않고 클러스터를 시작한 경우 `dev`를 입력합니다. 그렇지 않으면 시작 프로세스 중에 선택한 이름을 사용합니다. *Amazon Redshift 시작 안내서*에 따른 경우 `dev`를 입력합니다.

1. **Authentication(인증)** 섹션에서 표준 또는 IAM 인증을 구성하는 구성 옵션을 지정합니다.

1. **SSL Options(SSL 옵션)**을 선택하고 다음의 값을 지정합니다.
   + 

**인증 모드**  
SSL(Secure Sockets Layer)의 처리 모드를 선택합니다. 테스트 환경에서는 `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 Support 팀에 문의하여 문제를 해결할 수 있습니다. 로그 생성에 대한 자세한 내용은 (LINK)를 참조하세요.

1.  **확인**을 선택합니다.

# Linux에서 Amazon Redshift ODBC 드라이버 사용
<a name="odbc20-install-config-linux"></a>

Amazon Redshift 데이터 웨어하우스에 액세스하는 클라이언트 컴퓨터에 Amazon Redshift ODBC 드라이버를 설치해야 합니다. 드라이버를 설치하는 컴퓨터마다 다음과 같은 시스템 요구 사항이 적용됩니다.
+ 시스템에 대한 루트 액세스 권한
+ 다음 배포판 중 하나:
  + Red Hat® Enterprise Linux®(RHEL) 8 이상
  + CentOS 8 이상
+ 사용 가능한 디스크 공간 150MB
+ unixODBC 2.2.14 이상
+ glibc 2.26 이상

# Amazon Redshift ODBC 드라이버 다운로드 및 설치
<a name="odbc20-install-linux"></a>

Linux용 Amazon Redshift ODBC 드라이버 버전 2.x를 다운로드하고 설치하려면:

1.  다음 드라이버를 다운로드합니다.
   + [x86 64비트 RPM 드라이버 버전 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.x86_64.rpm) 
   + [ARM 64비트 RPM 드라이버 버전 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.aarch64.rpm) 
**참고**  
32비트 ODBC 드라이버는 단종되었습니다. 긴급 보안 패치를 제외하고 추가 업데이트는 릴리스되지 않습니다.

1.  패키지를 다운로드한 위치로 이동한 다음, 다음 명령 중 하나를 실행합니다. Linux 배포판에 따라 올바른 명령을 사용하세요.

   RHEL 및 CentOS 운영 체제에서 다음 명령을 실행합니다.

   ```
   yum --nogpgcheck localinstall RPMFileName
   ```

   `RPMFileName`을 RPM 패키지 파일 이름으로 바꿉니다. 예를 들어 다음은 64비트 드라이버를 설치하는 명령입니다.

   ```
   yum --nogpgcheck localinstall AmazonRedshiftODBC-64-bit-2.x.xx.xxxx.x86_64.rpm
   ```

# ODBC 드라이버 관리자를 사용하여 ODBC 드라이버 구성
<a name="odbc20-config-linux"></a>

Linux에서 ODBC 드라이버 관리자를 사용하여 ODBC 연결 설정을 구성합니다. ODBC 드라이버 관리자는 구성 파일을 사용하여 ODBC 데이터 원본과 드라이버를 정의 및 구성합니다. 또한 사용하는 운영 체제에 따라 ODBC 드라이버 관리자도 달라집니다.

## unixODBC 드라이버 관리자를 사용하여 ODBC 드라이버 구성
<a name="odbc20-config-unixodbc-linux"></a>

Amazon Redshift ODBC 드라이버를 구성하려면 다음 파일이 필요합니다.
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 기본 위치에 드라이버를 설치한 경우에는 `amazon.redshiftodbc.ini` 구성 파일이 `/opt/amazon/redshiftodbcx64`에 있습니다.

 또한 `/opt/amazon/redshiftodbcx64`에 샘플 `odbc.ini` 및 `odbcinst.ini` 파일이 있습니다. 이러한 파일을 Amazon Redshift ODBC 드라이버 및 데이터 원본 이름(DSN)을 구성하는 예제로 사용할 수 있습니다.

 Amazon Redshift ODBC 드라이버 설치 디렉터리를 구성 파일용으로 사용하는 것은 바람직하지 않습니다. 설치된 디렉터리의 샘플 파일은 오직 예를 제공하기 위한 용도일 뿐입니다. 나중에 Amazon Redshift ODBC 드라이버를 다시 설치하거나 새 버전으로 업그레이드하면 설치 디렉터리를 덮어씁니다. 설치 디렉터리의 파일에 대한 변경 사항은 손실됩니다.

 이를 방지하려면 `amazon.redshiftodbc.ini` 파일을 설치 디렉터리가 아닌 다른 디렉터리에 복사합니다. 이 파일을 사용자의 홈 디렉터리로 복사하는 경우에는 파일 이름 앞에 마침표(.)를 추가하여 숨김 파일로 지정하세요.

 `odbc.ini` 및 `odbcinst.ini` 파일의 경우 사용자의 홈 디렉터리에 있는 구성 파일을 사용하거나 다른 디렉터리에 새 버전을 생성합니다. 기본적으로 Linux 운영 체제는 사용자의 홈 디렉터리(`/home/$USER` 또는 `~/.`)에 `odbc.ini` 파일과 `odbcinst.ini` 파일이 있어야 합니다. 이러한 기본 파일은 숨김 파일이기 때문에 파일 이름 앞에 마침표(.)가 있습니다. 이러한 파일은 `-a` 플래그를 사용하여 디렉터리 내용을 나열하는 경우에만 표시됩니다.

 `odbc.ini` 및 `odbcinst.ini` 파일에 대해 어떤 옵션을 선택하든지 파일을 수정하여 드라이버 및 DSN 구성 정보를 추가합니다. 새로운 파일을 생성할 때도 마찬가지로 환경 변수를 설정하여 구성 파일의 위치를 지정해야 합니다.

 기본적으로 ODBC 드라이버 관리자는 홈 디렉터리에 있는 숨겨진 버전의 `odbc.ini` 및 `odbcinst.ini` 구성 파일(`.odbc.ini` 및 `.odbcinst.ini`)을 사용하도록 구성됩니다. 또한 드라이버 설치 디렉터리에 있는 `amazon.redshiftodbc.ini` 파일을 사용하도록 구성됩니다. 이러한 구성 파일을 다른 위치에 저장하는 경우 드라이버 관리자가 파일을 찾을 수 있도록 다음에 설명된 환경 변수를 설정합니다.

 unixODBC 사용하는 경우 다음과 같이 합니다.
+  `ODBCINI`를 `odbc.ini` 파일의 전체 경로 및 파일 이름으로 설정합니다.
+  `ODBCSYSINI`를 `odbcinst.ini` 파일이 포함된 디렉토리의 전체 경로로 설정합니다.
+  `AMAZONREDSHIFTODBCINI`를 `amazon.redshiftodbc.ini` 파일의 전체 경로 및 파일 이름으로 설정합니다.

다음은 위의 값을 설정하는 예입니다.

```
export ODBCINI=/usr/local/odbc/odbc.ini 
export ODBCSYSINI=/usr/local/odbc 
export AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini
```

## Linux에서 데이터 소스 이름(DSN)을 사용하여 연결 구성
<a name="odbc20-dsn-linux"></a>

데이터 소스 이름(DSN)을 사용하여 데이터 스토어에 연결할 경우 데이터 소스 이름(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 시스템 요구 사항:
  + 64비트 버전의 Apple macOS 버전 11.7 이상(예: Apple macOS Big Sur, Monterey, Ventura 이상)이 필요합니다. Redshift ODBC 드라이버는 64비트 클라이언트 애플리케이션만 지원합니다.
  + 사용 가능한 디스크 공간 150MB
  + 드라이버는 iODBC 3.52.9 이상 또는 unixODBC 2.3.7 이상으로 빌드된 애플리케이션을 지원합니다.

# Amazon Redshift ODBC 드라이버 다운로드 및 설치
<a name="odbc20-install-mac"></a>

Apple macOS용 Amazon Redshift ODBC 드라이버를 다운로드하여 설치하려면 다음 절차를 따르세요. Amazon Redshift와 함께 사용하도록 인증되었고 특정 드라이버가 필요한 서드 파티 애플리케이션을 실행하고 있다면 다른 드라이버만 사용합니다.

ODBC 드라이버를 다운로드하고 설치하려면: 

1. [64비트 ODBC 드라이버 버전 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit.2.1.15.0.universal.pkg)을 다운로드합니다. 

   이 드라이버는 x86\$164 아키텍처와 arm64 아키텍처 모두에서 지원됩니다. 이 드라이버의 이름은 **Amazon Redshift ODBC 드라이버(x64)**입니다.

1. [Amazon Redshift ODBC 드라이버 버전 2.x 라이선스](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE)를 검토하세요.

1. .pkg 파일을 두 번 클릭한 후 마법사의 단계에 따라 드라이버를 설치합니다. 또는 다음 명령을 실행합니다.

   ```
   sudo installer -pkg PKGFileName -target /
   ```

   `PKGFileName`을 pkg 패키지 파일 이름으로 바꿉니다. 예를 들어 다음은 64비트 드라이버를 설치하는 명령입니다.

   ```
   sudo installer -pkg ./AmazonRedshiftODBC-64-bit.X.X.XX.X.universal.pkg -target /
   ```

# ODBC 드라이버 관리자를 사용하여 ODBC 드라이버 구성
<a name="odbc20-config-mac"></a>

Mac에서 ODBC 드라이버 관리자를 사용하여 ODBC 연결 설정을 구성합니다. ODBC 드라이버 관리자는 구성 파일을 사용하여 ODBC 데이터 원본과 드라이버를 정의 및 구성합니다. 또한 사용하는 운영 체제에 따라 ODBC 드라이버 관리자도 달라집니다.

## iODBC 또는 unixODBC 드라이버 관리자를 사용하여 ODBC 드라이버 구성
<a name="odbc20-config-iodbc-mac"></a>

Amazon Redshift ODBC 드라이버를 구성하려면 다음 파일이 필요합니다.
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 기본 위치에 드라이버를 설치한 경우에는 `amazon.redshiftodbc.ini` 구성 파일이 `/opt/amazon/redshiftodbcx64`에 있습니다.

 또한 `/opt/amazon/redshiftodbcx64`에 샘플 `odbc.ini` 및 `odbcinst.ini` 파일이 있습니다. 이러한 파일을 Amazon Redshift ODBC 드라이버 및 데이터 원본 이름(DSN)을 구성하는 예제로 사용할 수 있습니다. 설치된 디렉터리의 샘플 파일은 오직 예를 제공하기 위한 용도일 뿐입니다.

 Amazon Redshift ODBC 드라이버 설치 디렉터리를 구성 파일용으로 사용하는 것은 바람직하지 않습니다. 나중에 Amazon Redshift ODBC 드라이버를 다시 설치하거나 새 버전으로 업그레이드하면 설치 디렉터리를 덮어씁니다. 설치 디렉터리의 파일에 대한 변경 사항은 손실됩니다.

 이를 방지하려면 `odbc.ini`, `odbcinst.ini` 및 `amazon.redshiftodbc.ini` 파일을 설치 디렉터리가 아닌 다른 디렉터리에 복사합니다. 이러한 파일을 사용자의 홈 디렉터리로 복사하는 경우에는 파일 이름 앞에 마침표(.)를 추가하여 숨김 파일로 지정하세요.

 파일을 수정하여 DSN 구성 정보를 추가합니다. 새로운 파일을 생성할 때도 마찬가지로 환경 변수를 설정하여 구성 파일의 위치를 지정해야 합니다.

다음은 이러한 환경 변수 설정의 예입니다.

```
export ODBCINI=/Library/ODBC/odbc.ini
export ODBCSYSINI=/Library/ODBC
export ODBCINSTINI=${ODBCSYSINI}/odbcinst.ini
```

명령줄 애플리케이션의 경우: 쉘 시작 파일(예: `~/.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/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  IAM 프로필  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  IAM 자격 증명  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  AD FS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  JWT  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 
|  Okta  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  Ping Federate  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  브라우저 Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  브라우저 SAML  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  인증 프로필  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  브라우저 Azure AD OAUTH2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)   별도로 설정되지 않는 경우 **호스트(Host)**에서 **ClusterID**와 **리전(Region)**을 설정해야 합니다.   | 
|  AWS IAM Identity Center  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 

## 외부 보안 인증 서비스 사용
<a name="odbc20-authentication-external"></a>

Amazon Redshift ODBC 드라이버의 Windows 버전은 AD FS, Azure AD 및 Okta에 대한 기본 제공 지원 외에, 다른 보안 인증 서비스에 대한 지원도 제공합니다. 이 드라이버는 선택한 SAML 기반 보안 인증 공급자 플러그인을 사용하여 연결을 인증할 수 있습니다.

Windows에서 외부 보안 인증 서비스를 구성하려면

1. 필요에 따라 보안 인증 공급자 플러그인 및 기타 인증 파라미터를 지정하는 IAM 프로필을 생성합니다. 이 프로필은 ASCII로 인코딩해야 하며 다음 키-값 페어를 포함해야 합니다. 여기서 `PluginPath`는 플러그인 애플리케이션의 전체 경로입니다.

   ```
   plugin_name = PluginPath
   ```

   예:

   ```
   plugin_name = C:\Users\kjson\myapp\CredServiceApp.exe 
   ```

   프로필을 생성하는 방법에 대한 자세한 내용은 Amazon Redshift 클러스터 관리 가이드에서 [구성 프로필 사용](https://docs.aws.amazon.com/redshift/latest/mgmt/options-for-providing-iam-credentials.html#using-configuration-profile)을 참조하세요.

1. 이 프로필을 사용하도록 드라이버를 구성합니다. 이 드라이버는 프로필에 지정된 인증 설정을 감지하고 사용합니다.

# 데이터 유형 변환
<a name="odbc20-converting-data-types"></a>

Amazon Redshift ODBC 드라이버 버전 2.x는 Amazon Redshift 및 SQL 데이터 유형 간 변환으로 많은 일반 데이터 유형을 지원합니다.

다음 표에는 지원되는 데이터 형식 매핑이 나와 있습니다.


| Amazon Redshift 형식 | SQL 형식 | 
| --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  | 
|  BOOLEAN  |  SQL\$1BIT  | 
|  CHAR  |  SQL\$1CHAR  | 
|  DATE  |  SQL\$1TYPE\$1DATE  | 
|  DECIMAL  |  SQL\$1NUMERIC  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  | 
|  GEOGRAPHY  |  SQL\$1 LONGVARBINARY  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  | 
|  INTEGER  |  SQL\$1INTEGER  | 
|  REAL  |  SQL\$1REAL  | 
|  SMALLINT  |  SQL\$1SMALLINT  | 
|  SUPER  |  SQL\$1LONGVARCHAR  | 
|  TEXT  |  SQL\$1LONGVARCHAR  | 
|  TIME  |  SQL\$1TYPE\$1TIME  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  VARBYTE  |  SQL\$1LONGVARBINARY  | 
|  VARCHAR  |  SQL\$1VARCHAR  | 

# ODBC 드라이버 옵션
<a name="odbc20-configuration-options"></a>

드라이버 구성 옵션을 사용하여 Amazon Redshift ODBC 드라이버의 동작을 제어할 수 있습니다. 드라이버 옵션은 대소문자를 구분하지 않습니다.

Microsoft Windows에서는 일반적으로 데이터 원본 이름(DSN)을 구성할 때 드라이버 옵션을 설정합니다. 프로그래밍 방식으로 연결할 때 또는 `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN`에서 레지스트리 키를 추가하거나 변경하여 연결 문자열에 드라이버 옵션을 설정할 수도 있습니다.

Linux에서는 `odbc.ini` 및 `amazon.redshiftodbc.ini` 파일에서 드라이버 구성 옵션을 설정합니다. `amazon.redshiftodbc.ini` 파일에서 설정하는 구성 옵션이 모든 연결에 적용됩니다. 반대로 `odbc.ini` 파일에서 설정하는 구성 옵션은 연결에 따라 다릅니다. `odbc.ini`에서 설정하는 구성 옵션이 `amazon.redshiftodbc.ini`에서 설정하는 구성 옵션보다 우선합니다.

다음은 Amazon Redshift ODBC 드라이버 버전 2.x 드라이버에 지정할 수 있는 옵션에 대한 설명입니다.

## AccessKeyID
<a name="odbc20-accesskeyid-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

 사용자 또는 역할에 대한 IAM 액세스 키입니다. 이 파라미터를 설정할 경우 **SecretAccessKey**도 지정해야 합니다

이 파라미터는 선택 사항입니다.

## app\$1id
<a name="odbc20-app-id-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

Amazon Redshift 애플리케이션과 연결된 Okta 제공 고유 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>
+ **기본값** - 표준(Standard)
+ **데이터 형식** – 문자열

이 옵션은 Amazon Redshift ODBC 드라이버 DSN 설정 대화 상자를 사용하여 DSN을 구성할 때 드라이버가 사용하는 인증 모드를 지정합니다.
+  표준(Standard): Amazon Redshift 사용자 이름과 암호를 사용하는 표준 인증입니다.
+  AWS Profile(프로필): 프로필을 사용하는 IAM 인증입니다.
+  AWS IAM Credentials(IAM 보안 인증 정보): IAM 보안 인증 정보를 사용하는 IAM 인증입니다.
+  자격 증명 공급자(Identity Provider): AD FS: Active Directory Federation Services(AD FS)를 사용하는 IAM 인증입니다.
+  ID 제공업체: 인증 플러그인: AWS IAM Identity Center 토큰 또는 AWS IAM Identity Center에 연결된 웹 ID 제공업체의 OpenID Connect(OIDC) JSON 기반 자격 증명 토큰(JWT)을 수락하는 권한 부여 플러그인입니다.
+  자격 증명 공급자(Identity Provider): Azure AD: Azure AD 포털을 사용한 IAM 인증입니다.
+  자격 증명 공급자(Identity Provider): JWT: JSON 웹 토큰(JWT)을 사용한 IAM 인증입니다.
+  자격 증명 공급자(Identity Provider): Okta: Okta를 사용한 IAM 인증입니다.
+  자격 증명 공급자(Identity Provider): PingFederate: PingFederate를 사용한 IAM 인증입니다.

이 옵션은 Windows 드라이버에서 Amazon Redshift ODBC 드라이버 DSN 설정 대화 상자를 사용하여 DSN을 구성하는 경우에만 사용할 수 있습니다. 연결 문자열 또는 Windows 이외의 시스템을 사용하여 연결을 구성하면, 드라이버가 지정된 자격 증명에 따라 표준, AWS 프로필 또는 AWS IAM 보안 인증 중 어떤 인증 방법을 사용할지 자동으로 결정합니다. 자격 증명 공급자를 사용하려면 **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** 파라미터에 지정되어 있지 않습니다.

이 파라미터는 선택 사항입니다.

## 압축
<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, 브라우저 Azure 및 브라우저 SAML 인증 유형을 사용할 경우 Amazon Redshift에 대한 SAML 응답에서 수신된 DbGroups를 필터링하기 위해 지정할 수 있는 정규식입니다.

이 파라미터는 선택 사항입니다.

## 드라이버
<a name="odbc20-driver-option"></a>
+ **기본값** - Amazon Redshift ODBC 드라이버(x64)
+ **데이터 형식** – 문자열

드라이버의 이름입니다. 지원되는 유일한 값은 **Amazon Redshift ODBC 드라이버(x64)(Amazon Redshift ODBC Driver (x64))**입니다.

**DSN**를 설정하지 않을 경우 이 파라미터가 필요합니다.

## DSN
<a name="odbc20-dsn-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

드라이버 데이터 소스의 이름입니다. 애플리케이션이 SQLDriverConnect API에 DSN을 지정합니다.

**드라이버(Driver)**를 설정하지 않을 경우 이 파라미터가 필요합니다.

## EndpointUrl
<a name="odbc20-endpointurl-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

IAM 인증을 위해 Amazon Redshift Coral Service와 통신하는 데 사용되는 재정의 엔드포인트입니다.

이 파라미터는 선택 사항입니다.

## ForceLowercase
<a name="odbc20-forcelowercase-option"></a>
+ **기본값** - 0
+ **데이터 형식** – 부울

드라이버가 Single Sing-On 인증을 사용할 때 자격 증명 공급자에서 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 인증 방법(액세스 키와 비밀 키의 페어, 프로필 또는 보안 인증 서비스 사용) 중 하나를 사용합니다.
+  0 \$1 FALSE. 드라이버가 표준 인증(데이터베이스 사용자 이름 및 암호 사용)을 사용합니다.

이 파라미터는 선택 사항입니다.

## idc\$1client\$1display\$1name
<a name="odbc20-idc_client_display_name-option"></a>
+ **기본값** - Amazon Redshift ODBC 드라이버
+ **데이터 형식** – 문자열

BrowserIdcAuthPlugin을 사용하는 클라이언트에 사용할 표시 이름입니다.

이 파라미터는 선택 사항입니다.

## idc\$1region
<a name="odbc20-idc_region"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

AWS IAM Identity Center 인스턴스가 위치한 AWS 리전입니다.

이 파라미터는 plugin\$1name 구성 옵션에서 `BrowserIdcAuthPlugin`을 사용하여 인증하는 경우에만 필요합니다.

## idp\$1host
<a name="odbc20-idp-host-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

Amazon Redshift에 인증하는 데 사용하는 자격 증명 공급자(IdP) 호스트입니다.

이 파라미터는 선택 사항입니다.

## idp\$1port
<a name="odbc20-idp-port-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 정수

Amazon Redshift에 인증하는 데 사용하는 자격 증명 공급자(IdP)용 포트입니다. 클러스터를 생성, 수정 또는 마이그레이션할 때 선택한 포트에 따라 선택한 포트에 대한 액세스를 허용합니다.

이 파라미터는 선택 사항입니다.

## idp\$1response\$1timeout
<a name="odbc20-idp-response-timeout-option"></a>
+ **기본값** – 120
+ **데이터 형식** – 정수

브라우저 플러그인을 통해 SAML 또는 Azure AD 서비스를 사용할 때 드라이버가 자격 증명 공급자의 SAML 응답을 기다리는 시간(초)입니다.

이 파라미터는 선택 사항입니다.

## idp\$1tenant
<a name="odbc20-idp-tenant-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

 Amazon Redshift 애플리케이션과 연결된 Azure AD 테넌트 ID입니다.

Azure AD 서비스를 통해 인증하는 경우 이 파라미터는 필수입니다.

## idp\$1partition
<a name="odbc20-idp-partition-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

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
+ **데이터 형식** – 부울

드라이버가 프록시 서버를 통해 아이덴티티 제공업체(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(프로필)**)에 지정된 함께 묶은 역할 프로필을 대신 사용합니다.

이 파라미터는 선택 사항입니다.

## issuer\$1url
<a name="odbc20-issuer_url"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

 AWS IAM Identity Center 서버의 인스턴스 엔드포인트를 가리킵니다.

이 파라미터는 plugin\$1name 구성 옵션에서 `BrowserIdcAuthPlugin`을 사용하여 인증하는 경우에만 필요합니다.

## KeepAlive
<a name="odbc20-keepalive-option"></a>
+ **기본값** – 1
+ **데이터 형식** – 부울

드라이버가 TCP KeepAlive를 사용하여 연결 시간 초과를 방지하는지 여부를 지정하는 부울 값입니다.
+  1 \$1 TRUE: 드라이버가 TCP KeepAlive를 사용하여 연결 시간 초과를 방지합니다.
+  0 \$1 FALSE. 드라이버가 TCP KeepAlive를 사용하지 않습니다.

이 파라미터는 선택 사항입니다.

## KeepAliveCount
<a name="odbc20-keepalivecount-option"></a>
+ **기본값** - 0
+ **데이터 형식** – 정수

연결이 끊긴 것으로 간주할 때까지 손실될 수 있는 TCP keepalive 패킷의 수입니다. 이 파라미터를 0으로 설정하면 드라이버가 이 설정에 시스템 기본값을 사용합니다.

이 파라미터는 선택 사항입니다.

## KeepAliveInterval
<a name="odbc20-keepaliveinterval-option"></a>
+ **기본값** - 0
+ **데이터 형식** – 정수

TCP keepalive가 재전송되는 시간 간격(초)입니다. 이 파라미터를 0으로 설정하면 드라이버가 이 설정에 시스템 기본값을 사용합니다.

이 파라미터는 선택 사항입니다.

## KeepAliveTime
<a name="odbc20-keepalivetime-option"></a>
+ **기본값** - 0
+ **데이터 형식** – 정수

드라이버가 TCP keepalive 패킷을 전송할 때까지 아무런 작업 없이 대기하는 시간(초)입니다. 이 파라미터를 0으로 설정하면 드라이버가 이 설정에 시스템 기본값을 사용합니다.

이 파라미터는 선택 사항입니다.

## listen\$1port
<a name="odbc20-listen-port-option"></a>
+ **기본값** – 7890
+ **데이터 형식** – 정수

드라이버가 브라우저 플러그인을 통해 SAML, Azure AD 또는 AWS IAM Identity Center 서비스를 사용할 때 ID 제공업체 또는 권한 부여 코드로부터 SAML 응답을 받는 데 사용하는 포트입니다.

이 파라미터는 선택 사항입니다.

## login\$1url
<a name="odbc20-login-url-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

일반 브라우저 SAML 플러그인을 사용할 때 자격 증명 공급자의 웹 사이트에 있는 리소스의 URL입니다.

브라우저 플러그인을 통해 SAML 또는 Azure AD 서비스로 인증하는 경우 이 파라미터는 필수입니다.

## loginToRp
<a name="odbc20-logintorp-option"></a>
+ **기본값** - urn:amazon:webservices
+ **데이터 형식** – 문자열

AD FS 인증 유형에 사용할 신뢰 당사자 트러스트입니다.

이 문자열은 선택 사항입니다.

## LogLevel
<a name="odbc20-loglevel-option"></a>
+ **기본값** - 0
+ **데이터 형식** – 정수

이 속성을 사용하여 드라이버에서 로깅을 활성화하거나 비활성화하고 로그 파일에 포함되는 세부 정보의 양을 지정합니다. 로깅은 성능을 저하시킬 뿐만 아니라 대용량의 디스크 공간을 소모할 수 있기 때문에, 문제를 포착하기에 충분한 시간 동안만 로깅을 활성화하는 것이 좋습니다.

 이 속성을 다음 값 중 하나로 설정합니다.
+  0: 끔. 모든 로깅을 사용 중지합니다.
+  1: 오류. 드라이버가 계속 실행되지만 오류가 발생할 수 있는 오류 이벤트를 로깅합니다.
+  2: API\$1CALL. 함수 인수 값을 사용하여 ODBC API 함수 호출을 로깅합니다.
+  3: 정보. 드라이버의 진행 상황을 설명하는 일반 정보를 로깅합니다.
+  4: MSG\$1PROTOCOL. 드라이버의 메시지 프로토콜에 대한 자세한 정보를 로깅합니다.
+  5: 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**User(사용자)**\$1**LogonID**)에서 제공한 데이터베이스 사용자 이름에 해당하는 암호입니다.

이 파라미터는 선택 사항입니다.

## plugin\$1name
<a name="odbc20-plugin-name-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

인증에 사용할 보안 인증 공급자 플러그인 이름입니다.

 다음과 같은 값이 지원됩니다.
+  `ADFS`: Active Directory Federation Services를 사용하여 인증합니다.
+  `AzureAD`: Microsoft Azure Active Directory(AD) Service를 사용하여 인증합니다..
+  `BrowserAzureAD`: Microsoft Azure Active Directory(AD) Service용 브라우저 플러그인을 사용하여 인증합니다.
+  `BrowserIdcAuthPlugin `: AWS IAM Identity Center를 사용하는 인증 플러그인입니다.
+  `BrowserSAML`: Okta 또는 Ping과 같은 SAML 서비스용 브라우저 플러그인을 사용하여 인증합니다.
+  `IdpTokenAuthPlugin`: AWS IAM Identity Center 토큰 또는 AWS IAM Identity Center에 연결된 웹 ID 제공업체의 OpenID Connect(OIDC) JSON 기반 자격 증명 토큰(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: 연결이 읽기 전용 모드가 아니며 데이터 스토어에 쓸 수 있습니다.

이 파라미터는 선택 사항입니다.

## region
<a name="odbc20-region-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

클러스터가 있는 AWS 리전입니다.

이 파라미터는 선택 사항입니다.

## SecretAccessKey
<a name="odbc20-secretaccesskey-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

 사용자 또는 역할에 대한 IAM 비밀 키입니다. 이 파라미터를 설정할 경우 **AccessKeyID**도 설정해야 합니다 

이 파라미터는 선택 사항입니다.

## SessionToken
<a name="odbc20-sessiontoken-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

 인증에 사용하는 IAM 역할과 연결된 임시 IAM 세션 토큰입니다.

이 파라미터는 선택 사항입니다.

## 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 Identity Center에서 제공한 액세스 토큰 또는 AWS IAM Identity Center와 연결된 웹 ID 제공업체가 제공한 OpenID Connect(OIDC) JSON 웹 토큰(JWT)입니다. 애플리케이션은 AWS IAM Identity Center 또는 AWS IAM Identity Center와 연결된 자격 증명 공급자를 통해 애플리케이션 사용자를 인증하여 이 토큰을 생성해야 합니다.

이 파라미터는 `IdpTokenAuthPlugin`과 함께 작동합니다.

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

`IdpTokenAuthPlugin`에서 사용되는 토큰 유형입니다.

다음 값을 지정할 수 있습니다.

**ACCESS\$1TOKEN**  
AWS IAM Identity Center에서 제공한 액세스 토큰을 사용하는 경우 이 값을 입력합니다.

**EXT\$1JWT**  
AWS IAM Identity Center와 통합된 웹 기반 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 데이터를 유니코드 또는 일반 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>
+ **기본값** – 없음
+ **데이터 형식** – 문자열

자격 증명 공급자가 제공하는 OAUTH 토큰입니다. JWT 플러그인에서 사용됩니다.

**plugin\$1name** 파라미터를 BasicJwtCredentialsProvider로 설정한 경우 이 파라미터가 필요합니다.

# 이전 ODBC 드라이버 버전
<a name="odbc20-previous-versions"></a>

도구에 특정 버전의 드라이버가 필요한 경우에만 Amazon Redshift ODBC 드라이버 버전 2.x의 이전 버전을 다운로드합니다.

## Microsoft Windows용 이전 ODBC 드라이버 버전 사용
<a name="odbc20-previous-versions-windows"></a>

Microsoft Windows용 Amazon Redshift ODBC 드라이버 버전 2.x의 이전 버전은 다음과 같습니다.
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi) 

## Linux용 이전 ODBC 드라이버 버전 사용
<a name="odbc20-previous-versions-linux"></a>

Linux용 Amazon Redshift ODBC 드라이버 버전 2.x의 이전 버전은 다음과 같습니다.
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86_64.rpm) 

## Apple macOS용 이전 ODBC 드라이버 버전 사용
<a name="odbc20-previous-versions-mac"></a>

Apple macOS용 Amazon Redshift ODBC 드라이버 버전 2.x의 이전 버전은 다음과 같습니다.
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg) 

# ODBC 드라이버 버전 1.x 연결 구성
<a name="configure-odbc-connection"></a>

ODBC 연결을 사용하여 여러 서드 파티 SQL 클라이언트 도구 및 애플리케이션에서 Amazon Redshift 클러스터에 연결할 수 있습니다. 이를 위해 클라이언트 컴퓨터 또는 Amazon EC2 인스턴스에서 연결을 설정해야 합니다. 클라이언트 도구가 JDBC를 지원하는 경우에는 JDBC의 구성 용이성 때문에 ODBC가 아닌 JDBC 연결 유형을 사용하는 것이 좋을 수도 있습니다. 하지만 클라이언트 도구가 JDBC를 지원하지 않으면 이번 섹션의 단계에 따라 ODBC 연결을 구성해야 합니다.

Amazon Redshift는 Linux, Windows 및 macOS X 운영 체제용 64비트 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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)를 참조하세요. 

**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/ko_kr/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 드라이버를 다운로드하여 설치한 후에는 데이터 원본 이름(DSN) 항목을 클라이언트 컴퓨터 또는 Amazon EC2 인스턴스에 추가합니다. SQL 클라이언트 도구는 이 데이터 원본을 사용하여 Amazon Redshift 데이터베이스에 연결합니다.

사용자 DSN 대신 시스템 DSN을 생성하는 것이 좋습니다. 일부 애플리케이션은 다른 사용자 계정을 사용하여 데이터를 로드합니다. 이러한 애플리케이션은 다른 사용자 계정으로 생성된 사용자 DSN을 감지하지 못할 수 있습니다.

**참고**  
AWS Identity and Access Management(IAM) 자격 증명 또는 자격 증명 공급자(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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)를 참조하세요. 

**Windows에서 ODBC 연결을 위한 시스템 DSN 항목을 생성하려면**

1. **시작** 메뉴에서 **ODBC 데이터 원본**을 엽니다.

   Amazon Redshift에 연결하는 데 사용하는 클라이언트 애플리케이션과 동일한 비트를 가진 ODBC 데이터 원본 관리자를 선택해야 합니다.

1. **ODBC 데이터 원본 관리자(ODBC Data Source Administrator)**에서 **드라이버(Driver)** 탭을 선택하고 드라이버 폴더를 찾습니다.
   + **Amazon Redshift ODBC 드라이버(64비트)**
   + **Amazon Redshift ODBC 드라이버(32비트)**

1.  해당 컴퓨터의 모든 사용자가 이용할 수 있도록 드라이버를 구성하려면 **시스템 DSN(System DSN)** 탭을 선택하고, 본인의 사용자 계정에서만 이용할 수 있도록 드라이버를 구성하려면 **사용자 DSN(User DSN)** 탭을 선택합니다.

1.  **추가**를 선택합니다. **새 데이터 원본 생성(Create New Data Source)** 창이 열립니다.

1.  **Amazon Redshift** ODBC 드라이버를 선택하고 **완료(Finish)**를 선택합니다. **Amazon Redshift ODBC 드라이버 DSN 설정(Amazon Redshift ODBC Driver DSN Setup)** 창이 열립니다.

1. **연결 설정(Connection Settings)**에서 다음 정보를 입력하세요.
<a name="rs-mgmt-dsn"></a>
**데이터 소스 이름**  
데이터 소스 이름을 입력합니다. 나중에 클러스터 연결을 생성할 때 데이터 원본을 식별할 이름이라면 무엇이든 사용할 수 있습니다. 예를 들어 *Amazon Redshift 시작 안내서*에 따른 경우 `exampleclusterdsn`을 입력하면 이 DSN과 연결할 클러스터를 기억하기 쉽습니다.
<a name="rs-mgmt-server"></a>
**Server**  
Amazon Redshift 클러스터의 엔드포인트를 지정합니다. 이 정보는 Amazon Redshift 콘솔의 클러스터 세부 정보 페이지에서 찾을 수 있습니다. 자세한 내용은 [Amazon Redshift에서 연결 구성](configuring-connections.md) 섹션을 참조하세요.
<a name="rs-mgmt-port"></a>
**Port**  
데이터베이스가 사용하는 포트 번호를 입력합니다. 클러스터를 시작할 때 사용하도록 구성된 포트를 사용해야 합니다.
<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 설정(SSL Settings)**에서 다음 값을 지정합니다.
<a name="rs-mgmt-ssl-authentication"></a>
**SSL 인증**  
SSL(Secure Sockets Layer)의 처리 모드를 선택합니다. 테스트 환경에서는 `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. **테스트**를 선택합니다. 클라이언트 컴퓨터가 Amazon Redshift 데이터베이스에 연결할 수 있으면 **연결 성공(Connection successful)** 메시지가 표시됩니다.

    클라이언트 컴퓨터가 데이터베이스에 연결하지 못하는 경우에는 가능한 문제를 해결할 수 있습니다. 자세한 내용은 [Amazon Redshift 연결 문제 해결](troubleshooting-connections.md) 섹션을 참조하세요.

1. Windows에서 TCP keepalive를 구성하여 연결 시간 초과가 발생하지 않도록 합니다. Windows에서 TCP KeepAlive를 구성하는 방법에 대한 자세한 내용은 *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비트 RPM 드라이버 버전 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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)에서 "Specifying ODBC Driver Managers on Non- Windows Machines"(Windows 이외의 컴퓨터에서 ODBC 드라이버 관리자 지정)를 참조하세요. 링크를 사용합니다.

Amazon Redshift ODBC 드라이버 구성에 필요한 파일은 `amazon.redshiftodbc.ini`, `odbc.ini` 및 `odbcinst.ini`입니다.

드라이버를 기본 위치에 설치한 경우에는 `amazon.redshiftodbc.ini` 구성 파일이 다음 디렉터리 중 한 곳에 만들어집니다.
+ `/opt/amazon/redshiftodbc/lib/64`(Linux 운영 체제의 64비트 드라이버의 경우)
+ `/opt/amazon/redshiftodbc/lib/32`(Linux 운영 체제의 32비트 드라이버의 경우)

또한 Linux의 `/opt/amazon/redshiftodbc/Setup`에는 `odbc.ini` 샘플과 `odbcinst.ini` 파일이 있습니다. 이러한 파일을 Amazon Redshift ODBC 드라이버 및 데이터 원본 이름(DSN)을 구성하는 예제로 사용할 수 있습니다.

Amazon Redshift ODBC 드라이버 설치 디렉터리를 구성 파일용으로 사용하는 것은 바람직하지 않습니다. `Setup` 디렉터리의 샘플 파일은 오직 예를 제공하기 위한 용도일 뿐입니다. 나중에 Amazon Redshift ODBC 드라이버를 다시 설치하거나 새 버전으로 업그레이드하면 설치 디렉터리를 덮어씁니다. 그러면 이러한 파일에 대한 변경 사항이 손실됩니다.

이를 방지하려면 `amazon.redshiftodbc.ini` 파일을 설치 디렉터리가 아닌 다른 디렉터리에 복사합니다. 이 파일을 사용자의 홈 디렉터리로 복사하는 경우에는 파일 이름 앞에 마침표(.)를 추가하여 숨김 파일로 지정하세요.

`odbc.ini` 및 `odbcinst.ini` 파일의 경우 사용자의 홈 디렉터리에 있는 구성 파일을 사용하거나 다른 디렉터리에 새 버전을 생성합니다. 기본적으로 Linux 운영 체제는 사용자의 홈 디렉터리(`/home/$USER` 또는 `~/`)에 `odbc.ini` 파일과 `odbcinst.ini` 파일이 있어야 합니다. 이러한 기본 파일은 숨김 파일이기 때문에 파일 이름 앞에 마침표(.)가 있습니다. 이러한 파일은 `-a` 플래그를 사용하여 디렉터리 내용을 나열하는 경우에만 표시됩니다.

`odbc.ini` 및 `odbcinst.ini` 파일에 대해 어떤 옵션을 선택하든지 파일을 수정하여 드라이버 및 DSN 구성 정보를 추가합니다. 새로운 파일을 생성할 때도 마찬가지로 환경 변수를 설정하여 구성 파일의 위치를 지정해야 합니다.

기본적으로 ODBC 드라이버 관리자는 홈 디렉터리에 있는 숨겨진 버전의 `odbc.ini` 및 `odbcinst.ini` 구성 파일(.`odbc.ini` 및 .`odbcinst.ini`)을 사용하도록 구성됩니다. 또한 드라이버 설치 디렉터리의 `amazon.redshiftodbc.ini` 하위 폴더에 있는 `/lib` 파일을 사용하도록 구성됩니다. 이러한 구성 파일을 다른 위치에 저장하는 경우 드라이버 관리자가 파일을 찾을 수 있도록 다음에 설명된 환경 변수를 설정합니다. 자세한 내용은 [Amazon Redshift ODBC Connector Installation and Configuration Guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)에서 "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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)의 "Creating a Data Source Name on a Non-Windows Machine"(Windows 이외의 컴퓨터에서 데이터 소스 이름 생성)을 참조하세요. 

 Linux 운영 체제에서 사용하는 형식은 다음과 같습니다.

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

다음 예에서는 Linux 운영 체제에서 64비트 ODBC 드라이버를 사용하는 odbc.ini에 대한 구성을 보여줍니다.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift (x64)

[Amazon Redshift (x64)]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

다음 예에서는 Linux 운영 체제에서 32비트 ODBC 드라이버를 사용하는 odbc.ini에 대한 구성을 보여줍니다.

```
[ODBC Data Sources]
Amazon_Redshift_x32=Amazon Redshift (x86)

[Amazon Redshift (x86)]
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## Linux 운영 체제에서 DSN 없이 연결 구성
<a name="configure-odbcinst-ini-file"></a>

DSN이 없는 연결을 통해 데이터 저장소에 연결하려면 `odbcinst.ini` 파일에 드라이버를 정의합니다. 그런 다음 애플리케이션에 DSN이 없는 연결 문자열을 제공합니다.

이 경우 `odbcinst.ini` 파일을 구성하는 방법에 대한 자세한 내용은 [Amazon Redshift ODBC Connector Installation and Configuration Guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)에서 "Configuring a DSN-less Connection on a Non-Windows Machine"(Windows 이외의 컴퓨터에서 DSN이 없는 연결 구성)을 참조하세요. 링크를 사용합니다.

Linux 운영 체제에서 사용하는 형식은 다음과 같습니다.

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

다음 예에서는 64비트 드라이버가 Linux 운영 체제의 기본 디렉터리에 설치되어 있는 경우의 `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
```

다음 예에서는 32비트 드라이버가 Linux 운영 체제의 기본 디렉터리에 설치되어 있는 경우의 `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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)의 "Specifying ODBC Driver Managers on Non-Windows Machines"(Windows 이외의 컴퓨터에서 ODBC 드라이버 관리자 지정)를 참조하세요. 링크를 사용합니다.

기본적으로 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 서버에 연결하는 경우 SSL에서 사용할 수 있는 소켓에 연결하도록 ODBC 드라이버를 구성합니다.
+ 프록시 서버를 통해 Amazon Redshift에 연결하도록 ODBC 드라이버를 구성합니다.
+ 쿼리가 너무 많은 메모리를 소비하지 않게 쿼리 처리 모드를 사용하도록 ODBC 드라이버를 구성합니다.
+ 프록시 서버를 통해 IAM 인증 프로세스를 통과하도록 ODBC 드라이버를 구성합니다.
+ TCP keepalive를 사용하여 연결 시간 초과가 발생하지 않도록 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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)를 참조하세요. 

# 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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)에서 "Specifying ODBC Driver Managers on Non- Windows Machines"(Windows 이외의 컴퓨터에서 ODBC 드라이버 관리자 지정)를 참조하세요. 링크를 사용합니다.

Amazon Redshift ODBC 드라이버 구성에 필요한 파일은 `amazon.redshiftodbc.ini`, `odbc.ini` 및 `odbcinst.ini`입니다.

기본 위치에 드라이버를 설치한 경우에는 `amazon.redshiftodbc.ini` 구성 파일이 `/opt/amazon/redshift/lib`에 있습니다.

또한 macOS X의 `/opt/amazon/redshift/Setup`에는 `odbc.ini` 샘플과 `odbcinst.ini` 파일이 있습니다. 이러한 파일을 Amazon Redshift ODBC 드라이버 및 데이터 원본 이름(DSN)을 구성하는 예제로 사용할 수 있습니다.

Amazon Redshift ODBC 드라이버 설치 디렉터리를 구성 파일용으로 사용하는 것은 바람직하지 않습니다. `Setup` 디렉터리의 샘플 파일은 오직 예를 제공하기 위한 용도일 뿐입니다. 나중에 Amazon Redshift ODBC 드라이버를 다시 설치하거나 새 버전으로 업그레이드하면 설치 디렉터리를 덮어씁니다. 그러면 이러한 파일에 대한 변경 사항이 손실됩니다.

이를 방지하려면 `amazon.redshiftodbc.ini` 파일을 설치 디렉터리가 아닌 다른 디렉터리에 복사합니다. 이 파일을 사용자의 홈 디렉터리로 복사하는 경우에는 파일 이름 앞에 마침표(.)를 추가하여 숨김 파일로 지정하세요.

`odbc.ini` 및 `odbcinst.ini` 파일의 경우 사용자의 홈 디렉터리에 있는 구성 파일을 사용하거나 다른 디렉터리에 새 버전을 생성합니다. 기본적으로 macOS X 운영 체제는 사용자의 홈 디렉터리(`/home/$USER` 또는 `~/`)에 `odbc.ini` 파일과 `odbcinst.ini` 파일이 있어야 합니다. 이러한 기본 파일은 숨김 파일이기 때문에 파일 이름 앞에 마침표(.)가 있습니다. 이러한 파일은 `-a` 플래그를 사용하여 디렉터리 내용을 나열하는 경우에만 표시됩니다.

`odbc.ini` 및 `odbcinst.ini` 파일에 대해 어떤 옵션을 선택하든지 파일을 수정하여 드라이버 및 DSN 구성 정보를 추가합니다. 새로운 파일을 생성할 때도 마찬가지로 환경 변수를 설정하여 구성 파일의 위치를 지정해야 합니다.

기본적으로 ODBC 드라이버 관리자는 홈 디렉터리에 있는 숨겨진 버전의 `odbc.ini` 및 `odbcinst.ini` 구성 파일(.`odbc.ini` 및 .`odbcinst.ini`)을 사용하도록 구성됩니다. 또한 드라이버 설치 디렉터리의 `amazon.redshiftodbc.ini` 하위 폴더에 있는 `/lib` 파일을 사용하도록 구성됩니다. 이러한 구성 파일을 다른 위치에 저장하는 경우 드라이버 관리자가 파일을 찾을 수 있도록 다음에 설명된 환경 변수를 설정합니다. 자세한 내용은 [Amazon Redshift ODBC Connector Installation and Configuration Guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)에서 "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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)의 "Creating a Data Source Name on a Non-Windows Machine"(Windows 이외의 컴퓨터에서 데이터 소스 이름 생성)을 참조하세요. 

macOS X 운영 체제에서 사용하는 형식은 다음과 같습니다.

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/lib/amazonredshiftodbc.dylib

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

 다음 예에서는 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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)에서 "Configuring a DSN-less Connection on a Non-Windows Machine"(Windows 이외의 컴퓨터에서 DSN이 없는 연결 구성)을 참조하세요. 링크를 사용합니다.

macOS X 운영 체제에서 사용하는 형식은 다음과 같습니다.

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/lib/amazonredshiftodbc.dylib
    
...
```

다음 예에서는 드라이버가 macOS X 운영 체제의 기본 디렉터리에 설치되어 있는 경우 `odbcinst.ini` 구성을 보여줍니다.

```
[ODBC Drivers]
Amazon RedshiftODBC DSN=Installed

[Amazon RedshiftODBC DSN]
Description=Amazon Redshift ODBC Driver for macOS X
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
```

## 환경 변수 구성
<a name="rs-mgmt-config-global-env-variables"></a>

올바른 ODBC 드라이버 관리자를 사용하여 올바른 드라이버를 로드합니다. 이를 위해 라이브러리 경로 환경 변수를 설정합니다. 자세한 내용은 [Amazon Redshift ODBC Connector Installation and Configuration Guide](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)의 "Specifying ODBC Driver Managers on Non-Windows Machines"(Windows 이외의 컴퓨터에서 ODBC 드라이버 관리자 지정)를 참조하세요. 링크를 사용합니다.

기본적으로 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 서버에 연결하는 경우 SSL에서 사용할 수 있는 소켓에 연결하도록 ODBC 드라이버를 구성합니다.
+ 프록시 서버를 통해 Amazon Redshift에 연결하도록 ODBC 드라이버를 구성합니다.
+ 쿼리가 너무 많은 메모리를 소비하지 않게 쿼리 처리 모드를 사용하도록 ODBC 드라이버를 구성합니다.
+ 프록시 서버를 통해 IAM 인증 프로세스를 통과하도록 ODBC 드라이버를 구성합니다.
+ TCP keepalive를 사용하여 연결 시간 초과가 발생하지 않도록 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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)를 참조하세요. 

# 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 드라이버 관리자를 사용하여 드라이버 구성ODBC 드라이버 관리자를 사용하여 드라이버 구성](odbc-driver-configure-mac.md) 섹션에서 설명한 바와 같이 드라이버 구성 옵션을 `odbc.ini` 및 `amazon.redshiftodbc.ini` 파일에서 설정합니다. `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)(Amazon Redshift ODBC 커넥터 설치 및 구성 가이드)를 참조하세요. 

# 이전 ODBC 드라이버 버전
<a name="odbc-previous-versions"></a>

도구에 특정 버전의 드라이버가 필요한 경우에만 이전 버전의 Amazon Redshift ODBC 드라이버를 다운로드합니다.

## Windows용 이전 ODBC 드라이버 버전
<a name="odbc-previous-versions-windows"></a>

다음은 64비트 드라이버입니다.
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi) 

32비트 드라이버는 단종되었으며 이전 버전은 지원되지 않습니다.

## Linux용 이전 ODBC 드라이버 버전
<a name="odbc-previous-versions-linux"></a>

다음은 64비트 드라이버 버전입니다.
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.deb) 

32비트 드라이버는 단종되었으며 이전 버전은 지원되지 않습니다.

## macOS X용 이전 ODBC 드라이버 버전
<a name="odbc-previous-versions-mac"></a>

다음은 macOS X용 Amazon Redshift ODBC 드라이버 버전입니다.
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg) 

# 연결을 위한 보안 옵션 구성
<a name="connecting-ssl-support"></a>

Amazon Redshift는 데이터와 서버 인증서 암호화를 위한 보안 소켓 계층(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 체크섬 번호는 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550입니다.

  `https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt`에 있던 이전 인증서 번들을 사용하지 마세요.
+  중국 AWS 리전에서는 [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt)에서 번들을 다운로드합니다.
  + 예상 MD5 체크섬 번호는 418dea9b6d5d5de7a8f1ac42e164cdcf입니다.
  + sha256 체크섬 번호는 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550입니다.

  `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/redshift-ca-bundle.crt` 및 `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.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는 ECDHE(Elliptic Curve Diffie—Hellman Ephemeral) 키 계약 프로토콜을 지원합니다. ECDHE 프로토콜에서는 클라이언트와 서버가 비보안 채널을 통해 공유 비밀을 구성하는 데 사용하는 타원 곡선 공개-비공개 키 페어를 갖습니다. ECDHE를 사용하기 위해 Amazon Redshift에서 아무 것도 구성할 필요가 없습니다. ECDHE를 통해 클라이언트와 서버 간 통신을 암호화하는 SQL 클라이언트 도구에서 연결하는 경우 Amazon Redshift가 제공된 암호 목록을 사용해 적절히 연결합니다. 자세한 내용은 Wikipedia의 [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/ko_kr/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 모드(SSL Mode)**로 `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 설명서에서 [클라이언트 구성](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 인증서를 사용해 연결하려면**

`redshift-keytool.jar` 파일을 사용하여 Amazon Redshift 인증 기관 번들에 들어 있는 CA 인증서를 Java TrustStore 또는 프라이빗 TrustStore로 가져올 수 있습니다.

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 인증서를 업데이트해야 할 수 있습니다.

이러한 변경은 다음 사항이 모두 적용되는 경우에만 영향을 미칩니다.
+  SQL 클라이언트 또는 애플리케이션이 `sslMode` 연결 옵션이 `require`, `verify-ca` 또는 `verify-full` 구성 옵션으로 설정된 상태에서 SSL을 사용해 Amazon Redshift 클러스터에 연결합니다.
+ Amazon Redshift ODBC 또는 JDBC 드라이버를 사용하지 않거나 ODBC 버전 1.3.7.1000 또는 JDBC 버전 1.2.8.1005 이전의 Amazon Redshift 드라이버를 사용하고 있습니다.

이 변경 사항이 상용 Amazon Redshift 리전에서 영향을 미치는 경우 현재 신뢰하는 루트 CA 인증서를 2017년 10월 23일 이전에 업데이트해야 합니다. Amazon Redshift는 지금\$12017년 10월 23일 사이에 ACM 인증서를 사용하도록 클러스터를 이전할 예정입니다. 이 변경은 클러스터의 성능 또는 가용성에 거의 또는 아예 영향을 미치지 않을 것입니다.

이 변경 사항이 AWS GovCloud (US)(미국) 리전에 영향을 미치는 경우 서비스 중단을 방지하기 위해 현재 신뢰하는 루트 CA 인증서를 2020년 4월 1일 이전에 업데이트해야 합니다. 이 날짜부터 SSL 암호화 연결을 사용하여 Amazon Redshift 클러스터에 연결하는 클라이언트에는 신뢰할 수 있는 인증 기관(CA)이 추가로 필요합니다. 클라이언트는 신뢰할 수 있는 인증 기관을 사용하여 Amazon Redshift 클러스터에 연결할 때 클러스터의 자격 증명을 확인합니다. 새로운 신뢰할 수 있는 CA가 포함된 업데이트된 인증서 번들을 사용하도록 SQL 클라이언트 및 애플리케이션을 업데이트하려면 작업이 필요합니다.

**중요**  
2021년 1월 5일 중국 리전에서 Amazon Redshift는 클러스터의 SSL 인증서를 AWS Certificate Manager(ACM)가 발급한 인증서로 바꿉니다. 이 변경 사항이 중국(베이징) 리전 또는 중국(닝샤) 리전에 영향을 미치는 경우 서비스 중단을 방지하기 위해 현재 신뢰하는 루트 CA 인증서를 2021년 1월 5일 전에 업데이트해야 합니다. 이 날짜부터 SSL 암호화 연결을 사용하여 Amazon Redshift 클러스터에 연결하는 클라이언트에는 신뢰할 수 있는 인증 기관(CA)이 추가로 필요합니다. 클라이언트는 신뢰할 수 있는 인증 기관을 사용하여 Amazon Redshift 클러스터에 연결할 때 클러스터의 자격 증명을 확인합니다. 새로운 신뢰할 수 있는 CA가 포함된 업데이트된 인증서 번들을 사용하도록 SQL 클라이언트 및 애플리케이션을 업데이트하려면 작업이 필요합니다.
+ [최신 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 인증 기관 번들을 이 번들이 가리키는 truststore로 가져옵니다. 다운로드 정보는 [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>
+ `SSLCertPath`를 사용하여 ODBC DSN을 구성한 경우 지정된 경로에 있는 인증서 파일을 덮어 씁니다.
+ `SSLCertPath`가 설정되어 있지 않은 경우 드라이버 DLL 위치에 있는 `root.crt`라는 인증서 파일을 덮어 씁니다.

1.2.8.1005보다 이전 버전의 Amazon Redshift JDBC 드라이버를 사용해야 하는 경우 다음 중 하나를 수행하세요.
+ JDBC 연결 문자열이 `sslCert` 옵션을 사용하는 경우 `sslCert` 옵션을 제거합니다. 그런 다음 Redshift 인증 기관 번들을 Java TrustStore로 가져옵니다. 다운로드 정보는 [SSL](connecting-ssl-support.md#connect-using-ssl) 섹션을 참조하세요. 자세한 내용은 [Amazon Redshift 인증 기관 번들을 TrustStore로 가져오기](#importing-the-acm-bundle-to-truststore) 섹션을 참조하세요.
+ Java 명령줄 `-Djavax.net.ssl.trustStore` 옵션을 사용하는 경우 가능하면 명령줄에서 이 옵션을 제거합니다. 그런 다음 Redshift 인증 기관 번들을 Java TrustStore로 가져옵니다. 다운로드 정보는 [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>

`redshift-keytool.jar`를 사용하여 Amazon Redshift 인증 기관 번들에 들어 있는 CA 인증서를 Java TrustStore 또는 프라이빗 TrustStore로 가져올 수 있습니다.

**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를 제공하여 클러스터와 작업 그룹에 연결할 수 있습니다. 자세한 내용은 [Query Editor 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은 Amazon Redshift에 특정한 추가 기능 집합과 함께 PostgreSQL psql 명령줄 도구의 기능을 지원합니다. 여기에는 다음이 포함됩니다.
+ AD FS, PingIdentity, Okta, Azure ADm 또는 기타 SAML/JWT 기반 ID 제공업체를 통한 Single Sign-On을 사용할 수 있습니다. 멀티 팩터 인증(MFA)에 브라우저 기반 SAML 자격 증명 공급자를 사용할 수도 있습니다.
+ 테이블 배포 키, 테이블 정렬 키, 후기 바인딩 보기(LBV) 및 구체화된 보기와 같은 Amazon Redshift 객체의 속성을 설명할 수 있습니다. AWS Glue 카탈로그 또는 Apache Hive Metastore, Amazon RDS for PostgreSQL, Amazon Aurora PostgreSQL 호환 버전, RDS for MySQL(평가판) 및 Amazon Aurora MySQL 호환 버전(평가판)의 외부 데이터베이스, Amazon Redshift 데이터 공유를 사용하여 공유되는 테이블에 있는 외부 테이블의 속성을 설명할 수도 있습니다.
+ `IF`(`\ELSEIF`, `\ELSE,` `\ENDIF`), `\GOTO`, `\LABEL` 등의 향상된 제어 흐름 명령을 사용할 수도 있습니다.

 입력 파라미터로 전달된 스크립트를 실행하는 Amazon Redshift RSQL 배치 모드를 사용하면 SQL 및 복잡한 비즈니스 로직을 모두 포함하는 스크립트를 실행할 수 있습니다. 기존 자체 관리형 온프레미스 데이터 웨어하우스가 있는 경우 Amazon Redshift RSQL을 사용하여 Teradata BTEQ 스크립트와 같은 기존 추출, 변환, 로드 및 자동화 스크립트를 대체할 수 있습니다. 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 아티팩트 서명된 해시: [해시](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2-signature.bin) 
+ macOS 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>

아래 단계에 따라 macOS X용 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`에 없으면 `DYLD_LIBRARY_PATH`를 libodbc.dylib의 위치로 설정합니다.

   ```
   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 가져오기 파라미터 크기를 초과할 때 RSQL 충돌이 발생하는 버그를 수정했습니다.
+ 페이저가 켜져 있더라도 여러 페이지의 결과가 한 번에 반환되는 문제를 수정했습니다.
+ 트랜잭션 블록 내에서 쿼리가 실패할 때 RSQL 충돌을 트리거하는 버그를 수정했습니다.

*1.1.1(2025-11-20)*

버그 수정
+ -c 플래그를 사용할 때 RSQL이 쿼리를 잘못 구문 분석하는 문제를 수정했습니다. 이 수정 사항은 모든 플랫폼에 적용됩니다.
+ Mac에서 사용자가 RSQL에서 \$1s 명령을 사용하지 못하게 하는 버그를 수정했습니다.

*1.1.0(2025-11-11)*

버그 수정
+ RSQL에서 예기치 않은 충돌을 일으키는 메모리 누수 문제를 해결했습니다.
+ RSQL에서 OpenSSL 종속성을 제거했습니다.
+ 동일한 환경에서 libpq/psql 설치와의 연결 충돌을 수정했습니다.
+ Amazon Linux 2023, Windows 및 macOS의 플랫폼 호환성을 개선했습니다.
+ 현재 표시 크기를 초과할 때 출력이 잘리는 문제를 수정했습니다.

*1.0.8(2023-06-19)*

버그 수정
+ SHOW 명령으로 출력이 잘리는 문제를 수정했습니다.
+ \$1de에 외부 Kinesis 스트림 및 Kafka 주제 설명을 위한 지원이 추가되었습니다.

*1.0.7(2023-03-22)*

버그 수정
+ RSQL이 구체화된 뷰를 설명할 수 없는 문제가 수정되었습니다.
+ Amazon Redshift Serverless를 사용할 때 stl\$1connection\$1log의 권한 거부 오류가 수정되었습니다.
+ RSQL이 \$1GOTO 레이블을 잘못 처리할 수 있는 문제가 해결되었습니다.
+ 자동 모드에서 SSL 메시지가 출력되는 문제가 해결되었습니다.
+ 저장된 프로시저를 설명할 때 임의의 문자가 표시되는 문제가 해결되었습니다.
+ 중복된 오류/정보 메시지가 출력되는 문제가 해결되었습니다.

New
+ RSQL이 이제 ODBC 드라이버에서 직접 SSL 정보를 가져옵니다.



*1.0.6(2023-02-21)*

버그 수정
+ Redshift 패치 1.0.46086(P173)에서 \$1d가 잘못된 정수 입력 구문: ‘xid’라는 오류가 발생하는 문제를 수정했습니다.

New
+ 지원되는 아키텍처를 반영하도록 설치 파일의 이름을 변경했습니다.



*1.0.5(2022-06-27)*

버그 수정
+ SQL 오류 메시지를 표준 오류(stderr)로 보냅니다.
+ ON\$1ERROR\$1STOP을 사용할 때 발생하는 종료 코드 문제를 해결했습니다. 이제 오류가 발생하면 스크립트가 종료되고 올바른 종료 코드를 반환합니다.
+ Maxerror가 이제 대/소문자를 구분하지 않습니다.

New
+ ODBC 2.x 드라이브에 대한 지원이 추가되었습니다.



*1.0.4(2022-03-19)*
+ RSPASSWORD 환경 변수에 대한 지원을 추가합니다. Amazon Redshift Redshift에 연결할 암호를 설정합니다. 예를 들어 `export RSPASSWORD=TestPassw0rd`입니다.



*1.0.3(2021-12-08)*

버그 수정
+ 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) 

**macOS 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)**입니다.
   +  *<username>*은 클러스터 연결 권한이 있는 사용자의 이름입니다.
   +  *<databasename>*은(는) 이전 단계에서 입력한 **데이터베이스 이름(Database Name)**입니다.
   +  *<port>*는 이전 단계에서 기록한 **포트(Port)**입니다. *<port>*는 선택적 파라미터입니다.

   예를 들면 다음과 같습니다.

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

1.  암호 프롬프트에서 *<username>* 사용자의 암호를 입력합니다.

   성공적인 연결 응답은 다음과 같습니다.

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

DSN을 통해 연결 속성 구성을 간소화하여 RSQL을 Amazon Redshift에 연결할 수 있습니다. 이 주제에는 ODBC 드라이버 설치 설명과 DSN 속성 설명이 포함되어 있습니다.

### 암호와 함께 DSN 연결 사용
<a name="rsql-query-tool-starting-tool-connection-dsn-example-password"></a>

다음은 암호를 사용하는 DSN 연결 구성의 예를 보여줍니다. 기본 `<path to driver>`은 Mac OSX의 경우 `/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>

Single Sign-On 인증을 위해 DSN을 구성할 수 있습니다. 다음은 Okta Single Sign-On을 사용하는 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 Single Sign-On을 사용하는 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` 키 값은AWS CLI 자격 증명에서 선택하는 명명된 프로파일입니다. 이 예에서는 `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이 Java용 AWS SDK에서 [AWS 자격 증명으로 작업하기](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html)에 나와 있는 순서대로 자격 증명 획득을 시도합니다. 체인에서 제공자 하나 이상이 `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] NAME
<a name="rsql-query-tool-describe-s-plus-named"></a>

테이블, 보기 또는 인덱스에 대해 설명합니다. 열 이름 및 유형을 포함합니다. 또한 diststyle, 백업 구성, 생성 날짜(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)
```

테이블의 배포 스타일 또는 *Diststyle*은 KEY, AUTO, EVEN 또는 ALL일 수 있습니다.

*백업(Backup)*은 스냅샷이 생성될 때 테이블이 백업되는지 여부를 나타냅니다. 유효한 값은 `YES` 또는 `NO`입니다.

*생성됨(Created)*은 테이블이 생성될 때의 타임스탬프입니다. 2018년 11월 이전에 생성된 Amazon Redshift 테이블에는 생성 날짜를 사용할 수 없습니다. 이 날짜 이전에 생성된 테이블은 n/a(해당 사항 없음)으로 표시됩니다.

*고유 제약 조건(Unique Constraints)*에는 테이블에 대한 고유 및 기본 키 제약 조건이 나열됩니다.

*외래 키 제약 조건(Foreign-key constraints)*에는 테이블에 대한 외래 키 제약 조건이 나열됩니다.

## \$1dC[\$1] [PATTERN]
<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] [PATTERN]
<a name="rsql-query-tool-describe-dds"></a>

다른 곳에 표시되지 않는 객체 설명을 보여줍니다.

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

외부 테이블을 나열합니다. 여기에는 AWS Glue Data Catalog의 테이블, Hive Metastore 및 Amazon RDS/Aurora MySQL, Amazon RDS/Aurora PostgreSQL 및 Amazon Redshift 데이터 공유 테이블의 페더레이션 테이블이 포함됩니다.

## \$1de NAME
<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] [PATTERN]
<a name="rsql-query-tool-df"></a>

 다양한 유형의 함수를 나열합니다. 예를 들어 `\df` 명령은 함수 목록을 반환합니다. 결과에는 이름, 반환된 데이터 유형, 액세스 권한 및 추가 메타데이터와 같은 속성이 포함됩니다. 함수 유형에는 트리거, 저장 프로시저, 윈도 함수 및 기타 유형이 포함될 수 있습니다. 명령에 `S+`를 추가하면(예: `\dfantS+`) `owner`, `security`, `access privileges` 등의 추가 메타데이터 열이 포함됩니다.

## \$1dL[S\$1] [PATTERN]
<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] [PATTERN]
<a name="rsql-query-tool-describe-dm"></a>

 구체화된 보기를 나열합니다. 예를 들어 `\dmS+`는 구체화된 보기와 해당 속성을 나열합니다. 명령에 `S+`를 추가하면 추가 메타데이터 열이 포함됩니다.

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

 스키마를 나열합니다. 명령에 `S+`를 추가하면(예: `\dnS+`) `description`, `access privileges`등의 추가 메타데이터 열이 포함됩니다.

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

 테이블, 보기 및 시퀀스 액세스 권한을 나열합니다.

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

 테이블을 나열합니다. 명령에 `S+`를 추가하면(예: `\dtS+`) 이 경우 `description` 등의 추가 메타데이터 열이 포함됩니다.

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

 데이터베이스의 사용자를 나열합니다. 해당 이름과 슈퍼 사용자 및 속성 등의 역할을 포함합니다.

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

 보기를 나열합니다. 스키마, 유형 및 소유자 데이터를 포함합니다. 명령에 `S+`를 추가하면(예:`\dvS+`) 추가 메타데이터 열이 포함됩니다.

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

 HTML 출력을 설정합니다. 이는 형식이 지정된 결과를 빠르게 반환하는 데 유용합니다. 예를 들어 `select * from sales; \H`는 sales 테이블의 결과를 HTML로 반환합니다. 테이블형 결과로 다시 전환하려면 `\q` 또는 quiet을 사용합니다.

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

 파일에서 명령을 실행합니다. 예를 들어, 작업 디렉터리에 rsql\$1steps.sql이 있다고 가정하면 `\i rsql_steps.sql`은 파일에서 명령을 실행합니다.

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

 데이터베이스를 나열합니다. 소유자, 인코딩 및 추가 정보가 포함됩니다.

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

 quit 또는 `\q` 명령은 데이터베이스 세션을 로그오프하고 RSQL을 종료합니다.

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

 보기의 정의를 표시합니다.

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

 예를 들어 쿼리의 실행 시간을 표시합니다.

## \$1z [PATTERN]
<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>

 RSQL이 후속 SQL SELECT 문에서 반환하는 데이터베이스 정보를 저장하는 데 사용하는 내보내기 파일의 이름을 지정합니다.

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` 명령에 대한 기본 호스트 이름이 됩니다. 기본 호스트 이름을 변경하려면 추가 `\LOGON` 명령에 새 `HOST`를 지정합니다.

`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*와 같은 bash 옵션이나 *--<arg>*와 같은 인수의 옵션을 지원하지 않습니다.

다음과 같은 변수를 설정합니다.
+ ERRORLEVEL
+ HEADING 및 RTITLE
+ RFORMAT
+ MAXERROR
+ TITLEDASHES
+ WIDTH

다음 예에서는 헤딩을 지정합니다.

```
\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`는 파라미터로 전달된 운영 체제 명령을 실행합니다. 명령이 실행되면 컨트롤이 Amazon Redshift RSQL로 돌아갑니다. 예를 들어, `\os date` 명령을 실행하여 현재 시스템 날짜 시간을 인쇄하고 RSQL 터미널로 돌아갈 수 있습니다.

```
(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/ko_kr/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

데이터 예외:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

무결성 제약 조건 위반:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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에 연결할 때 사용할 Amazon Redshift RSQL의 암호를 설정합니다. 이 환경 변수에는 Amazon Redshift RSQL 1.0.4 이상이 필요합니다.

 RSPASSWORD가 설정된 경우 RSQL은 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에 연결할 때 발생합니다. 이 경우 유휴 연결은 일정 시간 동안 사용하지 않으면 방화벽과 같은 중간 네트워크 구성 요소에 의해 종료됩니다. 이 동작은 가상 사설 네트워크(VPN) 또는 로컬 네트워크에서 로그온할 때 일반적입니다.

제한 시간 문제를 방지하려면 다음과 같이 변경하는 것이 좋습니다.
+ TCP/IP 제한 시간을 처리하는 클라이언트 시스템 값을 높이세요. 단, 이러한 시스템 값은 클러스터에 연결할 때 사용하는 컴퓨터에서 변경해야 합니다. 또한 제한 시간은 클라이언트와 네트워크를 고려하여 조정해야 합니다. 자세한 내용은 [TCP/IP 제한 시간 설정 변경](#connecting-firewall-guidance.change-tcpip-settings) 섹션을 참조하세요.
+ 그 밖의 옵션으로 keepalive 동작을 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>

원하는 경우 keepalive 동작을 DSN 수준으로 설정할 수 있습니다. odbc.ini 파일에서 다음 파라미터를 추가하거나 수정하면 가능합니다.

**KeepAlivesCount**  
연결이 끊긴 것으로 간주할 때까지 손실될 수 있는 TCP keepalive 패킷의 수입니다.

**KeepAlivesIdle**  
드라이버가 TCP keepalive 패킷을 전송할 때까지 아무런 작업 없이 대기하는 시간(초)입니다.

**KeepAlivesInterval**  
TCP keepalive가 재전송되는 시간 간격(초)입니다.

이러한 파라미터가 존재하지 않거나 값이 0인 경우에는 시스템이 TCP/IP에 지정한 keepalive 파라미터를 사용하여 DSN keepalive 동작을 결정합니다. Windows에서는 레지스트리의 TCP/IP 파라미터를 `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\`에서 확인할 수 있습니다. 그리고 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 클러스터가 Virtual Private Cloud(VPC)에 생성되었는는지에 따라 달라집니다.
+ Amazon VPC를 기반으로 Virtual Private Cloud(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>

 이 문제는 패킷이 소실되어 발생할 수 있습니다. 이 경우 두 IP(Internet Protocol) 호스트 간 네트워크 경로에서 최대 전송 단위(MTU)의 크기 차이가 있습니다. 단일 이더넷 프레임으로 네트워크 연결을 통해 전송할 수 있는 패킷의 최대 크기(바이트)는 MTU의 크기에 따라 결정됩니다. AWS에서는 일부 Amazon EC2 인스턴스 유형이 1500MTU(이더넷 v2 프레임)를 지원하고, 그 밖에 9001MTU(TCP/IP 점보 프레임)를 지원하는 인스턴스 유형도 있습니다.

 MTU 크기 차이에서 발생할 수 있는 문제에 대한 해결책으로서 다음 중 한 가지를 권장합니다.
+ 클러스터가 EC2-VPC 플랫폼을 사용하는 경우에는 `Destination Unreachable`을 반환하는 사용자 정의 ICMP(Internet Control Message Protocol) 인바운드 규칙으로 Amazon VPC 보안 그룹을 구성합니다. 이 규칙은 전송 호스트에게 네트워크 경로를 따라 최저 MTU 크기를 사용하도록 지시합니다. 이러한 접근법에 대한 자세한 내용은 [ICMP "destination unreachable"을 허용하도록 보안 그룹 구성하기](#configure-custom-icmp) 섹션을 참조하세요.
+ 클러스터가 EC2-Classic 플랫폼을 사용하거나 ICMP 인바운드 규칙을 허용할 수 없는 경우 TCP/IP 점보 프레임을 비활성화하여 이더넷 v2 프레임을 사용하세요. 이러한 접근법에 대한 자세한 내용은 [인스턴스의 MTU 구성](#set-mtu) 섹션을 참조하세요.

### ICMP "destination unreachable"을 허용하도록 보안 그룹 구성하기
<a name="configure-custom-icmp"></a>

 두 호스트 사이의 네트워크에서 MTU 크기에 차이가 있다면 먼저 네트워크 설정이 PMTUD(path MTU discovery)를 차단하지 않는지 확인해야 합니다. 수신 호스트가 ICMP 메시지 `Destination Unreachable: fragmentation needed and DF set (ICMP Type 3, Code 4)`과 함께 전송 호스트에 응답하기 위해서는 PMTUD가 차단되어서는 안 됩니다. 이 메시지는 전송 호스트에게 네트워크 경로를 따라 요청을 재전송하려면 최저 MTU 크기를 사용하라는 의미입니다. 이러한 협상이 없으면 수신 호스트가 허용할 수 없을 만큼 요청이 너무 많아져서 패킷 손실이 발생할 수 있습니다. 이 ICMP 메시지에 대한 자세한 내용은 *IETF(Internet Engineering Task Force)* 웹 사이트의 [RFC792](http://tools.ietf.org/html/rfc792) 섹션을 참조하세요.

 Amazon VPC 보안 그룹에 이 ICMP 인바운드 규칙을 명시적으로 구성하지 않으면 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 Fetch Size 파라미터 설정
<a name="jdbc_fetch_size"></a>

기본적으로 Redshift JDBC 드라이버는 링 버퍼를 사용하여 메모리를 효율적으로 관리하고 메모리 부족 오류를 방지합니다. 가져오기 크기 파라미터는 링 버퍼가 명시적으로 비활성화된 경우에만 적용됩니다. 자세한 내용은 [링크](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-enablefetchringbuffer-option)를 참조하세요. 이 구성에서는 가져오기 크기를 설정하여 각 배치에서 검색되는 행 수를 제어해야 합니다.

다음과 같은 경우 가져오기 크기 파라미터를 사용합니다.
+ 행 기반 일괄 처리를 세밀하게 제어해야 하는 경우
+ 기존 가져오기 크기 동작이 필요한 레거시 애플리케이션 작업

링 버퍼가 비활성화된 경우, JDBC 드라이버는 기본적으로 쿼리의 모든 결과를 한 번에 수집합니다. 큰 결과 집합을 반환하는 쿼리는 과도한 메모리를 소비할 수 있습니다. 결과 세트를 한 번에 모두 검색하는 대신 배치로 검색하려면 애플리케이션에서 JDBC 가져오기 크기 파라미터를 설정합니다.

**참고**  
ODBC는 Fetch Size 파라미터가 지원되지 않습니다.

성능을 최적화하려면 메모리 부족 오류가 일어나지 않는 범위 내에서 페치 크기 값을 가장 높게 설정하세요. 페치 크기 값이 더 낮아지면 서버 전송이 늘어나서 실행 시간이 장기화될 수 있습니다. 서버는 클라이언트가 전체 결과 집합을 가져오거나 쿼리가 취소될 때까지 WLM 쿼리 슬롯이나 연결 메모리를 비롯한 리소스를 예약합니다. 이때 Fetch Size 값을 적절히 조정하면 이러한 리소스가 더욱 빠르게 해제되어 다른 쿼리에서도 사용할 수 있게 됩니다.

**참고**  
대용량 데이터 집합을 추출해야 하는 경우에는 [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) 문을 사용하여 데이터를 Amazon S3로 전송하는 것이 좋습니다. UNLOAD를 사용하면 컴퓨팅 노드가 병렬로 실행되어 데이터 전송 속도가 빨라집니다.

JDBC Fetch Size 파라미터 설정에 대한 자세한 내용은 PostgreSQL 설명서의 [Getting results based on a cursor](https://jdbc.postgresql.org/documentation/query/#getting-results-based-on-a-cursor)에서 확인할 수 있습니다.