在大量的数据更新之后,加速Redshift中VACUUM命令的最佳实践是什么?

0

【以下的问题经过翻译处理】 我正在使用一个16节点RA3.4XL集群上的30TB表进行Amazon Redshift的POC。在进行重要的数据更新后,我运行了VACUUM BOOST的命令(针对具有复合排序键的表),它大约需要10个小时才能完成。在清理窗口期间,CPU利用率不高于30%。如何才能让VACUUM命令运行更快呢?

我对这个长时间停机感到担忧,因为表中的数据更新可能需要定期运行(例如,遵守GDPR合规性要求),并且必须在更新完成后运行VACUUM命令。

profile picture
专家
已提问 5 个月前1 查看次数
1 回答
0

【以下的回答经过翻译处理】 在Amazon Redshift中运行VACUUM命令是非常资源密集型的任务。不建议在线上大型表格中运行VACUUM,特别是表格中有很多未排序/删除的行。

考虑以下替代方案:

  1. 对于大型表格卸载到Amazon S3,然后再复制回来。在执行这些步骤之前,对集群进行弹性调整,将节点数增加两倍,然后在操作完成后恢复到原始的集群大小。

  2. 进行深度复制,即创建一个新表格,并使用批量插入重新填充。在进行深度复制之前,对集群进行弹性调整。

  3. 创建一个手动快照,并恢复到一个新的集群中。当此操作完成后,您可以选择删除原始集群并重命名新集群。这可能是移除大量已删除行的最快选项(大约需要一到两个小时)。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则