Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

以分隔或固定宽度格式卸载数据

您可以按分隔格式或固定宽度格式卸载数据。默认输出为管道分隔(使用“|”字符)。

下面的示例将逗号指定为分隔符:

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 命令。