# 弹性增删DWS计算组（存算分离集群）
#### 功能介绍
弹性计算组支持手动添加增删计划和自动弹性增删能力。支持在计划时间段内，动态创建、删除弹性计算组，实现计算资源动态伸缩。
- 通过[手动添加定时增删计划]创建的计算组主要用于提供计算能力，关联用户后该用户的查询都会切换到该计算组上，同时建表语句仍在原始的计算组上。该方式适合对自身业务负载有一定理解的客户，并且负载呈现出周期性波动特点，波动负载中大查询占多数情况，例如周期性跑批作业场景。
- 通过[打开自动弹性开关]创建的计算组主要用于提供并发扩展能力，关联主计算组后，主计算组的部分查询路由到该计算组上，同时建表语句仍在原始的计算组上。该方式适合初学者客户，无需了解业务负载特性，无需人工干预，适用于负载中复杂查询占多数，以及作业负载可能持续数十分钟到数小时的突发情况。
  开启并使用并发扩展功能，当系统面临高并发作业，主计算组因为内存等资源不足出现排队时，DWS会自动增加额外的集群容量来处理增多的读取和写入语句，减少语句排队时间。不管语句在主计算组上运行还是在并发扩展计算组上运行，用户都将看到最新的数据，且性能相当。您可以通过配置资源池来管理将哪些语句发送到并发扩展计算组。开启并发扩展后，符合条件的语句将发送到并发扩展集群，而不是排队等待。
  
 
#### 视频介绍
<video controls="controls" preload="none" id="object149916815322" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/dws-video/1751356270766668161.mp4" title="存算分离自动弹性逻辑集群" poster="https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002369115932.png" height="308.0000" width="600.0000"></video>
#### 应用场景
相比于手动添加/删除计算组而言，弹性增删更适合以下业务场景：
- **周期性负载波动**：业务负载呈现周期性波动特点，如白天高晚上低，可通过定时增删计划自动调整资源。
- **突发负载**：作业负载可能持续数十分钟到数小时的突发情况，可通过自动弹性增删应对。
- **成本优化**：在低峰期释放多余计算资源，高峰期按需扩展，避免资源浪费。
 
#### 手动定时和自动弹性增删计算组的区别
两种弹性增删模式对比如下表所示。
表1手动和自动增删计算组区别 
| 对比项      | 手动添加定时增删计划                                                                                                                                                                                                                                                                                                                                                                                                                                              | 自动弹性增删                   |
|:---|:---|:---|
| 触发方式     | 按预设时间计划自动执行。                                                                                                                                                                                                                                                                                                                                                                                                                                           | 系统根据负载自动触发。               |
| 适用用户    | 对自身业务负载有一定理解的客户。                                                                                                                                                                                                                                                                                                                                                                                                                                       | 初学者客户，无需了解业务负载特性。      |
| 典型场景     | 周期性跑批作业。                                                                                                                                                                                                                                                                                                                                                                                                                                                | 突发复杂查询、高并发场景。            |
| 计算组用途 | 提供计算能力和并发扩展能力，支持不同的关联方式： - 用户绑定方式：绑定用户后查询切换到该计算组。  - 比例路由方式：将绑定的主计算组作业路由到该计算组。  - 既不绑定用户，也不绑定主计算组：所有主计算组的作业都可以路由到该计算组。   | 提供并发扩展能力，主计算组部分查询路由到该计算组。 |
| 建表行为   | 建表语句仍在原始的计算组上。                                                                                                                                                                                                                                                                                                                                                                                                                                         | 建表语句仍在原始的计算组上。           |
| 数据一致性  | 用户始终看到最新数据。                                                                                                                                                                                                                                                                                                                                                                                                                                             | 用户始终看到最新数据。              |
   
#### 约束与限制
- **该功能为Beta特性，如需使用请联系技术支持。**
- 弹性增删计算组功能仅支持存算分离集群，其中自动弹性增删功能仅ECS规格的9.1.0.200及以上集群版本的存算分离集群支持。
- 集群细粒度快照开关默认打开，创建增删计划时会报错，用户需手动关闭细粒度快照开关。
- 存算分离集群包年/包月集群在定时增加计算组时自动扩容节点，节点按需计费。
**手动添加定时增删计划** **约束限制**
- 一个用户仅支持绑定到一个弹性计算组上。
- 如果删除计算组时，该计算组关联的用户有业务运行，可能会出现报错。
- 手动添加预估时间可能因为运维操作冲突或其它原因跳过执行，并且如果创建任务因为耗时较久默认会提前20分钟左右触发执行，以确保在设定的时间可以使用资源，请以实际执行情况为准。
- 手动弹性增加计算组的节点个数，建议遵循以下规则确定：
  - **并发负载** **场景** ：根据被路由到弹性计算组业务的历史内存占用，决定弹性计算组的节点个数。具体来说，预计将***n*** 个作业路由到弹性计算组，其中第***i*** 个作业的内存占用峰值为***m*** ~***i***~，计算组中节点个数为***N*** ，单个节点的可用内存为***S*** ，则弹性计算组的节点个数建议设置为![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002692853775.png "点击放大")，其中通过查询**"GS_WLM_SESSION_INFO"** 的**"max_peak_memory"** 字段查看业务的内存占用峰值；通过查询**"PGXC_TOTAL_MEMORY_DETAIL"** 的**"max_dynamic_memory"**字段查看单节点的可用内存。
  
  - **串行负载** **场景** ：根据串行业务负载中内存占用最大的作业决定弹性计算组的节点个数。具体来说，串行作业负载中最大的作业内存占用为***M*** ，计算组中节点个数为***N*** ，单个节点的可用内存为***S*** ，则弹性计算组的个数建议设置为![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002692973655.png "点击放大")，其中查看作业内存占用峰值和单节点的可用内存同上述方法一致。
   
