我正在尝试在会话级别的HAWQ配置下调整查询 -
SET hawq_rm_stmt_nvseg = 40;
SET hawq_rm_stmt_vseg_memory = '4gb';
HAWQ在带有
的纱线资源管理器上运行Minumum Hawq queue Used capacity 5%
hawq_rm_nvseg_perquery_perseg_limit = 6
hawq_rm_min_resource_perseg = 4
运行查询时,我只看到30个容器正在启动。是否应该不是40个容器(每个虚拟段1核心(?请帮助我了解虚拟片段的内存或核心如何分配?
HAWQ_RM_STMT_NVSEG是配额限制。默认情况下,这是0。因此,将其设置为40不会增加VSEG的数量,而是将其限制。
HAWQ_RM_NVSEG_PERQUERY_PERSEG_LIMIT控制可以创建多少个VSEG,并且您使用的默认值为6。因此,VSEG的数量应为6 *节点数量。如果您看到30,那么您可能有5个节点。
如果您使用的是随机分布式表,则可以增加HAWQ_RM_NVSEG_PERQUERY_PERQUERY_PERSEG_LIMIT,以使更多的VSEG用于查询。
如果您使用的是分布式表,则可以使用较大的桶值重新创建表格,当您查询时会为您提供更多的VSEG。