我想更新Redshift群集的WLM配置,但由于显示以下消息,我无法进行更改并保存:
必须先纠正以下问题,然后才能保存此工作负载配置:
最终队列可能不包含用户组或查询组。
现在,显而易见的解决方案是创建一个没有指定用户组的新队列,并为其提供剩余的内存量,以便它们总计达到100%。这很烦人,因为添加新队列需要群集重启,但这不是我问这个问题的原因。
我的主要问题是,是否需要解释一个新的“非用户”队列?这肯定是一个变化,因为以前我有四个队列,每个队列都有一个指定的用户组,他们的集体内存分配是87%。它没有达到100%,并且据推测其余部分是由redshift动态管理的。
现在,我创建这个新队列没有问题,但我真的希望在我做之前看到它的作用/它的影响的明确解释。我没有在他们的官方博客上看到更新,我在文档中没有看到这个更新,或者文档更新(http://docs.aws.amazon.com/redshift/latest/mgmt/document-history.html,https://docs.aws.amazon.com/redshift/latest/dg/doc-history.html)这阻止我做出其他所需的更改现有的队列。
答案 0 :(得分:0)
我不确定你的这句话:
之前,我有四个队列,每个队列都有一个指定的用户组
但是,很容易猜到为什么Redshift需要一个默认队列(即没有任何用户或查询组的队列)作为最后一个队列。假设你有四个队列,每个队列都有一个不同的用户组,比如UG1,UG2,UG3和UG4。现在,来自另一个用户组的用户,比如UG5,查询Redshift。它被路由到哪个队列?在这种情况下,默认队列会有所帮助。
你可能反驳说Redshift可以使用剩余的13%内存。如果来自UG5的100个并发查询怎么办? Redshift没有任何关于如何将13%内存分配给这些查询的配置。如果它自己管理内存,那么集群的性能将无法预测。
但是,我同意Redshift文档对此缺乏明确性。我能找到的最接近的是this。但是,它并没有说默认队列不能有任何用户或查询组。
默认队列必须是WLM配置中的最后一个队列。任何 未路由到其他队列的查询在默认队列中运行。
无论如何,我想你必须忍受它。