Уменьшение объема хранимых данных
Если необходимо уменьшить размер базы, можно удалить старые записи, выполнив команду:
docker-compose exec clickhouse clickhouse-client --query="ALTER TABLE collector.flows DELETE WHERE timestamp_sec < toUnixTimestamp('1970-01-01');"
docker-compose exec clickhouse clickhouse-client --query="ALTER TABLE collector.rate_metrics DELETE WHERE date < toDateTime('1970-01-01');"
Здесь 1970-01-01
– требуемая дата.
Если необходимо изменить время хранения flow, выполните (скрипт) командой:
docker-compose exec -T clickhouse clickhouse-client -mn < volume_reduction.sql
Данный пример скрипта предполагает дальнейшую модификацию под собственные нужды. Текущий вариант скрипта:
- удаляет все данные старше тех, которые собраны за последний месяц.
- изменяет время жизни данных на 1 месяц (time to live, TTL).
Скрипт выполняется единожды, далее записи в базе старше одного месяца будут удаляться
автоматически. Для изменения времени хранения flow следует изменить toIntervalMonth(1)
,
где 1
– количество месяцев хранения. Опционально можно изменить размер раздела с помощью
PARTITION BY toYYYYMMDD(date)
.