

# 関数リファレンス
<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` 関数が含まれます。

2 つの必須パラメータは、`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 リージョン名と関連する値のリストについては、「[リージョン、アベイラビリティーゾーン、および Local Zones](Concepts.RegionsAndAvailabilityZones.md)」を参照してください。

  現在、この値は、エクスポートする DB  DB インスタンスの AWS リージョンと同じリージョンである必要があります。デフォルトは、エクスポートする DB  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` 関数の構文のバリエーションです。

Amazon S3 ファイルを識別するために `s3_info` パラメータを使用する代わりに、`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 バケットにコピーされます。

*バケット*  
ファイルを含む Amazon S3 バケットの名前を含む必須テキスト文字列。

*file\$1path*  
ファイルのパスを含む Amazon S3 ファイル名を含む必須テキスト文字列。

*リージョン*  
バケットが存在する AWS リージョンを含むオプションのテキスト文字列。AWS リージョン名と関連する値のリストについては、「[リージョン、アベイラビリティーゾーン、および Local Zones](Concepts.RegionsAndAvailabilityZones.md)」を参照してください。  
現在、この値は、エクスポートする DB  DB インスタンスの AWS リージョンと同じリージョンである必要があります。デフォルトは、エクスポートする DB  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 にアップロードされたファイルの数。ファイルは、約 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>

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)」を参照してください。

**Syntax**

```
aws_commons.create_s3_uri(
   bucket text,
   file_path text,
   region text
)
```入力パラメータ

*バケット*  
ファイルの Amazon S3 バケット名を含む必須のテキスト文字列。

*file\$1path*  
ファイルのパスを含む Amazon S3 ファイル名を含む必須テキスト文字列。

*リージョン*  
ファイルがある AWS リージョンを含む必須のテキスト文字列。AWS リージョン名と関連する値のリストについては、「[リージョン、アベイラビリティーゾーン、および Local Zones](Concepts.RegionsAndAvailabilityZones.md)」を参照してください。