更新时间:2025-07-10 GMT+08:00

CREATE NODE GROUP

功能描述

创建一个新的集群节点组。

注意事项

  • CREATE NODE GROUP是集群管理工具封装的内部接口,用来实现集群管理。
  • 该接口仅对管理员用户开放使用。

语法格式

1
2
3
4
5
6
CREATE NODE GROUP groupname
    WITH ( nodename [, ... ] )
    [ BUCKETS [ ( bucketnumber [, ... ] ) ] ] 
    [VCGROUP | FOR REPLICATION]
    [READ ONLY | READ WRITE]
    [DISTRIBUTE FROM src_group_name];

参数说明

  • groupname

    节点组名称。

    取值范围:字符串,要符合标识符的命名规范。且最大长度不超过63个字符。

    • 节点组命名支持ASCII字符集上所有字符,但是建议用户按照标识符命名规范命名。
    • optimal,query,bind,installation,elastic_group,roach_group,random_node_group这些字符串因特殊用途不能作为节点组名称。
  • nodename

    节点名称。

    取值范围:字符串,要符合标识符的命名规范。且最大长度不超过63个字符。

  • BUCKETS [ ( bucketnumber [, ... ] ) ]

    BUCKETS子句是集群管理工具的内部用法,该子句不建议用户直接使用,以免对集群的正常使用造成影响。

  • VCGROUP

    创建一个逻辑集群类型的节点组。

  • FOR REPLICATION

    创建一个复制表节点组。复制表节点组只能在逻辑集群模式下创建,并且指定的节点名称必须包含一个或多个逻辑集群全部节点,同时不能包含任何弹性集群中的节点。复制表节点组用于创建跨逻辑集群复制表,属于该节点组的表只能是复制表,这些复制表将创建在所有CN和DN上,但表数据只会写入节点组包含的DN节点上。8.1.2之后的版本都支持创建复制表节点组。

  • READ ONLY

    创建一个只读节点组。该选项仅9.1.0及之后的版本支持。

    只读节点组只能由只读节点组成。

    只读节点组不允许创建任何对象,仅允许创建会话级volatile临时表(不支持本地临时表和全局临时表),volatile临时表在会话结束后自动删除。

    如果一个用户绑定到只读节点组,则在创建常规表和外表时,该用户和未绑定任何逻辑集群的用户一样,默认的建表位置由GUC参数default_storage_nodegroup指定。如果default_storage_nodegroup是installation,则表会创建在第一个逻辑集群上。

    用户在只读节点组上执行DML语句时,存在以下约束:

    • 不支持extension。
    • 不支持触发器。
    • 不支持用户自定义操作符。
    • 不支持临时表,但支持volatile临时表,volatile临时表具有更高性能。
    • 不支持资源管理。
    • 不支持用户表和系统表进行关联查询。
  • READ WRITE

    创建一个读写节点组,该选项仅9.1.0及之后的版本支持。

    通常不需要特别指定READ WRITE关键字,默认情况下都是读写节点组。

  • DISTRIBUTE FROM src_group_name

    创建一个逻辑集群节点组或复制表节点组,用于从src_group_name指定的逻辑集群节点组(或复制表节点组)重分布数据。新创建的节点组会从源节点组中复制授权信息。如果当前集群中没有逻辑集群在执行重分布(即没有节点组的in_redistribution字段为y),则这个创建的节点组会将in_redistribution设置为t,而src_group_name代表的节点组会将in_redistribution设置为y。该子句用于逻辑集群扩缩容,用户不应该直接使用,以免导致数据分布错误和逻辑集群不可用。

相关链接

DROP NODE GROUP