更新时间:2026-08-03 GMT+08:00
分享

弹性增删DWS计算组(存算分离集群)

功能介绍

弹性计算组支持手动添加增删计划和自动弹性增删能力。支持在计划时间段内,动态创建、删除弹性计算组,实现计算资源动态伸缩。

  • 通过手动添加定时增删计划创建的计算组主要用于提供计算能力,关联用户后该用户的查询都会切换到该计算组上,同时建表语句仍在原始的计算组上。该方式适合对自身业务负载有一定理解的客户,并且负载呈现出周期性波动特点,波动负载中大查询占多数情况,例如周期性跑批作业场景。
  • 通过打开自动弹性开关创建的计算组主要用于提供并发扩展能力,关联主计算组后,主计算组的部分查询路由到该计算组上,同时建表语句仍在原始的计算组上。该方式适合初学者客户,无需了解业务负载特性,无需人工干预,适用于负载中复杂查询占多数,以及作业负载可能持续数十分钟到数小时的突发情况。

    开启并使用并发扩展功能,当系统面临高并发作业,主计算组因为内存等资源不足出现排队时,DWS会自动增加额外的集群容量来处理增多的读取和写入语句,减少语句排队时间。不管语句在主计算组上运行还是在并发扩展计算组上运行,用户都将看到最新的数据,且性能相当。您可以通过配置资源池来管理将哪些语句发送到并发扩展计算组。开启并发扩展后,符合条件的语句将发送到并发扩展集群,而不是排队等待。

视频介绍

应用场景

相比于手动添加/删除计算组而言,弹性增删更适合以下业务场景:

  • 周期性负载波动:业务负载呈现周期性波动特点,如白天高晚上低,可通过定时增删计划自动调整资源。
  • 突发负载:作业负载可能持续数十分钟到数小时的突发情况,可通过自动弹性增删应对。
  • 成本优化:在低峰期释放多余计算资源,高峰期按需扩展,避免资源浪费。

手动定时和自动弹性增删计算组的区别

两种弹性增删模式对比如下表所示。

表1 手动和自动增删计算组区别

对比项

手动添加定时增删计划

自动弹性增删

触发方式

按预设时间计划自动执行。

系统根据负载自动触发。

适用用户

对自身业务负载有一定理解的客户。

初学者客户,无需了解业务负载特性。

典型场景

周期性跑批作业。

突发复杂查询、高并发场景。

计算组用途

提供计算能力和并发扩展能力,支持不同的关联方式:

  • 用户绑定方式:绑定用户后查询切换到该计算组。
  • 比例路由方式:将绑定的主计算组作业路由到该计算组。
  • 既不绑定用户,也不绑定主计算组:所有主计算组的作业都可以路由到该计算组。

提供并发扩展能力,主计算组部分查询路由到该计算组。

建表行为

建表语句仍在原始的计算组上。

建表语句仍在原始的计算组上。

数据一致性

用户始终看到最新数据。

用户始终看到最新数据。

约束与限制

  • 弹性增删计算组功能仅支持存算分离集群,其中自动弹性增删功能仅ECS规格的9.1.0.200及以上集群版本的存算分离集群支持。
  • 集群细粒度快照开关默认打开,创建增删计划时会报错,用户需手动关闭细粒度快照开关。
  • 存算分离集群包年/包月集群在定时增加计算组时自动扩容节点,节点按需计费。

手动添加定时增删计划约束限制

自动弹性增删计算组约束限制

开启并使用并发扩展功能,并发扩展功能限制如下:

  • 仅支持V3表和foreign外表。如果为复制表,仅支持SELECT。
  • 仅支持SELECT、INSERT、UPDATE、DELETE语句。
  • 不支持COPY导入。
  • 不支持UPSERT语句。
  • 不支持事务块。
  • 不支持存储过程。
  • 不支持带RETURNING子句和WITH RECURSIVE递归语句。
  • 不支持轻量级更新。
  • 不支持INSERT单个VALUES或者类似generate_series生成的语句。

手动添加定时增删计划

  1. 登录DWS管理控制台
  2. 在左侧导航栏中,选择“集群 > 集群列表”
  3. 在集群列表中,单击指定集群名称,进入“集群详情”页面。
  4. 在上侧导航栏切换至“计算组”页面,单击“定时增删计划”
  5. 右边弹出定时增删计划页面,单击“添加增删计划”并设置合理的调度计划。存算分离集群创建后即为计算组模式,最多仅允许添加两条有效计划。

  6. 调度计划分为两种:

    • 周期性计划:在选中的时间段里(每星期/每月)触发一次,若无其它运维操作冲突则会进行计算组的创建与删除。当与其他操作出现冲突时,可能晚于该时间才会开始创建资源。
      表2 周期性计划参数

      参数名

      参数说明

      集群名称

      输入计算组名称,该计算组主要用于计算加速。

      绑定主计算组

      下拉框选择需要绑定的主计算组。

      绑定用户

      下拉框选择需要绑定的用户。绑定用户后,用户创建的表仍在其原始的计算组上,同时用户的计算组都会切到当前计算组上执行。

      节点个数

      计算组节点个数。

      起止时间

      选择开始日期和结束日期。

      周期类型

      支持“每星期”“每月”

      时间配置

      选择创建完成时间和开始删除时间。其中每周计划可以设置多段创建/删除时间。

    • 一次性计划:在指定的时间只执行一次,执行完毕后任务结束。
      表3 一次性计划参数

      参数名

      参数说明

      集群名称

      输入计算组名称,该计算组主要用于计算加速。

      绑定主计算组

      下拉框选择需要绑定的主计算组。

      绑定用户

      下拉框选择需要绑定的用户。绑定用户后,用户创建的表仍在其原始的计算组上,同时用户的计算逻辑都会切到当前计算组上执行。

      节点个数

      计算组节点个数。

      创建完成时间

      选择创建完成日期。创建任务耗时较长,因此会提前一定的时间触发,以确保您在设定的时间即可使用资源。

      开始删除时间

      选择开始删除的日期。

  7. 勾选“我已确认”,单击“下一步”
  8. 确认无误后,单击提交”。在定时增删计划模块的表单中,用户可以看到具体的计划详情及下次执行时间。

自动弹性增删计算组

  1. 登录DWS管理控制台
  2. 在左侧导航栏中,选择“集群 > 集群列表”
  3. 在集群列表中,单击指定集群名称,进入“集群详情”页面。
  4. 存算分离集群创建后即为计算组模式,在上侧导航栏单击计算组”,进入计算组页面。
  5. 单击“自动弹性开关”开关开启该功能。

    开启自动弹性开关后,系统会自动准备节点资源(未使用的节点不收费),并检测业务繁忙程度,在计算组忙闲时自动创建删除只读弹性计算组。

    图1 开启自动弹性开关

  6. 开启自动弹性开关后,通过使用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 设置资源池

相关文档