添加 2 个节点后,Redshift 免费存储不会增加

Posted

技术标签:

【中文标题】添加 2 个节点后,Redshift 免费存储不会增加【英文标题】:Redshift free storage doesn't increase after adding 2 nodes 【发布时间】:2019-11-28 12:24:14 【问题描述】:

我的 4 节点(dc2.large 160 GB 每个节点的存储空间)Redshift 集群的存储空间已满约 75%,因此我添加了 2 个节点,总共 6 个节点,我预计磁盘使用率会下降到大约 50%,但在进行上述更改后,磁盘使用率仍保持在 75%(即使经过几天和VACUUM 之后)。

4*160 的 75% = 480 GB 数据

6*160 = 新配置中有 960 个可用存储空间,这意味着它应该下降到 480/960,即接近 50% 的磁盘使用率。

该图显示了添加两个节点前后的磁盘空间百分比。

我还检查了是否有任何使用DISTSTYLE ALL 的大表,这会导致跨节点的数据复制,但是与总存储容量相比,我拥有的表的大小非常小,所以我没有'认为它们不会对存储产生任何重大影响。

由于我不想添加更多节点然后在相同的情况下再次登陆,我可以在这里做些什么来减少存储使用量?

【问题讨论】:

【参考方案1】:

听起来您的表格受到最小表格大小的影响。这可能违反直觉,但您通常可以通过将小表转换为 DISTSTYLE ALL 来减小它们的大小。

https://aws.amazon.com/premiumsupport/knowledge-center/redshift-cluster-storage-space/

【讨论】:

【参考方案2】:

您能否说明您对一些较大的表使用的分布方式?

如果你没有指定分发方式,那么 Redshift 会自动选择一个(参见here),它可能会首先选择ALL 分发,然后只切换到EVENKEY 分发一次你达到了一定的磁盘使用率%。

另外,您是否运行了ANALYZE 命令来确保表统计信息是最新的?

【讨论】:

只有少数表是DISTSTYLE ALL,我在上面的截图中分享了他们使用的存储空间。我拥有的较大的表主要使用DISTSTYLE KEY

以上是关于添加 2 个节点后,Redshift 免费存储不会增加的主要内容,如果未能解决你的问题,请参考以下文章

Aurora vs Redshift vs DynamoDB for Indie Game Backend?

将文件从 s3 复制到 redshift 花费的时间太长

Lambda - 存储/传递 Redshift 连接

调整AWS Redshift集群的大小,每个节点是否需要IP?

Redshift 表在生产集群中占用的磁盘空间呈指数增长

Amazon Redshift 的最佳集群配置