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