

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 函數參考
<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*  
`aws_commons._s3_uri_1` 複合類型，含有下列 S3 物件相關資訊：  
+ `bucket` – 包含檔案的 Amazon S3 儲存貯體名稱。
+ `file_path` – Amazon S3 檔案名稱和路徑。
+ `region` – 儲存貯體所在的 AWS 區域。如需 AWS 區域名稱和相關值的清單，請參閱 [區域、可用區域和 Local Zones](Concepts.RegionsAndAvailabilityZones.md)。

  目前，此值必須與匯出資料庫執行個體 AWS 的區域相同。預設值為匯出資料庫執行個體 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 文字*  
選用的文字字串，其中包含要將資料匯出至其中的 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 檔案名稱 (包括檔案路徑) 的必要文字字串。

*region*  
選用的文字字串，其中包含儲存貯體所在的 AWS 區域。如需 AWS 區域名稱和相關值的清單，請參閱 [區域、可用區域和 Local Zones](Concepts.RegionsAndAvailabilityZones.md)。  
目前，此值必須與匯出資料庫執行個體 AWS 的區域相同。預設值為匯出資料庫執行個體 AWS 的區域。

*options*  
選用的文字字串，含有 PostgreSQL `COPY` 命令引數。這些引數指定資料要如何在匯出時複製。詳細資訊請參閱 [PostgreSQL COPY 文件](https://www.postgresql.org/docs/current/sql-copy.html)。

*kms\$1key 文字*  
選用的文字字串，其中包含要將資料匯出至其中的 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 的檔案數。建立的檔案大小約為 6 GB。每個額外建立的檔案，名稱都會加上 `_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>

建立 `aws_commons._s3_uri_1` 結構以保留 Amazon S3 檔案資訊。您使用 `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
)
```輸入參數

*bucket*  
必要的文字字串，其中含有檔案的 Amazon S3 儲存貯體名稱。

*file\$1path*  
包含 Amazon S3 檔案名稱 (包括檔案路徑) 的必要文字字串。

*region*  
必要的文字字串，其中包含檔案所在的 AWS 區域。如需 AWS 區域名稱和相關值的清單，請參閱 [區域、可用區域和 Local Zones](Concepts.RegionsAndAvailabilityZones.md)。