“PB 级”Redshift 使用超过 500 MB 的内存来对 848.00 KB 的数据进行排序

Posted

技术标签:

【中文标题】“PB 级”Redshift 使用超过 500 MB 的内存来对 848.00 KB 的数据进行排序【英文标题】:"Petabyte scale" Redshift uses more than 500 MB Memory to sort 848.00 KB of Data 【发布时间】:2016-08-29 11:09:01 【问题描述】:

我注意到在执行计划的一个步骤中分配了相当大的内存,这很令人困惑。

有什么想法,为什么会发生这样的事情?

查询是从 sort_key=value 的表中直接选择 *, row_number() over(partition by column1)。 rrs 过滤后的数据集为 1000 行。然后应用排序。

【问题讨论】:

您的问题没有包含足够的信息,因此无法回答。什么是查询?桌子是什么?数据量是多少?整个执行计划是什么?我在另一个不相关的答案中解释了为什么 Redshift 将为给定查询的每列每切片至少读取一个块。您看到的行为很可能是正常的,但是如果不了解完整的上下文,就很难更详细地讨论它。 ***.com/questions/39090962/… 为什么说使用657MB内存排序1000行是正常的? 在我看来,这只是分配的内存,而不是用于排序的内存。 【参考方案1】:

即为查询队列槽分配的工作内存。如果您将查询范围从几行更改为 10 万行,它将显示相同的工作内存。

【讨论】:

以上是关于“PB 级”Redshift 使用超过 500 MB 的内存来对 848.00 KB 的数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章

数据中心级持久内存如何破解PB级数据分析难题

FineBI学习系列之FineBI与Amazon Redshift数据连接(图文详解)

什么是pb级存储?

大规模加载 PB 级数据

如何使用 R 和 dplyr 从 Redshift 检索超过 100000 行

在 Redshift 中获取超过 100,000 条记录 [关闭]