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

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

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

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

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

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

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