Перебалансировка Данных
ClickHouse не поддерживает автоматическую перебалансировку шардов. Тем не менее, есть способы перебалансировать шары в порядке предпочтения:
-
Настройте шард для распределенной таблицы, позволяя запись данных смещаться к новому шару. Это потенциально может вызвать дисбаланс нагрузки и горячие точки в кластере, но может быть жизнеспособным в большинстве сценариев, где пропускная способность записи не extremely high. Это не требует от пользователя изменения целевого адреса для записи, т.е. он может оставаться в виде распределенной таблицы. Это не помогает с перебалансировкой существующих данных.
-
В качестве альтернативы (1) измените существующий кластер и пишите исключительно в новый шард до тех пор, пока кластер не сбалансируется - вручную весив записи. Это имеет те же ограничения, что и (1).
-
Если вам нужно перебалансировать существующие данные и вы разделили свои данные на партиции, рассмотрите возможность отделения партиций и их ручного перемещения на другой узел перед повторным присоединением к новому шару. Это более ручная процедура, чем последующие методы, но может быть быстрее и менее ресурсозатратной. Это ручная операция, и, следовательно, необходимо учитывать перебалансировку данных.
-
Экспортируйте данные из исходного кластера в новый кластер с помощью INSERT FROM SELECT. Это может быть неэффективным при очень больших наборах данных и может привести к значительной нагрузке на ввод-вывод в исходном кластере и потребовать значительных сетевых ресурсов. Это представляет собой последний курорт.