跳到主要内容
跳到主要内容

计算组操作

在存算分离架构下,可以将一个或多个计算节点 (BE) 组成一个计算组 (Compute Group)。本文档介绍如何使用计算组,其中涉及的操作包括:

  • 查看所有计算组
  • 计算组授权
  • 在用户级别绑定计算组 (default_compute_group) 以达到用户级别的隔离效果

注意 3.0.2 之前的版本中叫做计算集群(Compute Cluster)。

查看所有计算组

可通过 SHOW COMPUTE GROUPS 查看当前仓库拥有的所有计算组。

SHOW COMPUTE GROUPS;

添加计算组

在添加 BE 时,会自动添加计算组。

授予计算组访问权限

GRANT USAGE_PRIV ON COMPUTE GROUP {compute_group_name} TO {user}

撤销计算组访问权限

REVOKE USAGE_PRIV ON COMPUTE GROUP {compute_group_name} FROM {user}

设置默认计算组

为当前用户设置默认计算组:

SET PROPERTY 'default_compute_group' = '{clusterName}';

为其他用户设置默认计算组(此操作需要 Admin 权限):

SET PROPERTY FOR {user} 'default_compute_group' = '{clusterName}';

查看当前用户默认计算组,返回结果中default_compute_group 的值即为默认计算组:

SHOW PROPERTY;

查看其他用户默认计算组,此操作需要当前用户具备相关权限,返回结果中default_compute_group 的值即为默认计算组:

SHOW PROPERTY FOR {user};

查看当前仓库下所有可用的计算组:

SHOW COMPUTE GROUPS;
备注
  • 若当前用户拥有 Admin 角色,例如:CREATE USER jack IDENTIFIED BY '123456' DEFAULT ROLE "admin",则:
    • 可以为自身以及其他用户设置默认计算组;
    • 可以查看自身以及其他用户的 PROPERTY
  • 若当前用户无 Admin 角色,例如:CREATE USER jack1 IDENTIFIED BY '123456',则:
    • 可以为自身设置默认计算组;
    • 可以查看自身的 PROPERTY
    • 无法查看所有计算组,因该操作需要 GRANT ADMIN 权限。
  • 若当前用户未配置默认计算组,现有系统在执行数据读写操作时将会触发错误。为解决这一问题,用户可通过执行 use @cluster 命令来指定当前 Context 所使用的计算组,或者使用 SET PROPERTY 语句来设置默认计算组。
  • 若当前用户已配置默认计算组,但随后该集群被删除,则在执行数据读写操作时同样会触发错误。用户可通过执行 use @cluster 命令来重新指定当前 Context 所使用的计算组,或者利用 SET PROPERTY 语句来更新默认集群设置。

默认计算组的选择机制

当用户未明确设置默认计算组时,系统将自动为用户选择一个具有 Active BE 且用户具有使用权限的计算组。在特定会话中确定默认计算组后,默认计算组将在该会话期间保持不变,除非用户显式更改了默认设置。

在不同次的会话中,若发生以下情况,系统可能会自动更改用户的默认计算组:

  • 用户失去了在上次会话中所选择默认计算组的使用权限
  • 有计算组被添加或移除
  • 上次所选择的默认计算组不再具有 Active BE

其中,情况一和情况二必定会导致系统自动选择的默认计算组更改,情况三可能会导致更改。

切换计算组

用户可在存算分离架构中指定使用的数据库和计算组。

语法

USE { [catalog_name.]database_name[@compute_group_name] | @compute_group_name }

若数据库或计算组名称包含是保留关键字,需用反引号将相应的名称 ``` 包围。

计算组扩缩容

通过 ALTER SYSTEM ADD BACKEND 以及 ALTER SYSTEM DECOMMISION BACKEND 添加或者删除 BE 实现计算组的扩缩容。