

# 함수 참조
<a name="postgresql-s3-export-functions"></a>

**Topics**
+ [aws\$1s3.query\$1export\$1to\$1s3](#aws_s3.export_query_to_s3)
+ [aws\$1commons.create\$1s3\$1uri](#aws_commons.create_s3_uri)

## aws\$1s3.query\$1export\$1to\$1s3
<a name="aws_s3.export_query_to_s3"></a>

PostgreSQL 쿼리 결과를 Amazon S3 버킷으로 내보냅니다. `aws_s3` 확장은 `aws_s3.query_export_to_s3` 함수를 제공합니다.

두 가지 필수 파라미터는 `query` 및 `s3_info`입니다. 이러한 파라미터는 내보낼 쿼리를 정의하고 내보낼 Amazon S3 버킷을 식별합니다. 다양한 내보내기 파라미터를 정의하기 위해 `options`라는 선택적 파라미터가 제공됩니다. `aws_s3.query_export_to_s3` 함수 사용 예는 [aws\$1s3.query\$1export\$1to\$1s3 함수를 사용하여 쿼리 데이터 내보내기](postgresql-s3-export-examples.md) 단원을 참조하십시오.

**구문**:

```
aws_s3.query_export_to_s3(
    query text,    
    s3_info aws_commons._s3_uri_1,    
    options text,
    kms_key text
)
```입력 파라미터

*query*  
PostgreSQL 엔진이 실행하는 SQL 쿼리를 포함하는 필수 텍스트 문자열입니다. 이 쿼리의 결과는 `s3_info` 파라미터에서 식별된 S3 버킷에 복사됩니다.

*s3\$1info*  
S3 객체에 대한 다음 정보를 포함하는 `aws_commons._s3_uri_1` 복합 키입니다.  
+ `bucket` – 파일을 포함할 Amazon S3 버킷의 이름입니다.
+ `file_path` – Amazon S3 파일 이름 및 경로입니다.
+ `region` - 버킷이 있는 AWS 리전입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전, 가용 영역 및 로컬 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.

  현재, 이 값은 내보내는 DB 인스턴스의 AWS 리전과 동일해야 합니다. 기본값은 내보내는 DB 인스턴스의 AWS 리전입니다.
`aws_commons._s3_uri_1` 복합 구조를 생성하려면 [aws\$1commons.create\$1s3\$1uri](#aws_commons.create_s3_uri) 함수를 참조하십시오.

*options*  
PostgreSQL `COPY` 명령에 대한 인수를 포함하는 선택적 텍스트 문자열입니다. 이러한 인수는 내보낼 때 데이터를 복사하는 방법을 지정합니다. 자세한 내용은 [PostgreSQL COPY 설명서](https://www.postgresql.org/docs/current/sql-copy.html)를 참조하십시오.

*kms\$1key text*  
데이터를 내보낼 S3 버킷의 고객 관리형 KMS 키가 포함된 선택적 텍스트 문자열입니다.

### 대체 입력 파라미터
<a name="aws_s3.export_query_to_s3-alternate-parameters"></a>

`s3_info` 파라미터 대신에 확장 파라미터 세트를 사용하면 테스트에 도움이 됩니다. 다음은 `aws_s3.query_export_to_s3` 함수에 대한 추가 구문 변형입니다.

`s3_info` 파라미터를 사용해 Amazon S3 파일을 식별하는 대신 `bucket`, `file_path` 및 `region` 파라미터의 조합을 사용하십시오.

```
aws_s3.query_export_to_s3(
    query text,    
    bucket text,    
    file_path text,    
    region text,    
    options text,
    kms_key text
)
```

*query*  
PostgreSQL 엔진이 실행하는 SQL 쿼리를 포함하는 필수 텍스트 문자열입니다. 이 쿼리의 결과는 `s3_info` 파라미터에서 식별된 S3 버킷에 복사됩니다.

*bucket*  
파일이 들어 있는 Amazon S3 버킷의 이름이 포함된 필수 텍스트 문자열입니다.

*file\$1path*  
파일 경로를 포함한 Amazon S3 파일 이름이 포함된 필수 텍스트 문자열입니다.

*리전*  
버킷이 있는 AWS 리전을 포함하는 선택적 텍스트 문자열입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전, 가용 영역 및 로컬 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.  
현재, 이 값은 내보내는 DB 인스턴스의 AWS 리전과 동일해야 합니다. 기본값은 내보내는 DB 인스턴스의 AWS 리전입니다.

*options*  
PostgreSQL `COPY` 명령에 대한 인수를 포함하는 선택적 텍스트 문자열입니다. 이러한 인수는 내보낼 때 데이터를 복사하는 방법을 지정합니다. 자세한 내용은 [PostgreSQL COPY 설명서](https://www.postgresql.org/docs/current/sql-copy.html)를 참조하십시오.

*kms\$1key text*  
데이터를 내보낼 S3 버킷의 고객 관리형 KMS 키가 포함된 선택적 텍스트 문자열입니다.

### 출력 파라미터
<a name="aws_s3.export_query_to_s3-output-parameters"></a>

```
aws_s3.query_export_to_s3(
    OUT rows_uploaded bigint,
    OUT files_uploaded bigint,
    OUT bytes_uploaded bigint
)
```

*rows\$1uploaded*  
지정된 쿼리에 대해 Amazon S3에 성공적으로 업로드된 테이블 행 수입니다.

*files\$1uploaded*  
Amazon S3에 업로드된 파일 수입니다. 파일은 약 6GB 크기로 생성됩니다. 생성된 각 추가 파일 이름에 `_partXX`가 추가됩니다. `XX`는 2, 3 등을 나타냅니다.

*bytes\$1uploaded*  
Amazon S3에 업로드된 총 바이트 수입니다.

### 예제
<a name="aws_s3.export_query_to_s3-examples"></a>

```
psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'amzn-s3-demo-bucket', 'sample-filepath');
psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'amzn-s3-demo-bucket', 'sample-filepath','us-west-2');
psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'amzn-s3-demo-bucket', 'sample-filepath','us-west-2','format text');
```

## aws\$1commons.create\$1s3\$1uri
<a name="aws_commons.create_s3_uri"></a>

Amazon S3 파일 정보를 저장할 `aws_commons._s3_uri_1` 구조를 생성합니다. `aws_commons.create_s3_uri` 함수의 `s3_info` 파라미터에서 [aws\$1s3.query\$1export\$1to\$1s3](#aws_s3.export_query_to_s3) 함수의 결과를 사용합니다. `aws_commons.create_s3_uri` 함수 사용 예는 [내보낼 Amazon S3 파일 경로 지정](postgresql-s3-export.md#postgresql-s3-export-file) 단원을 참조하십시오.

**구문**:

```
aws_commons.create_s3_uri(
   bucket text,
   file_path text,
   region text
)
```입력 파라미터

*버킷*  
파일의 Amazon S3 버킷 이름이 포함된 필수 텍스트 문자열입니다.

*file\$1path*  
파일 경로를 포함한 Amazon S3 파일 이름이 포함된 필수 텍스트 문자열입니다.

*리전*  
파일이 위치한 AWS 리전이 포함된 필수 텍스트 문자열입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전, 가용 영역 및 로컬 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.