Что даёт партиционирование таблицы событий по месяцу в ClickHouse
Таблица событий в ClickHouse создана с движком MergeTree и партиционированием по месяцу события. В таблице хранится 1.5 млрд строк, ретенция — 24 месяца.
Что в первую очередь даёт такое партиционирование?
- Любой запрос к таблице становится быстрее независимо от того, есть ли в нём условие по дате: движок читает партиции параллельно и объединяет результат.
- Запросы с фильтром по дате читают только нужные партиции, а данные старше ретенции удаляются целой партицией, без тяжёлого построчного DELETE.
- Партиционирование заменяет ключ сортировки: колонки из ключа партиционирования можно не включать в ORDER BY, внутри партиции данные и так упорядочены по дате.
- Чем мельче партиции, тем лучше: партиционирование по часу дало бы на этих объёмах максимальное отсечение и ускорило бы точечные запросы.
