重新平衡数据
ClickHouse 不支持自动分片重新平衡。但是,有一些方法可以按偏好顺序重新平衡分片
-
调整 分布式表的分片,允许写入偏向新分片。这可能会导致集群上的负载不均衡和热点,但在大多数写入吞吐量不是非常高的场景中是可行的。它不需要用户更改其写入目标,即它可以保持为分布式表。这无助于重新平衡现有数据。
-
作为 (1) 的替代方案,修改现有集群并专门写入新分片,直到集群平衡 - 手动加权写入。这与 (1) 具有相同的局限性。
-
如果您需要重新平衡现有数据并且您已对数据进行分区,请考虑分离分区并将它们手动重新定位到另一个节点,然后再重新附加到新分片。这比后续技术更手动,但可能更快且资源密集程度更低。这是一个手动操作,因此需要考虑数据的重新平衡。
-
通过 INSERT FROM SELECT 将数据从源集群导出到新集群。这在非常大的数据集上性能不佳,并且可能会在源集群上产生大量的 IO 并占用相当多的网络资源。这代表了最后的手段。