重分区
重分区可以在表创建后调整分区规则。GreptimeDB 通过 ALTER TABLE 的分区设置、拆分与合并能力来完成重分区,详细语法请参考 ALTER TABLE。
重分区仅支持分布式集群。
原理
重分区的核心是在线调整分区规则和 Region 路由,而不是把数据手工迁移到新的表。 GreptimeDB 会通过更新每个 Region 的 manifest 文件引用切换到新的分区布局,从而让分区规则重新贴合当前的数据分布。
当业务流量模式发生变化时,这种方式可以帮助你继续保持分区规则与负载匹配,而不需要重建整张表。
重分区期间,写入可能会出现短暂波动,建议客户端开启重试机制。
什么时候需要重分区
如果出现下面这些情况,就可以考虑重分区:
- 某些 Region 的写入或查询明显更热,负载长期不均衡;
- 业务分布发生变化,原有分区边界已经不再合适;
- 部分 Region 变得很小且很冷,希望通过合并减少资源占用;
- 需要把某个分区进一步细分,以改善写入并发或查询性能。
通常来说,当分区规则已经不能很好地反映当前数据分布时,就值得考虑重分区。