跳至主要内容

数据重新平衡

ClickHouse 不支持自动分片重新平衡。但是,有几种方法可以按优先级顺序重新平衡分片

  1. 调整分布式表的分片,允许写入偏向于新分片。这可能会导致集群负载不均衡和热点,但在大多数写入吞吐量不太高的场景中是可行的。它不需要用户更改其写入目标,即它可以保持为分布式表。这不会帮助重新平衡现有数据。

  2. 作为 (1) 的替代方案,修改现有集群并专门写入新分片,直到集群平衡为止 - 手动加权写入。这具有与 (1) 相同的限制。

  3. 如果您需要重新平衡现有数据并且已对数据进行分区,请考虑分离分区并将其手动重新定位到另一个节点,然后再将其重新连接到新分片。这比后续技术更手动,但可能会更快,并且资源消耗更少。这是一个手动操作,因此需要考虑数据的重新平衡。

  4. 通过INSERT FROM SELECT将数据从源集群导出到新集群。这对于非常大的数据集而言不会高效,并且可能会导致源集群上的大量 IO,并使用大量的网络资源。这代表了一种最后的手段。