更新日期:2024年09月11日
rebalance 命令负责表数据在节点间的重新分布,支持以下功能:
1)数据库提供了3 个级别的数据重分布,分别是实例级、数据库级分布和表级。
用户可以根据不同的场景选择合适的分布级别
2)对于需要大批量表的数据搬移,还提供了分布优先级和并发分布数量来进行更
细粒度的控制。
3)rebalance 命令在任务下发到后台后即返回结果,数据库提供执行过程信息的查
询,
可以按数据表查询开始分布和结束分布的时间、
分布进度、
分布优先级等信息,
用户可以通过访问gclusterdb.rebalancing_status 进行查看。
4)提供取消和暂停功能,对后台任务进行控制。
说明
在coordinator 上使用gccli 执行rebalance 命令后,rebalance 任务会被加入
到gclusterdb.rebalancing_status 集群表中。coordinator 集群会从
gclusterdb.rebalancing_status
中
选
取
优
先
级
最
高
的
gcluster_rebalancing_concurrent_count 个表进行rebalance。
coordinator 集群中只会有一个coordinator 节点负责后台执行表rebalance,
不支持多个coordinator 并行执行rebalance 命令。
rebalance 任务执行状态需要从gclusterdb.rebalancing_status 表中查询。
不建议对gclusterdb.rebalancing_status 表做ddl/dml 操作。
只支持express 引擎表的rebalance
一个表在rebalance 时有5 个状态,
分别是:
STARTING、
RUNNING、
COMPLETED、
PAUSED、CANCELED。这5 种状态转换如下图所示:
GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
347
图4- 2 5 种状态转换图
说明
表处于STARTING 状态时,Coordinator 后台线程开始执行表的rebalance 操作,表状
态转换成RUNNING。
表处于PAUSED 状态时,对这个表执行continue rebalance 操作,表状态转换成
RUNNING。
表处于RUNNING 状态时,coordinator 后台线程执行表的rebalance 操作失败,表状态
转换成STARTING。
表处于RUNNING 状态时,coordinator 后台线程完成了表的rebalance 操作,表状态转
换成COMPLETED。
NOT,!逻辑非
操作符说明
如果操作数为0,返回1;如果操作数为非零,返回0;如果操作数为NULL,返
回NULL。
示例
示例1:操作数为非零,返回值为0。
gbase> SELECT NOT 10 FROM dual;
+--------+
| NOT 10 |
+--------+
|
0 |
+--------+
1 row in set
示例2:操作数为0,返回值为1。
gbase> SELECT NOT 0 FROM dual;
+-------+
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
665
| NOT 0 |
+-------+
|
1 |
+-------+
1 row in set
示例3:操作数为NULL,返回值为NULL。
gbase> SELECT NOT NULL FROM dual;
+-----------+
| NOT NULL
|
+-----------+
|
NULL |
+-----------+
1 row in set
示例4:表达式的值为非零,返回值为0。
gbase> SELECT ! (1+1) FROM dual;
+---------+
| ! (1+1) |
+---------+
|
0 |
+---------+
1 row in set
示例5:表达式! 1+1 与(!1)+1 等价,执行结果为1。
gbase> SELECT ! 1+1 FROM dual;
+-------+
| ! 1+1 |
+-------+
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
666
|
1 |
+-------+
1 row in set
gbase> SELECT (!1)+1 FROM dual;
+--------+
| (!1)+1 |
+--------+
|
1 |
+--------+
1 row in set
示例6:..NOT IN...
gbase> SELECT 1 NOT IN (2,3,null) FROM dual;
+---------------------+
| 1 NOT IN (2,3,null) |
+---------------------+
|
NULL |
+---------------------+
1 row in set