Aurora PostgreSQL DB クラスターから Amazon S3 へのデータのエクスポート
Aurora PostgreSQL DB クラスター からデータをクエリし、Amazon S3 バケットに保存されているファイルに直接エクスポートできます。これを行うには、Aurora PostgreSQL aws_s3
拡張機能を最初にインストールします。このエクステンションでは、Amazon S3 へのクエリの結果のエクスポートに使用する関数が利用できます。次に、拡張機能のインストール方法と Amazon S3 へのデータのエクスポート方法を説明します。
プロビジョニングされた DB インスタンスまたは Aurora Serverless v2 DB インスタンスからエクスポートできます。これらの手順は Aurora Serverless v1 ではサポートされていません。
注記
クロスアカウントでの Amazon S3 はサポートされていません。
現在利用可能な Aurora PostgreSQL のバージョンでは、データの Amazon Simple Storage Service へのエクスポートがサポートされています。詳細なバージョン情報については、「Aurora PostgreSQL リリースノート」の「Amazon Aurora PostgreSQL の更新」を参照してください。
エクスポートにバケットを設定していない場合は、Amazon Simple Storage Service ユーザーガイドで次のトピックを参照してください。
デフォルトでは、Aurora PostgreSQL から Amazon S3 にエクスポートされたデータは、AWS マネージドキー によるサーバー側の暗号化が使用されます。また、既に作成したカスタマーマネージドキーを使用することもできます。バケット暗号化を使用している場合は、Amazon S3 バケットは AWS Key Management Service (AWS KMS) キー (SSE-KMS) で暗号化されている必要があります。現在、Amazon S3 マネージドキー (SSE-S3) で暗号化されたバケットはサポートされていません。
注記
AWS Management Console、AWS CLI、または Amazon RDS API を使用して、DB および DB クラスターのスナップショットデータを Amazon S3 に保存できます。詳細については、「Amazon S3 への DB クラスタースナップショットデータのエクスポート」を参照してください。
トピック
aws_s3 拡張機能のインストール
Aurora PostgreSQL DB クラスター で Amazon Simple Storage Service を使用する前に、aws_s3
拡張機能をインストールする必要があります。この拡張機能には、Aurora PostgreSQL DB クラスターのライターインスタンス から Amazon S3 バケットへデータをエクスポートするための関数も含まれています。また、Amazon S3 からデータをインポートするための関数も含まれます。詳しくは、「Amazon S3 から Aurora PostgreSQL DB クラスターにデータをインポートする」を参照してください。aws_s3
拡張機能は aws_commons
拡張機能の一部のヘルパー関数に依存しており、必要に応じて自動的にインストールされます。
aws_s3
拡張機能をインストールするには
rds_superuser
権限があるユーザーとして、psql (または pgAdmin) を使用して Aurora PostgreSQL DB クラスターのライターインスタンス に接続します。設定プロセス中にデフォルトの名前を保持している場合は、postgres
として接続します。psql --host=
111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --password拡張機能をインストールするには、次のコマンドを実行します。
postgres=>
CREATE EXTENSION aws_s3 CASCADE;NOTICE: installing required extension "aws_commons" CREATE EXTENSION
拡張機能がインストールされていることを確認するには、psql
\dx
メタコマンドを使用します。postgres=>
\dxList of installed extensions Name | Version | Schema | Description -------------+---------+------------+--------------------------------------------- aws_commons | 1.2 | public | Common data types across AWS services aws_s3 | 1.1 | public | AWS S3 extension for importing data from S3 plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (3 rows)
Amazon S3 からデータをインポートし、データを Amazon S3 にエクスポートするための関数が使用できるようになりました。
ご使用の Aurora PostgreSQL バージョンで、Amazon S3 へのエクスポートがサポートされていることを確認します
describe-db-engine-versions
コマンドを使用して、Aurora PostgreSQL バージョンが Amazon S3 へのエクスポートをサポートしていることを確認できます。次の例では、バージョン 10.14 が Amazon S3 にエクスポートできるかどうかを確認します。
aws rds describe-db-engine-versions --region us-east-1 \ --engine aurora-postgresql --engine-version 10.14 | grep s3Export
出力に "s3Export"
の文字列が含まれている場合 、エンジンは Amazon S3 エクスポートをサポートします。それ以外の場合、エンジンはエクスポートをサポートしません。
Amazon S3 へのデータのエクスポートの概要
Aurora PostgreSQL データベースに格納されたデータを Amazon S3 バケットにエクスポートするには、以下の手順に従います。
Aurora PostgreSQL データを S3 にエクスポートするには
-
データのエクスポートに使用する Amazon S3 ファイルパスを指定します。このプロセスの詳細については、「エクスポート先の Amazon S3 ファイルパスを指定する」を参照してください。
-
Amazon S3 バケットへのアクセス許可を提供します。
Amazon S3 ファイルにデータをエクスポートするには、Aurora PostgreSQL DB クラスターに、エクスポートの際に保存に使用される Amazon S3 バケットへのアクセス許可を付与する必要があります。これには、次のステップが含まれます。
-
エクスポート先の Amazon S3 バケットへのアクセスを提供する IAM ポリシーを作成します。
-
IAM ロールを作成します。
-
作成したポリシーを、作成したロールにアタッチします。
-
この IAM ロールを DB クラスターに追加します。
このプロセスの詳細については、「Amazon S3 バケットへのアクセスを設定する」を参照してください。
-
-
データを取得するためのデータベースクエリを識別します。
aws_s3.query_export_to_s3
関数を呼び出して、クエリデータをエクスポートします。前述の準備タスクを完了したら、aws_s3.query_export_to_s3 関数を使用してクエリ結果を Amazon S3 にエクスポートします。このプロセスの詳細については、「aws_s3.query_export_to_s3 関数を使用したクエリデータのエクスポート」を参照してください。
エクスポート先の Amazon S3 ファイルパスを指定する
次の情報を指定して、Amazon S3 データのエクスポート先となる場所を指定します。
-
バケット名 - バケットは、Amazon S3 オブジェクトまたはファイルのコンテナです。
Amazon S3 を使用したデータの保存の詳細については、Amazon Simple Storage Service ユーザーガイドの「Create a bucket」と「View an object」を参照してください。
-
ファイルパス - ファイルパスは、Amazon S3 バケット内のエクスポートが格納される場所を識別します。ファイルパスは、次のもので構成されます。
-
仮想フォルダパスを識別するオプションのパスプレフィックス。
-
保存する 1 つ以上のファイルを識別するファイルプレフィックス。より大きなエクスポートは複数のファイルに格納され、それぞれの最大サイズは約 6 GB です。追加のファイル名には、同じファイルプレフィックスが付いていますが、末尾に
_part
が付加されます。XX
は、2、3 などを表します。XX
例えば、
exports
フォルダとファイルプレフィックスを持つquery-1-export
ファイルパスは/exports/query-1-export
です。 -
-
AWS リージョン (オプション) - Amazon S3 バケットがある AWS リージョン。AWS リージョンの値を指定しない場合、Aurora は、エクスポートする DB クラスターと同じ AWS リージョンの Amazon S3 にファイルを保存します。
注記
現在、AWS リージョンは、エクスポートする DB クラスターのリージョンと同じである必要があります。
AWS リージョン名と関連する値のリストについては、「リージョンとアベイラビリティーゾーン」を参照してください。
エクスポートの保存先に関する Amazon S3 ファイル情報を保持するには、 aws_commons.create_s3_uri 関数を使用して、次のように aws_commons._s3_uri_1
複合構造を作成します。
psql=> SELECT aws_commons.create_s3_uri( 'sample-bucket', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset
その後、この s3_uri_1
値を aws_s3.query_export_to_s3 関数の呼び出しでパラメータとして指定します。例については、「aws_s3.query_export_to_s3 関数を使用したクエリデータのエクスポート」を参照してください。
Amazon S3 バケットへのアクセスを設定する
データを Amazon S3 にエクスポートするには、PostgreSQL DB クラスターに、ファイルが入る Amazon S3 バケットに対するアクセス許可を付与します。
これには、以下の手順を使用します。
IAM ロールを介して PostgreSQLDB のクラスターに Amazon S3 へのアクセスを許可するには
-
IAM ポリシーを作成します。
このポリシーは、PostgreSQL DB クラスターに、Amazon S3 のバケットとオブジェクトに対するアクセス許可を付与します。
このポリシーの作成の一環として、次のステップを実行します。
-
ポリシーに、PostgreSQL DB クラスターから Amazon S3 バケットへのファイル転送を許可するための以下の必須アクションを含めます。
-
s3:PutObject
-
s3:AbortMultipartUpload
-
-
Amazon S3 バケットとバケット内のオブジェクトを識別する Amazon リソースネーム (ARN) を含めます。Amazon S3 アクセス用の ARN 形式は
arn:aws:s3:::
です。your-s3-bucket
/*
Aurora PostgreSQL の IAM ポリシーの作成の詳細については、IAM データベースアクセス用の IAM ポリシーの作成と使用 を参照してください。IAM ユーザーガイドの「チュートリアル: はじめてのカスタマー管理ポリシーの作成とアタッチ」も参照してください。
以下の AWS CLI コマンドでは、これらのオプションを指定して、
rds-s3-export-policy
という名前の IAM ポリシーを作成します。このポリシーでは、your-s3-bucket
という名前のバケットへのアクセス権が付与されます。警告
特定のバケットにアクセスするようにエンドポイントポリシーが設定されているプライベート VPC 内にデータベースをセットアップすることをお勧めします。詳細については、Amazon VPC ユーザーガイドの「Amazon S3 のエンドポイントポリシーの使用」を参照してください。
すべてのリソースへのアクセスを持つポリシーを作成しないことを強くお勧めします。このアクセスは、データセキュリティにとって脅威になる可能性があります。
S3:PutObject
を使用してすべてのリソースへのアクセスを"Resource":"*"
に許可するポリシーを作成すると、エクスポート権限を持つユーザーはアカウント内のすべてのバケットにデータをエクスポートできます。さらに、ユーザーは AWS リージョン内のパブリックに書き込み可能なバケットにデータをエクスポートできます。ポリシーを作成したら、そのポリシーの Amazon リソースネーム (ARN) を書き留めます。ポリシーを IAM ロールにアタッチする場合、後続のステップで ARN が必要です。
aws iam create-policy --policy-name rds-s3-export-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3export", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
your-s3-bucket
/*" ] } ] }' -
-
IAM ロールを作成します。
これを行うと、Aurora PostgreSQL がユーザーに代わってこの IAM ロールを引き受け、Amazon S3 バケットにアクセスできます。詳細については、IAM ユーザーガイドの「IAM ユーザーにアクセス許可を委任するロールの作成」を参照してください。
リソースポリシー内では
aws:SourceArn
およびaws:SourceAccount
のグローバル条件コンテキストキーを使用して、サービスに付与するリソースへのアクセス許可を制限することをお勧めします。これは、混乱した使節の問題に対する最も効果的な保護方法です。グローバル条件コンテキストキーの両方を使用し、
aws:SourceArn
の値にアカウント ID が含まれている場合、同じポリシーステートメントで使用する場合は、aws:SourceArn
の値とaws:SourceAccount
の値のアカウントでは同じアカウント ID を使用する必要があります。単一リソースに対するクロスサービスアクセスが必要な場合は
aws:SourceArn
を使用します。-
そのアカウント内の任意のリソースをクロスサービス使用に関連付けることを許可する場合、
aws:SourceAccount
を使用します。
ポリシーでは、必ずリソースの完全な ARN を持つ
aws:SourceArn
グローバル条件コンテキストキーを使用してください。以下の例は、AWS CLI コマンドを使用して、rds-s3-export-role
という名前のロールを作成する方法を示しています。例
Linux、macOS、Unix の場合:
aws iam create-role \ --role-name rds-s3-export-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
111122223333
", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname
" } } } ] }'Windows の場合:
aws iam create-role ^ --role-name rds-s3-export-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
111122223333
", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname
" } } } ] }' -
作成した IAM ポリシーを、作成した IAM ロールにアタッチします。
次の AWS CLI コマンドは、先ほど作成したポリシーを
rds-s3-export-role.
という名前のロールにアタッチします。
を前のステップでメモしたポリシー ARN に置き換えます。your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role -
DB クラスターに IAM ロールを追加します。これを行うには、以下で説明するように、AWS Management Console または AWS CLI を使用します。
コンソールを使用して PostgreSQL DB クラスターの IAM ロールを追加するには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
詳細を表示するには、PostgreSQL DB クラスターの名前を選択します。
-
[接続とセキュリティ] タブの [IAM ロールの管理] セクションで、[このインスタンスに IAM ロールを追加] で追加するロールを選択します。
-
[Feature] で、[s3Export] を選択します。
-
[Add role] を選択します。
CLI を使用して PostgreSQL DB クラスターの IAM ロールを追加するには
-
次のコマンドを使用して、
my-db-cluster
という名前の PostgreSQL DB クラスターにロールを追加します。
を、以前のステップで書き留めたロール ARN に置き換えます。your-role-arn
s3Export
オプションの値に--feature-name
を使用します。例
Linux、macOS、Unix の場合:
aws rds add-role-to-db-cluster \ --db-cluster-identifier
my-db-cluster
\ --feature-name s3Export \ --role-arnyour-role-arn
\ --regionyour-region
Windows の場合:
aws rds add-role-to-db-cluster ^ --db-cluster-identifier
my-db-cluster
^ --feature-name s3Export ^ --role-arnyour-role-arn
^ --regionyour-region
aws_s3.query_export_to_s3 関数を使用したクエリデータのエクスポート
aws_s3.query_export_to_s3 関数を呼び出して、PostgreSQL データを Amazon S3 にエクスポートします。
前提条件
aws_s3.query_export_to_s3
関数を使用する前に、以下の前提条件を満たしていることを確認してください。
-
「Amazon S3 へのデータのエクスポートの概要」の説明に従って、必要な PostgreSQL エクステンションをインストールします。
-
「エクスポート先の Amazon S3 ファイルパスを指定する。」の説明に従って、データの Amazon S3 のエクスポート先を決定します。
-
「Amazon S3 バケットへのアクセスを設定する」の説明にとおり、DB クラスターが Amazon S3 へのエクスポートアクセス権があることを確認します。
次の例では、sample_table
というデータベーステーブルを使用しています。次の例では、データを sample-bucket
というバケットにエクスポートします。サンプルのテーブルとデータは、psql で次の SQL ステートメントを使用して作成されます。
psql=> CREATE TABLE sample_table (bid bigint PRIMARY KEY, name varchar(80)); psql=> INSERT INTO sample_table (bid,name) VALUES (1, 'Monday'), (2,'Tuesday'), (3, 'Wednesday');
aws_s3.query_export_to_s3 の呼び出し
次に、 aws_s3.query_export_to_s3 関数を呼び出す基本的な方法を示します。
これらの例では、可変 s3_uri_1
を使用して、Amazon S3 ファイルを識別する情報を含む構造を指定しています。aws_commons.create_s3_uri 関数を使用して構造を作成します。
psql=> SELECT aws_commons.create_s3_uri( 'sample-bucket', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset
以下の 2 つの aws_s3.query_export_to_s3
関数呼び出しのパラメータは異なりますが、これらの例の結果は同じです。sample_table
テーブルのすべての行が sample-bucket
というバケットにエクスポートされます。
psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1'); psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1', options :='format text');
パラメータの説明は次のとおりです。
-
'SELECT * FROM sample_table'
- 初期のパラメータは、SQL クエリを含む必須のテキスト文字列です。PostgreSQL エンジンはこのクエリを実行します。クエリの結果は、他のパラメータで指定された S3 バケットにコピーされます。 -
:'s3_uri_1'
- このパラメータは、Amazon S3 ファイルを識別する構造です。この例では、可変を使用して、前に作成した構造を指定します。代わりに、以下のようにaws_commons.create_s3_uri
関数呼び出し内にインラインでaws_s3.query_export_to_s3
関数呼び出しを含めることで、同じ構造を作成できます。SELECT * from aws_s3.query_export_to_s3('select * from sample_table', aws_commons.create_s3_uri('sample-bucket', 'sample-filepath', 'us-west-2') );
-
options :='format text'
-options
パラメータは、PostgreSQLCOPY
引数を含むオプションのテキスト文字列です。このコピープロセスでは、PostgreSQL COPYコマンドの引数と形式を使用します。
指定したファイルが Amazon S3 バケットに存在しない場合は、作成されます。このファイルが存在している場合は、上書きされます。Amazon S3 でエクスポートされたデータにアクセスするための構文は次のとおりです。
s3-
region
://bucket-name
[/path-prefix
]/file-prefix
より大きなエクスポートは複数のファイルに格納され、それぞれの最大サイズは約 6 GB です。追加のファイル名には、同じファイルプレフィックスが付いていますが、末尾に _part
が付加されます。XX
は、2、3 などを表します。例えば、次のようにデータファイルを格納するパスを指定するとします。XX
s3-us-west-2://my-bucket/my-prefix
エクスポートで 3 つのデータファイルを作成する必要がある場合、Amazon S3 バケットには次のデータファイルが含まれます。
s3-us-west-2://my-bucket/my-prefix s3-us-west-2://my-bucket/my-prefix_part2 s3-us-west-2://my-bucket/my-prefix_part3
この関数の完全なリファレンスと、それを呼び出すその他の方法については、「aws_s3.query_export_to_s3」を参照してください。Amazon S3 でファイルにアクセスする方法の詳細については、Amazon Simple Storage Service ユーザーガイドの「View an object」を参照してください。
カスタム区切り文字を使用する CSV ファイルへのエクスポート
次の例は、aws_s3.query_export_to_s3 関数を呼び出して、カスタム区切り文字を使用するファイルにデータをエクスポートする方法を示しています。この例では、PostgreSQL COPY
SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format csv, delimiter $$:$$');
エンコードを使用したバイナリファイルへのエクスポート
次の例は、aws_s3.query_export_to_s3 関数を呼び出して、Windows-1253 エンコーディングのバイナリファイルにデータをエクスポートする方法を示しています。
SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format binary, encoding WIN1253');
Amazon S3 へのアクセスのトラブルシューティング
Amazon S3 へのデータのエクスポート試行時に接続の問題が発生した場合は、まず DB インスタンスに関連付けられた VPC セキュリティグループのアウトバウンドアクセスルールがネットワーク接続を許可していることを確認します。具体的には、DB インスタンスにポート 443 および任意の IPv4 アドレス (0.0.0.0/0) への TCP トラフィックの送信を許可するルールをセキュリティグループに作成します。詳細については、「セキュリティグループを作成して VPC 内の DB クラスターへのアクセスを提供する」を参照してください。
推奨事項については、以下も参照してください。
-
Amazon Simple Storage Service ユーザーガイド の「Troubleshooting Amazon S3」
-
IAM ユーザーガイド の Amazon S3 のトラブルシューティングと IAM
関数リファレンス
aws_s3.query_export_to_s3
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_s3.query_export_to_s3 関数を使用したクエリデータのエクスポート」を参照してください。
[Syntax] (構文)
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_info
-
S3 オブジェクトに関する以下の情報を含む
aws_commons._s3_uri_1
複合型。-
bucket
- ファイルを格納する Amazon S3 バケットの名前。 -
file_path
- Amazon S3 ファイル名とパス -
region
- バケットが存在する AWS リージョン。AWS リージョン名と関連する値のリストについては、「リージョンとアベイラビリティーゾーン」を参照してください。現在、この値は、エクスポートする DB クラスターの AWS リージョンと同じリージョンである必要があります。デフォルトは、エクスポートする DB クラスターの AWS リージョンです。
aws_commons._s3_uri_1
複合構造を作成するには、aws_commons.create_s3_uri 関数を参照してください。 -
- options:
-
PostgreSQL
COPY
コマンドの引数を含むオプションのテキスト文字列。これらの引数は、エクスポート時のデータのコピー方法を指定します。詳細については、「PostgreSQL COPY ドキュメント」を参照してください。 - kms_key text
-
データのエクスポート先となる S3 バケットのカスタマーマネージド KMS キーを含む任意のテキスト文字列。
代替入力パラメータ
テストしやすいように、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 バケットにコピーされます。 - bucket (バケット)
-
ファイルを含む Amazon S3 バケットの名前を含む必須テキスト文字列。
- file_path
-
ファイルのパスを含む Amazon S3 ファイル名を含む必須テキスト文字列。
- region
-
バケットが存在する AWS リージョンを含むオプションのテキスト文字列。AWS リージョン名と関連する値のリストについては、「リージョンとアベイラビリティーゾーン」を参照してください。
現在、この値は、エクスポートする DB クラスターの AWS リージョンと同じリージョンである必要があります。デフォルトは、エクスポートする DB クラスターの AWS リージョンです。
- options:
-
PostgreSQL
COPY
コマンドの引数を含むオプションのテキスト文字列。これらの引数は、エクスポート時のデータのコピー方法を指定します。詳細については、「PostgreSQL COPY ドキュメント」を参照してください。 - kms_key text
-
データのエクスポート先となる S3 バケットのカスタマーマネージド KMS キーを含む任意のテキスト文字列。
出力パラメータ
aws_s3.query_export_to_s3( OUT rows_uploaded bigint, OUT files_uploaded bigint, OUT bytes_uploaded bigint )
- rows_uploaded
-
指定されたクエリで Amazon S3 に正常にアップロードされたテーブルローの数。
- files_uploaded
-
Amazon S3 にアップロードされたファイルの数。ファイルは、約 6 GB のサイズで作成されます。作成される各追加ファイルは、名前に
_part
が付加されています。XX
は、必要に応じて 2、3 などを表します。XX
- bytes_uploaded
-
Amazon S3 にアップロードされた合計バイト数。
例
psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'sample-bucket', 'sample-filepath'); psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'sample-bucket', 'sample-filepath','us-west-2'); psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'sample-bucket', 'sample-filepath','us-west-2','format text');
aws_commons.create_s3_uri
Amazon S3 ファイル情報を保持するように、aws_commons._s3_uri_1
構造を作成します。aws_commons.create_s3_uri
関数の結果は、s3_info
関数の aws_s3.query_export_to_s3 パラメータで使用します。aws_commons.create_s3_uri
関数の使用例については、「エクスポート先の Amazon S3 ファイルパスを指定する」を参照してください。
Syntax
aws_commons.create_s3_uri( bucket text, file_path text, region text )
入力パラメータ
- bucket (バケット)
-
ファイルの Amazon S3 バケット名を含む必須のテキスト文字列。
- file_path
-
ファイルのパスを含む Amazon S3 ファイル名を含む必須テキスト文字列。
- region
-
ファイルがある AWS リージョンを含む必須のテキスト文字列。AWS リージョン名と関連する値のリストについては、「リージョンとアベイラビリティーゾーン」を参照してください。