Перейти к основному содержимому

Ручная очистка ClickHouse

Ручная очистка ClickHouse позволяет освободить место, если диск или раздел с данными ClickHouse заполнен либо близок к заполнению. По умолчанию данные ClickHouse хранятся в каталоге: /var/lib/clickhouse.

Для освобождения места можно удалить устаревшие данные об атаках, сессиях или данные обоих типов.

Внимание. Удалённые данные невозможно восстановить средствами системы. Перед выполнением команд убедитесь, что правильно указали дату и время. Время в командах задаётся в часовом поясе UTC.

Удаление данных об атаках​

Чтобы удалить все атаки, зарегистрированные до указанного момента времени, используйте команду:

DELETE FROM ids.attacks
WHERE CreatedAt < toDateTime('<DATETIME>', 'UTC')
SETTINGS lightweight_deletes_sync = 1;

где – <DATETIME> – дата и время в формате:

YYYY-MM-DD HH:MM:SS;

Удаление данных о сессиях​

Сведения о сессиях хранятся в таблицах ids.flows и ids.directed_flow_buckets. Для полной очистки необходимо удалить устаревшие записи из обеих таблиц.

Чтобы удалить все сессии, завершившиеся до указанного момента времени, используйте следующие команды:

DELETE FROM ids.flows
WHERE EndTime < toDateTime('<DATETIME>', 'UTC')
SETTINGS lightweight_deletes_sync = 1;
DELETE FROM ids.directed_flow_buckets
WHERE EndTime < toDateTime('<DATETIME>', 'UTC')
SETTINGS lightweight_deletes_sync = 1;

где – <DATETIME> дата и время в формате:

YYYY-MM-DD HH:MM:SS;

Порядок очистки​

Для настройки очистки следует выполнить действия на машине с ClickHouse:

  • определите тип удаляемых данных и момент времени, до которого необходимо удалить записи;

  • подключиться к ClickHouse: sudo clickhouse-client --secure;

  • выполнить нужную команду:

  1. Для очистки данных об атаках;

  2. Для очистки данных о сессиях.

  • дождаться завершения каждой выполненной команды, и выйти из режима взаимодействия с ClickHouse командой exit.

Фактическое освобождение дискового пространства может происходить постепенно во время фонового слияния частей данных ClickHouse.