“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 的数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章
FineBI学习系列之FineBI与Amazon Redshift数据连接(图文详解)