Перейти к основному содержимому
Перейти к основному содержимому

Перебалансировка данных

ClickHouse не поддерживает автоматическую перебалансировку шардов. Тем не менее, существуют способы перебалансировать шары в порядке предпочтения:

  1. Настройте шард для распределенной таблицы, позволяя записям быть смещенными к новому шард. Это потенциально может вызвать дисбаланс нагрузки и горячие точки в кластере, но может быть жизнеспособным в большинстве сценариев, где пропускная способность записи не крайне велика. Это не требует от пользователя изменения целевого назначения записи, т.е. оно может оставаться как распределенная таблица. Это не помогает с перебалансировкой существующих данных.

  2. В качестве альтернативы пункту (1) измените существующий кластер и записывайте исключительно на новый шард до тех пор, пока кластер не станет сбалансированным — вручную весом записей. Это имеет те же ограничения, что и (1).

  3. Если вам нужно перебалансировать существующие данные и вы partitioned ваши данные, рассмотрите возможность отключения партиций и ручного перемещения их на другой узел перед повторным подключением к новому шарду. Это более ручная операция, чем последующие методы, но может быть быстрее и менее ресурсоемкой. Это ручная операция, и поэтому необходимо учитывать перебалансировку данных.

  4. Экспортируйте данные из исходного кластера в новый кластер с помощью INSERT FROM SELECT. Это может быть неэффективно для очень больших наборов данных и потенциально потребует значительных операций ввода-вывода в исходном кластере и использует considerable сетевых ресурсов. Это представляет собой крайний случай.