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