弹性增删DWS计算组(存算分离集群)
功能介绍
弹性计算组支持手动添加增删计划和自动弹性增删能力。支持在计划时间段内,动态创建、删除弹性计算组,实现计算资源动态伸缩。
- 通过手动添加定时增删计划创建的计算组主要用于提供计算能力,关联用户后该用户的查询都会切换到该计算组上,同时建表语句仍在原始的计算组上。该方式适合对自身业务负载有一定理解的客户,并且负载呈现出周期性波动特点,波动负载中大查询占多数情况,例如周期性跑批作业场景。
- 通过打开自动弹性开关创建的计算组主要用于提供并发扩展能力,关联主计算组后,主计算组的部分查询路由到该计算组上,同时建表语句仍在原始的计算组上。该方式适合初学者客户,无需了解业务负载特性,无需人工干预,适用于负载中复杂查询占多数,以及作业负载可能持续数十分钟到数小时的突发情况。
开启并使用并发扩展功能,当系统面临高并发作业,主计算组因为内存等资源不足出现排队时,DWS会自动增加额外的集群容量来处理增多的读取和写入语句,减少语句排队时间。不管语句在主计算组上运行还是在并发扩展计算组上运行,用户都将看到最新的数据,且性能相当。您可以通过配置资源池来管理将哪些语句发送到并发扩展计算组。开启并发扩展后,符合条件的语句将发送到并发扩展集群,而不是排队等待。
视频介绍
应用场景
相比于手动添加/删除计算组而言,弹性增删更适合以下业务场景:
- 周期性负载波动:业务负载呈现周期性波动特点,如白天高晚上低,可通过定时增删计划自动调整资源。
- 突发负载:作业负载可能持续数十分钟到数小时的突发情况,可通过自动弹性增删应对。
- 成本优化:在低峰期释放多余计算资源,高峰期按需扩展,避免资源浪费。
手动定时和自动弹性增删计算组的区别
两种弹性增删模式对比如下表所示。
| 对比项 | 手动添加定时增删计划 | 自动弹性增删 |
|---|---|---|
| 触发方式 | 按预设时间计划自动执行。 | 系统根据负载自动触发。 |
| 适用用户 | 对自身业务负载有一定理解的客户。 | 初学者客户,无需了解业务负载特性。 |
| 典型场景 | 周期性跑批作业。 | 突发复杂查询、高并发场景。 |
| 计算组用途 | 提供计算能力和并发扩展能力,支持不同的关联方式:
| 提供并发扩展能力,主计算组部分查询路由到该计算组。 |
| 建表行为 | 建表语句仍在原始的计算组上。 | 建表语句仍在原始的计算组上。 |
| 数据一致性 | 用户始终看到最新数据。 | 用户始终看到最新数据。 |
约束与限制
- 弹性增删计算组功能仅支持存算分离集群,其中自动弹性增删功能仅ECS规格的9.1.0.200及以上集群版本的存算分离集群支持。
- 集群细粒度快照开关默认打开,创建增删计划时会报错,用户需手动关闭细粒度快照开关。
- 存算分离集群包年/包月集群在定时增加计算组时自动扩容节点,节点按需计费。
手动添加定时增删计划约束限制
- 一个用户仅支持绑定到一个弹性计算组上。
- 如果删除计算组时,该计算组关联的用户有业务运行,可能会出现报错。
- 手动添加预估时间可能因为运维操作冲突或其它原因跳过执行,并且如果创建任务因为耗时较久默认会提前20分钟左右触发执行,以确保在设定的时间可以使用资源,请以实际执行情况为准。
- 手动弹性增加计算组的节点个数,建议遵循以下规则确定:
自动弹性增删计算组约束限制
开启并使用并发扩展功能,并发扩展功能限制如下:
- 仅支持V3表和foreign外表。如果为复制表,仅支持SELECT。
- 仅支持SELECT、INSERT、UPDATE、DELETE语句。
- 不支持COPY导入。
- 不支持UPSERT语句。
- 不支持事务块。
- 不支持存储过程。
- 不支持带RETURNING子句和WITH RECURSIVE递归语句。
- 不支持轻量级更新。
- 不支持INSERT单个VALUES或者类似generate_series生成的语句。
手动添加定时增删计划
- 登录DWS管理控制台。
- 在左侧导航栏中,选择“集群 > 集群列表”。
- 在集群列表中,单击指定集群名称,进入“集群详情”页面。
- 在上侧导航栏切换至“计算组”页面,单击“定时增删计划”。
- 右边弹出定时增删计划页面,单击“添加增删计划”并设置合理的调度计划。存算分离集群创建后即为计算组模式,最多仅允许添加两条有效计划。

- 调度计划分为两种:
- 周期性计划:在选中的时间段里(每星期/每月)触发一次,若无其它运维操作冲突则会进行计算组的创建与删除。当与其他操作出现冲突时,可能晚于该时间才会开始创建资源。
表2 周期性计划参数 参数名
参数说明
集群名称
输入计算组名称,该计算组主要用于计算加速。
绑定主计算组
下拉框选择需要绑定的主计算组。
绑定用户
下拉框选择需要绑定的用户。绑定用户后,用户创建的表仍在其原始的计算组上,同时用户的计算组都会切到当前计算组上执行。
节点个数
计算组节点个数。
起止时间
选择开始日期和结束日期。
周期类型
支持“每星期”和“每月”。
时间配置
选择创建完成时间和开始删除时间。其中每周计划可以设置多段创建/删除时间。
- 一次性计划:在指定的时间只执行一次,执行完毕后任务结束。
表3 一次性计划参数 参数名
参数说明
集群名称
输入计算组名称,该计算组主要用于计算加速。
绑定主计算组
下拉框选择需要绑定的主计算组。
绑定用户
下拉框选择需要绑定的用户。绑定用户后,用户创建的表仍在其原始的计算组上,同时用户的计算逻辑都会切到当前计算组上执行。
节点个数
计算组节点个数。
创建完成时间
选择创建完成日期。创建任务耗时较长,因此会提前一定的时间触发,以确保您在设定的时间即可使用资源。
开始删除时间
选择开始删除的日期。
- 周期性计划:在选中的时间段里(每星期/每月)触发一次,若无其它运维操作冲突则会进行计算组的创建与删除。当与其他操作出现冲突时,可能晚于该时间才会开始创建资源。
- 勾选“我已确认”,单击“下一步”。
- 确认无误后,单击“提交”。在定时增删计划模块的表单中,用户可以看到具体的计划详情及下次执行时间。
自动弹性增删计算组
- 登录DWS管理控制台。
- 在左侧导航栏中,选择“集群 > 集群列表”。
- 在集群列表中,单击指定集群名称,进入“集群详情”页面。
- 存算分离集群创建后即为计算组模式,在上侧导航栏单击“计算组”,进入计算组页面。
- 单击“自动弹性开关”开关开启该功能。
开启自动弹性开关后,系统会自动准备节点资源(未使用的节点不收费),并检测业务繁忙程度,在计算组忙闲时自动创建删除只读弹性计算组。
图1 开启自动弹性开关
- 开启自动弹性开关后,通过使用SQL编辑器连接集群后执行SQL语句创建并设置资源池,并为资源池绑定用户,使指定资源池开启自动弹性能力。其中poolg为资源池名称,可以自行定义。
1 2 3
create resource pool "poolg" with(nodegroup = 'v3_logical'); alter user "write_user" with resource pool "poolg"; alter resource pool "poolg" with (enable_concurrency_scaling=true);
图2 设置资源池

