Уменьшение объема хранимых данных

Если необходимо уменьшить размер базы, можно удалить старые записи, выполнив команду:

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).