amazon-web-services - update 命令中的临时块使 DISK FULL 红移
问题描述
我是红移新手,正在努力更新红移表中的列。我有一个巨大的数据表,并在其中添加了一个空列。我试图通过使用更新命令将它与另一个表连接来填充这个空列。我担心的是,即使还剩下 291 GB 的空间,这个 UPDATE 语句创建的临时块也会产生 DISK FULL 错误。任何解决方案或建议表示赞赏。提前致谢!
解决方案
不建议UPDATE
在 Amazon Redshift 表中执行大型命令。
原因是即使只更新一行中的一列也会导致以下情况:
- 现有行将被标记为Deleted,但仍会占用磁盘空间,直到表被 VACUUMed
- 一个新行被添加到表存储的末尾,然后它是无序的
如果您要更新表中的每一行,这意味着表所需的存储量是两倍,可能更多是因为压缩效率较低。这可能是消耗您的磁盘空间的原因。
建议的替代方法是将连接的数据选择到新表中。是的,这也需要更多的磁盘空间,但组织起来会更有效率。然后,您可以删除原始表并将新表重命名为旧表名。
一些资源:
推荐阅读
- c - Visual Studio Code:参数未传递给 C 命令行应用程序
- raspberry-pi - 为什么我的输入源在发送时没有改变
通过 CEC 客户端发送消息? - couchdb - 使用 couchdb 超级账本结构时加入对等通道时出错
- sbt - sbt-native-packager Inellij 中的未知工件
- javascript - 从 blob url 下载 video.mp4
- ios - iOS Xcode Swift - 如何获取热点连接设备的 IP 地址?
- php - 如何使用php从txt文件中读取所有第二行并将它们放入1个变量中
- python - 很多不一致的包
- flutter - 多个 WillPopScope?
- c# - JsonConvert.DeserializeObject 不反序列化我的 json