gpt4 book ai didi

node.js - Amazon Redshift Node 并行请求比顺序请求花费的时间更长

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:31 25 4
gpt4 key购买 nike

我正在尝试使用 node-redshift 和 pg 从我的 Node 应用程序运行一系列有关 redshift 的选择查询。如果我按顺序运行查询,则每个查询平均需要 2 秒。但是当我并行运行查询时,它们花费的时间要长得多,最后一个查询大约需要 32 秒。

我可以清楚地看到阻塞是由查询的并行加载引起的。对此可以采取什么措施?

我还可以得出结论,Redshift 不需要那么长时间。因为缓存的 Redshift 查询仍然需要相当大的开销。

顺序:

Sequential

并行:

Parallel

最佳答案

Amazon Redshift Workload Management可用于配置并发、队列和内存分配。

By default, Amazon Redshift configures one queue with a concurrency level of five, which enables up to five queries to run concurrently, plus one predefined Superuser queue, with a concurrency level of one. You can define up to eight queues. Each queue can be configured with a maximum concurrency level of 50. The maximum total concurrency level for all user-defined queues (not including the Superuser queue) is 50.

并发查询需要永久分配的内存。如果您始终运行并发查询,这很好,但如果它只运行少量时间,则很浪费。

常见的做法是创建单独的队列:

  • 一个队列,用于低并发且长时间运行的查询。这会为每个查询分配大量内存,但查询可能会排队。
  • 一个用于短期运行查询的队列。这允许较短的查询快速完成,而不会受到长时间运行的查询的影响 - 例如,每隔几分钟计算一次仪表板查询。这些类型的查询可能需要更少的内存,因此可以提高并发性。

底线:默认情况下,Redshift 配置为用于低并发的大型、复杂查询。您可以调整设置。

关于node.js - Amazon Redshift Node 并行请求比顺序请求花费的时间更长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49864052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com