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。该子句用于逻辑集群扩缩容,用户不应该直接使用,以免导致数据分布错误和逻辑集群不可用。