我对RedShift非常陌生,并且正在尝试调试为什么我们的系统运行得非常慢。我注意到我们有大约50个用户和数百个每天运行的报告,所有这些都需要大量的执行时间。我认为,我的部分问题存在于问题中,并发查询太多,系统运行速度慢。
我希望优化排队系统,以便某些用户/应用程序具有优先权,而很少运行的低优先级报告将进入不同的队列。
如何查看当前队列并设置新队列?此外,是否有可能将单个用户限制为特定队列,以便他们运行的每个查询都位于该特定队列中?谢谢。
发布于 2016-08-28 23:54:41
亚马逊专门为这个任务提供了工作负荷管理。
这允许您分配内存和其他资源,如设置并发性、设置超时值等。如果您可以访问AWS Redshift控制台,则可以轻松地将一个参数组分配给集群,然后浏览参数组> WLM,然后将该特定集群的WLM参数设置在以下-
并发性--最多可以并发运行的查询数。
用户组--您需要创建像(report_gr、etl_gr、default_gr等)这样的用户组,并相应地将用户分配给这些组。
该用户组查询的超时值。
内存-为该用户组的查询分配的内存百分比。
发布于 2019-07-05 17:29:54
最初的问题来自2016年,同时AWS增加了更多的旋钮来微调你的工作量。
三个组成部分:
工作负载管理()允许将不同的用户分离开来。见下图。由于用户共享类似的内存和工作负载模式,我们建议根据他们运行的SQL命令的类型将用户分隔开来。我们建议4个队列:
我写了一篇关于如何在4个步骤中配置WLM的详细文章。医生建议不要超过15个名额,但现实是,你可以一直走到50个。这假设您有足够的内存,因此查询不会返回到磁盘。
默认情况下,短查询加速AWS会打开SQA。他们预测查询的长度,并将短查询路由到特定队列。
Amazon的并发性缩放为Redshift集群提供了处理查询负载中突发的额外能力。它的工作方式是将查询卸载到后台的新的“并行”集群。查询基于WLM配置和规则进行路由。
您必须打开控制台中的并发性,AWS声称97%的Redshift用户是免费的。我们运行了一个并发性缩放的内部测试,并发现缩放可以减少查询中突发期间的队列时间。
https://dba.stackexchange.com/questions/139938
复制