Перейти к основному содержанию
Короткий ответ — «да». В ClickHouse есть несколько механизмов, которые позволяют освобождать место на диске за счёт удаления старых данных. Каждый из них предназначен для разных сценариев.

TTL

ClickHouse позволяет автоматически удалять значения при выполнении некоторого условия. Это условие задаётся как выражение на основе любых столбцов, обычно это просто фиксированное смещение для столбца с временной меткой. Ключевое преимущество этого подхода в том, что он не требует никакой внешней системы для запуска: после настройки TTL удаление данных автоматически выполняется в фоновом режиме.
TTL также можно использовать для перемещения данных не только в /dev/null, но и между разными системами хранения, например с SSD на HDD.
Подробнее см. в разделе настройка TTL.

DELETE FROM

DELETE FROM позволяет выполнять в ClickHouse стандартные запросы DELETE. Строки, подпадающие под условие фильтра, помечаются как удаленные и исключаются из последующих результирующих наборов. Очистка этих строк происходит асинхронно.
DELETE FROM доступен для общего использования начиная с версии 23.3. В более старых версиях он является экспериментальным и должен быть включен с помощью:
SET allow_experimental_lightweight_delete = true;

ALTER DELETE

ALTER DELETE удаляет строки с помощью асинхронных батч-операций. В отличие от DELETE FROM, запросы, выполняемые после ALTER DELETE, но до завершения батч-операций, будут включать строки, предназначенные для удаления. Подробнее см. в документации ALTER DELETE. ALTER DELETE можно использовать для гибкого удаления старых данных. Если вам нужно делать это регулярно, основным недостатком будет необходимость в наличии внешней системы, отправляющей запрос. Также следует учитывать влияние на производительность, поскольку мутации переписывают части целиком, даже если требуется удалить всего одну строку. Это наиболее распространённый способ привести систему на базе ClickHouse в соответствие с GDPR. Подробнее о мутациях.

DROP PARTITION

ALTER TABLE ... DROP PARTITION — это экономичный способ удалить целую партицию. Этот оператор не слишком гибок и требует, чтобы схема партиционирования была правильно настроена при создании таблицы, но всё же покрывает большинство типичных сценариев. Как и мутации, для регулярного использования его нужно запускать из внешней системы. Подробнее см. в разделе управление партициями.

TRUNCATE

Полное удаление всех данных из таблицы — довольно радикальный шаг, но в некоторых случаях это именно то, что вам нужно. Подробнее см. в разделе очистка таблицы.
Последнее изменение 10 июня 2026 г.