Redshift 中并行查询的执行时间随着查询数量的增加而急剧增加

Posted

技术标签:

【中文标题】Redshift 中并行查询的执行时间随着查询数量的增加而急剧增加【英文标题】:The execution time of parallel queries in Redshift increases drastically with the no of queries 【发布时间】:2021-12-01 15:13:27 【问题描述】:

我是 Amazon Redshift 的新手。我已将一些数据预加载到表中,并且正在测试 Redshift 中的查询延迟。我观察到的事实是,对于并行查询,执行时间随着并行触发的查询数量的增加而大幅增加。 Redshift 文档指出了排序键的使用,我已经尝试了所有这些,但情况仍然保持不变。请帮助我改善 Redshift 中的并行查询执行时间。

【问题讨论】:

【参考方案1】:

听起来您只是发出更多查询而不更改队列定义,对吧?

Redshift 使用排队系统来管理称为 WLM(工作负载管理器)的大量查询。 WLM 是可配置的,并限制实际并行执行的查询数量与队列中等待的数量。所以我想看看的第一个问题是观察到的延迟有多少是由于“排队等待”时间造成的。

现在,在许多情况下,仅仅增加可以并行执行的查询数量并不能解决延迟问题。 Redshift 通常一次可以执行 1 到 2 打查询,具体取决于查询的复杂性。允许同时执行太多查询会大大降低集群的总体性能。大多数人都有大小查询混合使用,正确配置 WLM 可以通过允许在大批量查询排队时快速执行简单和高优先级的查询来改善查询延迟。

【讨论】:

还要考虑 auto-WLM 让系统决定如何配置并发和内存分配来优化吞吐量。有关如何从手动切换到自动 WLM 的详细信息,请参阅 docs.aws.amazon.com/redshift/latest/dg/automatic-wlm.html

以上是关于Redshift 中并行查询的执行时间随着查询数量的增加而急剧增加的主要内容,如果未能解决你的问题,请参考以下文章

Redshift 查询输出对于 RAM 来说太大

Amazon Redshift 节点并行请求比顺序请求花费的时间更长

深度解析PolarDB数据库并行查询技术

Redshift 查询花费太多时间

Redshift:查询结果缓存与查询编译缓存

使用 Pyspark 在 redshift 上执行查询