**自动弹性增删计算组** **约束限制**
开启并使用并发扩展功能，并发扩展功能限制如下：
- 仅支持V3表和foreign外表。如果为复制表，仅支持SELECT。
- 仅支持SELECT、INSERT、UPDATE、DELETE语句。
- 不支持COPY导入。
- 不支持UPSERT语句。
- 不支持事务块。
- 不支持存储过程。
- 不支持带RETURNING子句和WITH RECURSIVE递归语句。
- 不支持轻量级更新。
- 不支持INSERT单个VALUES或者类似generate_series生成的语句。
 
 #### 手动添加定时增删计划
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"集群 \> 集群列表"**。
3. 在集群列表中，单击指定集群名称，进入**"集群详情"**页面。
4. 在上侧导航栏切换至**"计算组"** 页面，单击**"定时增删计划"**。
5. 右边弹出定时增删计划页面，单击**"添加增删计划"** 并设置合理的调度计划。存算分离集群创建后即为计算组模式，最多仅允许添加**两条** 有效计划。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587065644.png "点击放大")
   
   
6. 调度计划分为两种： 
   - **周期性计划：** 在选中的时间段里（每星期/每月）触发一次，若无其它运维操作冲突则会进行计算组的创建与删除。当与其他操作出现冲突时，可能晚于该时间才会开始创建资源。
     表2周期性计划参数 
     | 参数名    | 参数说明                                                       |
     |:---|:---|
     | 集群名称    | 输入计算组名称，该计算组主要用于计算加速。                                     |
     | 绑定主计算组 | 下拉框选择需要绑定的主计算组。                                             |
     | 绑定用户    | 下拉框选择需要绑定的用户。绑定用户后，用户创建的表仍在其原始的计算组上，同时用户的计算组都会切到当前计算组上执行。 |
     | 节点个数    | 计算组节点个数。                                                   |
     | 起止时间    | 选择开始日期和结束日期。                                             |
     | 周期类型      | 支持**"每星期"** 和**"每月"**。                                     |
     | 时间配置     | 选择创建完成时间和开始删除时间。其中每周计划可以设置多段创建/删除时间。                      |
        
     
   
   - **一次性计划：** 在指定的时间只执行一次，执行完毕后任务结束。
     表3一次性计划参数 
     | 参数名  | 参数说明                                                     |
     |:---|:---|
     | 集群名称 | 输入计算组名称，该计算组主要用于计算加速。                                     |
     | 绑定主计算组 | 下拉框选择需要绑定的主计算组。                                          |
     | 绑定用户  | 下拉框选择需要绑定的用户。绑定用户后，用户创建的表仍在其原始的计算组上，同时用户的计算逻辑都会切到当前计算组上执行。 |
     | 节点个数   | 计算组节点个数。                                                   |
     | 创建完成时间  | 选择创建完成日期。创建任务耗时较长，因此会提前一定的时间触发，以确保您在设定的时间即可使用资源。            |
     | 开始删除时间 | 选择开始删除的日期。                                                 |
        
     
   
   
   
   
7. 勾选**"我已确认"** ，单击**"下一步"**。
8. 确认无误后，单击**"** **提交"**。在定时增删计划模块的表单中，用户可以看到具体的计划详情及下次执行时间。
 
 #### 自动弹性增删计算组
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"集群 \> 集群列表"**。
3. 在集群列表中，单击指定集群名称，进入**"集群详情"**页面。
4. 存算分离集群创建后即为计算组模式，在上侧导航栏单击**"** **计算组"**，进入计算组页面。
5. 单击**"自动弹性开关"** **开关** 开启该功能。
   
   **开启自动弹性开关后，系统会自动准备节点资源（未使用的节点不收费），并检测业务繁忙程度，在计算组忙闲时自动创建删除只读弹性计算组。**
   图1开启自动弹性开关   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225562.png "点击放大")
   
   
   
   
6. 开启自动弹性开关后，通过[使用SQL编辑器连接集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0803.html)后执行SQL语句创建并设置资源池，并为资源池绑定用户，使指定资源池开启自动弹性能力。其中poolg为资源池名称，可以自行定义。
   
   ```
   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设置资源池   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617505235.png "点击放大")
   
   
 
#### 相关文档
[存算分离场景下按需弹性VW：高性价比地适应灵活多变的业务需求](https://support.huaweicloud.com/bestpractice-dws/dws_05_0115.html)
