[имя] спросил: Как реализовать хранение данных только за 2 года в ClickHouse?

Задайте TTL по времени события: event_time + INTERVAL 2 YEAR DELETE. Удаление происходит фоново, поэтому это не мгновенная граница доступа.

Короткий ответ

Что ответить на собеседовании

Задайте TTL по времени события: event_time + INTERVAL 2 YEAR DELETE. Удаление происходит фоново, поэтому это не мгновенная граница доступа.

Подробный разбор

Ответ с пояснениями

Задайте TTL по времени события: event_time + INTERVAL 2 YEAR DELETE. Удаление происходит фоново, поэтому это не мгновенная граница доступа.

Для таблицы семейства MergeTree правило может выглядеть так:

ALTER TABLE events
MODIFY TTL event_time + INTERVAL 2 YEAR DELETE;

Поле event_time должно иметь подходящий тип Date или DateTime. ClickHouse удаляет просроченные данные при обработке TTL во время слияний, а не ровно в момент истечения срока. Если отчёт должен строго видеть только последние два года, добавьте соответствующий фильтр в запрос. Отдельно определите сроки хранения резервных копий.

Источник: clickhouse.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее