业务负载常呈现周期性波动,导致固定资源模式在高峰期性能不足,在低谷期又造成资源闲置。为解决此问题,OLAP资源组提供了自动弹性伸缩能力。它能根据实时负载动态增减计算节点:在查询压力增大时自动扩容,确保算力充足;在负载回落后自动缩容,回收闲置资源。这种按需分配的模式,在保障业务高峰期性能的同时,最大化地提升了资源利用率与性价比。
开启自动扩缩容
自动扩缩容的行为受到以下系统级参数的调控,以便控制功能是否开启,以及具体的扩缩容节点数量。
配置参数 | 参数说明 |
enable_cost_based_auto_scaling | 自动扩缩容功能开通标志,true 代表开通,false 代表关闭。默认值为 false。 |
cost_based_auto_scaling_min_nodes | 最小节点数,设置最少有几个节点,以便于保持基本的计算能力,不低于2个。默认值为 -1,代表扩缩容功能默认关闭。 |
cost_based_auto_scaling_max_nodes | 最大节点数,设置最多可以有多少个节点,以便应对高峰时的负载,必须大于最小节点数。默认值为 -1,代表扩缩容功能默认关闭。 |
自动弹性伸缩功能需通过后台参数开启,且必须首先指定最小节点数和最大节点数。如需启用或调整相关配置,请联系Lindorm技术支持(钉钉号:s0s3eg3)。
启用自动弹性伸缩后,资源组将按实际使用的计算资源量进行计费。费用会随系统为应对负载变化而执行的扩容、缩容操作实时变化,实际费用请以控制台为准。
强制触发扩容
资源组虽然有自动判断大查询的能力,但是在某些场景下,用户可能会希望指定查询要使用最大资源量来执行,以达到其性能要求。这种场景下,支持通过让大查询携带指定 hint 来强制触发扩容操作,实现更可控的计算资源管理。
用户可在查询时通过设置会话参数big_query_flag为 true,可强制 SQL 引擎将本查询视为大查询。若当前资源组未达到节点数上限,系统将立即触发扩容操作,直至达到配置的最大节点数,从而为该关键查询提供峰值算力,保障其执行性能。
具体的方式示例如下:
SELECT /*+ SET_VAR("big_query_flag"="true") */ *
FROM somedb.sometable;