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

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

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

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

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

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

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 ...

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

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

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

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';

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

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 仕様についての詳細は、UNLOAD コマンドを参照してください。