【发布时间】:2019-04-04 17:49:37
【问题描述】:
我是 redshift 的新手,正在努力更新 redshift 表中的列。我有一个巨大的数据表,并在其中添加了一个空列。我试图通过使用更新命令将它与另一个表连接来填充这个空列。我担心的是,即使还剩下 291 GB 的空间,这个 UPDATE 语句创建的临时块也会产生 DISK FULL 错误。任何解决方案或建议表示赞赏。提前致谢!
【问题讨论】:
标签: amazon-web-services amazon-redshift
我是 redshift 的新手,正在努力更新 redshift 表中的列。我有一个巨大的数据表,并在其中添加了一个空列。我试图通过使用更新命令将它与另一个表连接来填充这个空列。我担心的是,即使还剩下 291 GB 的空间,这个 UPDATE 语句创建的临时块也会产生 DISK FULL 错误。任何解决方案或建议表示赞赏。提前致谢!
【问题讨论】:
标签: amazon-web-services amazon-redshift
不建议在 Amazon Redshift 表中执行大型 UPDATE 命令。
原因是即使只更新一行中的一列也会导致以下情况:
如果您要更新表中的每一行,这意味着表所需的存储量是原来的两倍,可能更多是因为压缩效率较低。这可能是占用您的磁盘空间的原因。
建议的替代方法是将连接的数据选择到新表中。是的,这也需要更多的磁盘空间,但组织起来会更有效率。然后您可以删除原始表并将新表重命名为旧表名。
一些资源:
【讨论】: