メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

区切り文字付きまたは固定幅形式でデータをアンロードする

データのアンロードは、区切り文字付き形式と固定幅形式のどちらでも可能です。デフォルトでは、出力はパイプ文字 (|) で区切られます。

次に示す例では、カンマを区切り文字として指定しています。

Copy
unload ('select * from venue') to 's3://mybucket/tickit/venue/comma' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' delimiter ',';

生成される出力ファイルは次のようになります。

Copy
20,Air Canada Centre,Toronto,ON,0 60,Rexall Place,Edmonton,AB,0 100,U.S. Cellular Field,Chicago,IL,40615 200,Al Hirschfeld Theatre,New York City,NY,0 240,San Jose Repertory Theatre,San Jose,CA,0 300,Kennedy Center Opera House,Washington,DC,0 ...

同じ結果セットをアンロードしてタブ区切りファイルに出力するには、次のコマンドを実行します。

Copy
unload ('select * from venue') to 's3://mybucket/tickit/venue/tab' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' delimiter as '\t';

代わりに、FIXEDWIDTH 指定を使用することもできます。この指定は、各テーブル列の識別子と、その列の幅 (文字数) で構成されます。幅が不足している場合は、データが切り捨てられるのではなく UNLOAD コマンドが異常終了するので、指定する幅は、その列の最も長いエントリの長さ以上となるようにしてください。固定幅データのアンロードの動作は、区切り文字付きのデータのアンロードに似ています。異なるのは、生成される出力の中に区切り文字が含まれていない点です。以下に例を示します。

Copy
unload ('select * from venue') to 's3://mybucket/tickit/venue/fw' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' fixedwidth '0:3,1:100,2:30,3:2,4:6';

固定幅出力は次のようになります。

Copy
20 Air Canada Centre Toronto ON0 60 Rexall Place Edmonton AB0 100U.S. Cellular Field Chicago IL40615 200Al Hirschfeld Theatre New York CityNY0 240San Jose Repertory TheatreSan Jose CA0 300Kennedy Center Opera HouseWashington DC0
FIXEDWIDTH 指定の詳細については、COPY コマンドの説明を参照してください。