Amazon redshift 由于正在运行查询,红移群集变大
由于一个运行了100多小时的查询,在Aginity中我们看到我们的集群大小从1 TB变为5 TB 通过检查svv_table_info,我们发现每个表的大小都比我们过去看到的要大得多。在那之后,我们检查了AWS控制台,我们看到5天前开始增加大小,同时100小时运行的查询也开始了 终止查询后,红移数分钟后大小恢复为1 TB,每个表大小恢复正常 为什么会这样 记录在案的是,运行100小时的查询并没有涉及到所有在查询运行时其大小急剧增加的表 编辑 我现在真的无法重现这个错误。但步骤如下:Amazon redshift 由于正在运行查询,红移群集变大,amazon-redshift,Amazon Redshift,由于一个运行了100多小时的查询,在Aginity中我们看到我们的集群大小从1 TB变为5 TB 通过检查svv_table_info,我们发现每个表的大小都比我们过去看到的要大得多。在那之后,我们检查了AWS控制台,我们看到5天前开始增加大小,同时100小时运行的查询也开始了 终止查询后,红移数分钟后大小恢复为1 TB,每个表大小恢复正常 为什么会这样 记录在案的是,运行100小时的查询并没有涉及到所有在查询运行时其大小急剧增加的表 编辑 我现在真的无法重现这个错误。但步骤如下: 在Agi
- 在Aginity中,我意外地看到集群的大小是5TB,即使集群只有2个ds2.xlarge节点(总共4TB)
- 我查询svv_table_info以获得每个表的大小——它们的总和都是5TB,我发现它们中的大多数看起来都大得惊人
- 我看到DWH拥有所有最新的数据,尽管它“据说”已经满了至少2天(它的大小也超过了4TB)
- 我看到一个运行了100多小时的查询,一位数据分析师留下了一个打开的笔记本。查询没有涉及所有看起来不合理的大表
- 我终止了查询,过了一会儿一切都恢复正常
-如果我们只有2x2TB=4TB的可用空间,红移怎么可能增长到5TB 这也发生在我们身上。红移在运行查询时使用磁盘空间,这就是为什么在终止查询时集群大小会恢复正常
这里有一篇关于这方面的非常好的文章,首先区分Amazon Redshift在查询执行期间如何使用存储可能会有所帮助。有两种方法:
我们已经写了一篇关于如何修复基于磁盘的查询的文章,其中详细介绍了红移的细节:是的,但这真的解释了所有的事情吗?如果没有看到这些查询,就很难准确地理解那里发生了什么。完全正确-这似乎没有意义@srdjan,你能告诉我更多的细节吗?@JonScott你可以看到我在问题底部向上所做的步骤。当同样的事情发生在我身上时,我的查询中出现了一个错误,产生了一个大表的笛卡尔积,因此n个平方行数。。。这会溢出到磁盘上。仔细检查联接条件假设svv_table_info中的表大小反映了磁盘上的实际大小,但这并不总是正确的。总表大小可能大于4TB,但这是由于svv_table_info计算表大小的方式,这是近似值。不管svv_table_信息告诉您什么,您只有4TB的磁盘。群集大小没有“从1TB变为5TB”-群集大小始终为4TB(在本例中)。您所看到的是磁盘空间的使用百分比,您最初使用的磁盘空间约为25%,然后运行这个大查询时,磁盘空间的使用率上升到100%。