云原生数据仓库AnalyticDB MySQL版湖仓版(3.0)采用了存储计算分离架构,您可以对计算资源进行弹性扩缩容。资源组功能可以对计算资源进行弹性划分,不同资源组间的计算资源在物理上完全隔离。通过将数据库账号绑定到不同的资源组,SQL任务或Spark任务根据绑定关系路由至对应的资源组进行执行,从而满足实例内部多租户、混合负载的需求。

资源组分类

  • 默认资源组
    默认资源组user_default是集群创建时便存在的,任务类型为Interactive,可以调整计算预留资源量,但不可被删除。
    • 适用场景:主要支撑高QPS低RT在线场景,使用分时弹性方式进行计算资源扩容和缩容。
    • 任务:执行XIHE MPP型任务。
    • 资源量:计算预留资源最小为0 ACU,最大为实例当前未分配资源,步长为16 ACU。
  • 自定义资源组
    用户自定义创建的资源组,可通过指定任务类型创建不同资源组类型。AnalyticDB MySQL湖仓版支持创建Interactive型和Job型资源组。
    • Interactive型
      • 适用场景:主要支撑高QPS低RT在线场景,使用分时弹性方式进行计算资源扩容和缩容。
      • 任务:执行XIHE MPP型任务。
      • 资源量:计算预留资源最小为16 ACU,最大为实例当前未分配资源,步长为16 ACU。
    • Job型
      • 场景:主要支撑高吞吐离线场景,使用按需弹性方式进行计算资源扩容和缩容。
      • 任务:可以执行XIHE Batch型任务、Spark SQL、Spark Batch任务、Spark Streaming任务、Spark机器学习任务等。
      • 资源量:计算预留资源最小为0 ACU,最大为实例当前未分配资源,步长为8 ACU。

数据库账号与资源组的绑定关系

  • 一个账号只能绑定一个资源组,一个资源组可以被多个账号绑定。
  • 一个账号没有与任何Interactive型自定义资源组绑定的时候,则该账号与默认资源组绑定。
  • 删除资源组时,会同时解绑与该资源组绑定的账号。
  • 删除账号时,会同时解除其与资源组的绑定关系。

指定资源组的方式与优先级

  • 通过JDBC提交SQL时,指定资源组的优先级从高到低依次为Hint方式、SET方式、绑定资源组、默认资源组。
    • 通过Hint方式指定资源组,语法为:/*+resource_group=xxx*/
    • 通过Session级别的SET方式指定资源组,语法为:SET resource_group = xxx;
    • 通过绑定资源组的方式指定资源组,详情请参见新建资源组
  • 通过OpenAPI提交Spark应用时,指定资源组的优先级从高到低为SET方式、绑定资源组。
    • 通过Session级别的SET方式指定资源组,语法为:SET resource_group = xxx;
    • 通过绑定资源组的方式指定资源组,详情请参见新建资源组
      说明 如果通过未绑定资源组的账号提交Spark应用,且提交时未设置SET resource_group = xxx;,则报错提示“请指定资源组后再提交”。