0

我正在尝试将文件卸载到 S3 存储桶。但是,我不想覆盖,而是在每次运行命令时创建一个新文件。我怎样才能做到这一点?

unload ('select * from table1')
to 's3://bucket/file1/file2/file3/table1.csv' 
iam_role 'arn:aws:iam::0934857378:role/RedshiftAccessRole,arn:aws:iam::435874575846546:role/RedshiftAccessRole'
DELIMITER ','
PARALLEL OFF 
HEADER
4

1 回答 1

0

只需更改“TO”部分中指定的目标路径即可。

如果您希望以编程方式执行此操作,您可以在任何脚本/命令发送UNLOAD命令中执行此操作。

可以通过存储过程来做到这一点,方法是保留一个包含最后一个文件编号的表并编写代码来检索和增加它。

或者,您可以编写一个在创建文件时触发的 AWS Lambda 函数。然后 Lambda 函数可以将该对象复制到不同的路径/文件名并删除原始对象。

于 2021-05-27T05:57:07.470 回答