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

Общие сведения

Партиционирование задаётся для таблицы при её первоначальном определении с помощью предложения PARTITION BY. Это предложение может содержать SQL-выражение для любых столбцов, результат которого определяет, в какую партицию попадёт строка. Части данных логически связаны с каждой партицией на диске и могут запрашиваться по отдельности. В примере ниже мы разбиваем таблицу posts на партиции по году с помощью выражения toYear(CreationDate). По мере вставки строк в ClickHouse это выражение вычисляется для каждой строки, и строка направляется в соответствующую партицию, если она уже существует (если для данного года это первая строка, партиция будет создана).
Прочитайте о том, как задавать выражение партиционирования, в разделе Как задать выражение партиционирования. В ClickHouse пользователям следует в первую очередь рассматривать партиционирование как возможность управления данными, а не как способ оптимизации запросов. При логическом разделении данных по ключу с каждой партицией можно работать независимо, например удалять её. Это позволяет пользователям перемещать партиции, а значит и подмножества данных, между уровнями хранения по мере устаревания данных или настраивать срок хранения данных / эффективно удалять их из кластера.

Удаление партиций

ALTER TABLE ... DROP PARTITION — это экономичный способ удалить партицию целиком.
Этот запрос помечает партицию как неактивную и полностью удаляет данные примерно через 10 минут. Запрос реплицируется — данные удаляются на всех репликах. В примере ниже мы удаляем посты за 2008 год из ранее созданной таблицы, удаляя соответствующую партицию.
Последнее изменение 12 июня 2026 г.