由于查询运行了100多个小时,在Aginity中,我们发现群集大小从1 TB增长到5 TB。
通过检查svv_table_info,我们看到每个表的大小都比过去大得多。之后,我们检查了AWS控制台,并发现大小增加是在5天前开始的,与此同时开始运行100小时的查询也是如此。
终止查询后,Redshift大小恢复到1 TB几分钟后,每个表的大小恢复正常。
为什么会这样呢?
仅作记录,运行100小时的查询并没有涉及在查询运行期间其大小急剧增加的所有表。
已编辑
我现在无法真正重现该错误。但是步骤如下:
在Aginity中,即使群集只有2 x ds2.xlarge节点(总计4TB),我也偶然看到群集的大小为5TB
我查询svv_table_info以获取每个表的大小-它们总计达到5TB,我发现其中的大多数看起来都非常大
我看到DWH拥有所有最新数据,即使“报告”数据已满至少2天(其大小也超过4TB)
我看到一个正在运行100多个小时的查询,其中一位数据分析师离开了笔记本。查询没有涉及所有看起来不合理的大表
我取消了查询,片刻后一切恢复正常
所以:
-如果我们只有2x2TB = 4TB可用空间,那么Redshift如何增长到5TB!
最佳答案
这也发生在我们身上。 Redshift在运行查询时会使用磁盘空间,这就是为什么当您终止查询时,群集大小会恢复正常。
这是关于https://www.periscopedata.com/blog/disk-based-temporary-tables的非常好的文章