Уменьшение объема хранимых данных
Оценка занимаемого объема данных в ClickHouse
Скачайте и выполните скрипт оценки объема данных в ClickHouse:
wget https://docs.mitigator.ru/collector/v24.10/maintenance/reduce_db/utilization.sql && \
docker-compose exec -T clickhouse clickhouse-client -mn < utilization.sql
Выполнение скрипта может занять продолжительное время.
Скрипт рассчитает следующие показатели:
min_date
- дата и время, когда была сохранена первая запись flow;flow_quantity
- количество записей flow, сохраненных в базе;single_flow_size
- средний размер одной записи flow в байтах;max_flow_size
- максимально доступный объем для хранения flow в байтах;max_flow_quantity
- максимально доступное количество flow, которые можно сохранить в базе;max_flow_rate
- наблюдаемая максимальная скорость записи flow в секунду;avg_flow_rate
- наблюдаемая средняя скорость записи flow в секунду;ttl_for_max_flow_rate
- рекомендуемое время жизни записей при наблюдаемой максимальной скорости записи;ttl_for_avg_flow_rate
- рекомендуемое время жизни записей при наблюдаемой средней скорости записи.
- На основе рассчитанных показателей выберите новые периоды рекомпрессии данных и время жизни записей.
Параметр | Методика расчета | Значение по умолчанию |
---|---|---|
Первый период рекомпресии | Желаемый период работы с оперативными данными. Меньше рекомендуемого времени жизни записей при максимальной скорости | 1 месяц |
Второй период рекомпресии | 0.5 * рекомендуемое время жизни записей при средней скорости | 6 месяцев |
Время жизни записей | Рекомендуемое время жизни записей при средней скорости | 1 год |
Процедура настройки периодов рекомпресии и времени жизни записей
Оцените занимаемый объем данных в ClickHouse и выберите новые периоды рекомпресии и время жизни записей.
Проверьте, что количество записей flow, сохраненных в базе, не превышает максимально доступное количество flow, которые можно сохранить в базе. При превышении удалите старые записи вручную.
Скачайте скрипт настройки периодов рекомпресии и времени жизни.
wget https://docs.mitigator.ru/collector/v24.10/maintenance/reduce_db/volume_reduction.sql
Отредактируйте скрипт, указав новые периоды для всех таблиц.
Выполните скрипт.
docker-compose exec -T clickhouse clickhouse-client -mn < volume_reduction.sql
Новые периоды рекомпресии и время жизни записей будут применены в течение 4 часов. В момент применения новых параметров могут быть большие нагрузки на CPU и увеличенное потребление диска. Это не повлияет на обработку новых данных.
Ручное удаление данных в ClickHouse
Для уменьшения размера базы, можно удалить старые записи, выполнив команду:
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');" && \
docker-compose exec clickhouse clickhouse-client --query="ALTER TABLE collector.snmp_counters DELETE WHERE date < toDateTime('1970-01-01');"
где 1970-01-01
– требуемая дата.