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