跳到主要内容
版本:2.5

CREATE RESOURCE GROUP

功能

创建资源组。关于资源组的更多信息,参见资源隔离

语法

CREATE RESOURCE GROUP resource_group_name
TO CLASSIFIER1, CLASSIFIER2, ...
WITH resource_limit

参数说明

  • resource_group_name:需要创建的资源组名称。

  • CLASSIFIER:用于区分需要被施加资源限制的查询的分类器,采用 "key"="value" 对形式。您可以为同一个资源组设置多个分类器。

    • 分类器可以包含以下参数:

      参数必选说明
      user用户名。
      role用户所属角色名。
      query_type需要被施加资源限制的查询类型,目前支持 SELECTINSERT (2.5 及以后)。当 query_typeinsert 的资源组有导入任务正在运行时,当前 BE 节点会为其预留相应的计算资源。
      source_ip发起查询的 IP 地址,类型为 CIDR。
      db查询所访问的数据库,可以为逗号(,)分割的字符串。
  • resource_limit:为当前资源组设置的资源限制,采用 "key"="value" 对形式。您可以为同一个资源组设置多个资源限制。

    • 资源限制可以包含以下参数:

      参数必选说明
      cpu_core_limit该资源组在当前 BE 节点可使用的 CPU 核数软上限,实际使用的 CPU 核数会根据节点资源空闲程度按比例弹性伸缩。取值为正整数。
      mem_limit该资源组在当前 BE 节点可使用于查询的内存(query_pool)占总内存的百分比(%)。取值范围为 (0,1)。
      concurrency_limit资源组中并发查询数的上限,用以防止并发查询提交过多而导致的过载。
      big_query_cpu_second_limit大查询任务可以使用 CPU 的时间上限,其中的并行任务将累加 CPU 使用时间。单位为秒。
      big_query_scan_rows_limit大查询任务可以扫描的行数上限。
      big_query_mem_limit大查询任务可以使用的内存上限。单位为 Byte。
      type资源组类型。有效取值包括:
      short_query:当 short_query 资源组有查询正在运行时,当前 BE 节点会为其预留 short_query.cpu_core_limit 的 CPU 资源,所有 normal 资源组的总 CPU 核数使用上限会被硬限制为 BE 节点核数减 short_query.cpu_core_limit
      normal:当 short_query 资源组没有查询正在运行时,所有 normal 资源组的 CPU 核数没有硬限制。
      注意:同一集群中,您最多只能创建一个 short_query 资源组。

示例

示例一:基于多个分类器创建资源组 rg1

CREATE RESOURCE GROUP rg1
TO
(user='rg1_user1', role='rg1_role1', query_type in ('select'), source_ip='192.168.x.x/24'),
(user='rg1_user2', query_type in ('select'), source_ip='192.168.x.x/24'),
(user='rg1_user3', source_ip='192.168.x.x/24'),
(user='rg1_user4'),
(db='db1')
WITH ('cpu_core_limit' = '10',
'mem_limit' = '20%',
'type' = 'normal',
'big_query_cpu_second_limit' = '100',
'big_query_scan_rows_limit' = '100000',
'big_query_mem_limit' = '1073741824'
);