【问题标题】:UNLOAD to a new file when running in Redshift在 Redshift 中运行时卸载到新文件
【发布时间】:2021-05-27 02:36:02
【问题描述】:

我正在尝试将文件卸载到 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

【问题讨论】:

  • S3 版本控制能否帮助您处理用例?

标签: sql amazon-web-services amazon-redshift unload


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-01-08
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2014-03-12
    • 1970-01-01
    • 2017-01-25
    • 2015-11-28
    相关资源
    最近更新 更多