Skip to main content
All quickstarts
Хранилище данныхOSS
Хотя ClickHouse ориентирован на аналитические рабочие нагрузки с большими объемами данных, в некоторых случаях существующие данные можно изменять или удалять. Эти операции называются “мутациями” и выполняются с помощью команды ALTER TABLE.
Если вам нужно часто выполнять обновления, рассмотрите возможность использования дедупликации в ClickHouse, которая позволяет обновлять и/или удалять строки без создания мутации. В качестве альтернативы используйте легковесные обновления или легковесные удаления

Обновление данных

Используйте команду ALTER TABLE...UPDATE, чтобы обновить строки в таблице:
<expression> — это новое значение столбца для строк, удовлетворяющих условию <filter_expr>. <expression> должен иметь тот же тип данных, что и столбец, или приводиться к нему с помощью оператора CAST. <filter_expr> должен возвращать значение UInt8 (ноль или ненулевое) для каждой строки данных. Несколько операторов UPDATE <column> можно объединить в одной команде ALTER TABLE, разделив их запятыми. Примеры:
  1. Такая мутация позволяет обновить visitor_id, заменив его новым значением с помощью поиска по словарю:
  2. Изменение нескольких значений в одной команде может быть эффективнее, чем выполнение нескольких команд:
  3. Мутации можно выполнять с предложением ON CLUSTER для сегментированных таблиц:
Невозможно обновлять столбцы, которые входят в основной ключ или ключ сортировки.

Удаление данных

Для удаления строк используйте команду ALTER TABLE:
Выражение <filter_expr> должно возвращать значение UInt8 для каждой строки данных. Примеры
  1. Удалить все записи, в которых значение столбца содержится в массиве значений:
  2. Что изменяет этот запрос?
Чтобы удалить все данные из таблицы, эффективнее использовать команду TRUNCATE TABLE [<database].]<table>. Эту команду также можно выполнить с предложением ON CLUSTER.
Подробнее см. на странице документации об операторе DELETE.

Легковесные удаления

Ещё один способ удалять строки — использовать команду DELETE FROM, которая называется легковесным удалением. Удалённые строки сразу помечаются как удалённые и автоматически исключаются из всех последующих запросов, поэтому не нужно ждать слияния частей или использовать ключевое слово FINAL. Очистка данных происходит асинхронно в фоновом режиме.
Например, следующий запрос удаляет все строки из таблицы hits, в которых столбец Title содержит текст hello:
Несколько замечаний о легковесных удалениях:
  • Эта возможность доступна только для семейства движков таблиц MergeTree.
  • По умолчанию легковесные удаления выполняются синхронно: операция ждёт, пока все реплики обработают удаление. Это поведение управляется настройкой lightweight_deletes_sync.
Last modified on July 8, 2026