Выбор ответа Middle ClickHouse и колоночные СУБД обновлено

Мутации

Вопрос

Почему частые ALTER TABLE ... UPDATE в ClickHouse плохая идея?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Это мутации: асинхронная перезапись всех затронутых частей целиком, тяжёлая операция. Колоночные неизменяемые части нельзя поправить точечно: мутация переписывает части, где есть подходящие строки.

Варианты ответа

  1. UPDATE в ClickHouse не поддерживается вообще, ALTER ... UPDATE лишь помечает строки как удалённые
  2. Это мутации: асинхронная перезапись всех затронутых частей целиком, тяжёлая операцияправильный ответ
  3. UPDATE блокирует таблицу на чтение до завершения, и дашборды в это время висят
  4. Каждый UPDATE создаёт новую реплику таблицы, и место на диске быстро заканчивается

Разбор

Колоночные неизменяемые части нельзя поправить точечно: мутация переписывает части, где есть подходящие строки. Для частых изменений используют ReplacingMergeTree, CollapsingMergeTree или модель «вставка новой версии». UPDATE как мутация поддерживается. Чтения во время мутации продолжают работать. Реплики мутация не создаёт.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.