将空表从 redshift 卸载到 s3 的行为如何?
Posted
技术标签:
【中文标题】将空表从 redshift 卸载到 s3 的行为如何?【英文标题】:How does unloading an empty table from redshift to s3 behaves? 【发布时间】:2019-10-31 17:21:45 【问题描述】:如果使用 UNLOAD 命令将一个空表从 redshift 卸载到 S3,它是在 S3 上创建一个空文件还是什么都不做。
早些时候(几天前)我使用卸载命令命令卸载,它在 s3 上放置了一个 0 字节的文件。但是今天它什么也没做(也就是说,s3 上没有放置文件),但 redshift 显示“卸载完成,0 条记录成功卸载”消息。 即使在 UNLOAD 命令的选项中使用 HEADER(使用标题卸载)也不会在 s3 上显示任何文件。
UNLOAD ($$ SELECT * FROM <table_name> $$) TO
's3://<bucket_name>/abc/test1'
iam_role '<iam_role>' ADDQUOTES HEADER ALLOWOVERWRITE DELIMITER AS ','
ESCAPE PARALLEL OFF
【问题讨论】:
【参考方案1】:根据 AWS 支持,当版本 >= 1.0.10880 中没有要卸载的数据时,他们已回到旧的 UNLOAD 行为,即创建空文件。因此,版本 >= 1.0.10880 的 redshift 集群具有修复程序,并且在所有区域都可用。
【讨论】:
【参考方案2】:从昨天开始,卸载功能似乎发生了变化。空表在卸载时不会生成文件。
【讨论】:
点评来源: 嗨,这篇文章似乎没有为问题提供answer;它更适合作为评论。以上是关于将空表从 redshift 卸载到 s3 的行为如何?的主要内容,如果未能解决你的问题,请参考以下文章
将一张表从 RDS / postgres 加载到 Redshift