メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

マニフェストを使用し、データファイルを指定する

COPY コマンドにより必要なすべてのファイルのみがロードされるように、データロードにマニフェストを使用できます。この場合、COPY コマンドにオブジェクトパスを指定する代わりに、ロードするファイルのリストを JSON 形式のテキストファイルに明示的に指定します。マニフェスト内の URL ではプレフィックスだけでなく、バケットの名前とファイルの完全なオブジェクトパスを指定しておく必要があります。マニフェストを使用し、異なるバケットからファイルをロードしたり、同じプレフィックスを共有しないファイルをロードしたりできます。次の例では、バケットが異なり、ファイル名が日付スタンプで始まるファイルをロードする JSON を示しています。

Copy
{ "entries": [ {"url":"s3://mybucket-alpha/2013-10-04-custdata", "mandatory":true}, {"url":"s3://mybucket-alpha/2013-10-05-custdata", "mandatory":true}, {"url":"s3://mybucket-beta/2013-10-04-custdata", "mandatory":true}, {"url":"s3://mybucket-beta/2013-10-05-custdata", "mandatory":true} ] }

ファイルが見つからない場合に、オプションの mandatory フラグによって COPY コマンドがエラーを返すかどうかを指定します。mandatory のデフォルトは false です。mandatory 設定と関係なく、どのファイルも見つからない場合、COPY は終了します。

次の例では、前の例にあった「cust.manifest」という名前のマニフェストで COPY コマンドを実行しています。

Copy
copy customer from 's3://mybucket/cust.manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;

詳細については、「Example: COPY from Amazon S3 using a manifest」を参照してください。

UNLOAD で作成されたマニフェストの使用

MANIFEST パラメータを使用して オペレーションで作成したマニフェストには、COPY オペレーションに必要ないキーが含まれている場合があります。たとえば、次の UNLOAD マニフェストには、Amazon Redshift Spectrum の外部テーブルで使用される meta キーが含まれています。COPY オペレーションに必要なのは url キーとオプションの mandatory キーのみです。

Copy
{ "entries": [ {"url":"s3://mybucket/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }}, {"url":"s3://mybucket/unload/unload/manifest_0001_part_00", "meta": { "content_length": 5997091 }} ] }