Работа с утилитой для архивирования исторических событий
Данный раздел описывает действия по архивированию и восстановлению исторических событий:
Просмотр информации о партициях и дисках ClickHouse
Для оценки дискового пространства, занимаемого данными о событиях в ClickHouse, а также размера будущих архивов исторических событий вы можете выполнить запросы, которые отобразят информацию о партициях и дисках ClickHouse. Для этого:
-
Подключитесь к терминалу узла, на котором установлена СУБД ClickHouse.
-
Подключитесь к консольному клиенту ClickHouse, выполнив следующую команду:
clickhouse-client -
Выполните один из следующих запросов:
-
Просмотр информации о партициях ClickHouse:
SELECT `table`, partition, formatReadableSize(sum(bytes_on_disk)) AS size FROM system.parts WHERE (database = 'default') AND (`table` LIKE 'EventStorage_%_local') GROUP BY `table`, partition ORDER BY `table` ASC, partition ASCПример вывода информации о партициях
Query id: 0725d2cb-6121-4b6c-a979-11aca297a73f ┌─table────────────────────────────────────────────────────────┬─partition─┬─size───────┐ 1. │ EventStorage_088b6376_bc2c_4ac7_9f3e_099f67876ec1_local │ 20250605 │ 16.45 KiB │ 2. │ EventStorage_088b6376_bc2c_4ac7_9f3e_099f67876ec1_local │ 20250620 │ 16.21 KiB │ 3. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240722 │ 72.01 KiB │ 4. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240723 │ 137.46 KiB │ 5. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240724 │ 230.35 KiB │ 6. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240725 │ 55.72 KiB │ 7. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240802 │ 4.95 MiB │ 8. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240803 │ 10.55 MiB │ 9. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240804 │ 10.56 MiB │ 10. │ EventStorage_0e87bb0d_5784_4765_9aad_bac8e6c9ec52_local │ 20240805 │ 10.57 MiB │ └──────────────────────────────────────────────────────────────┴────────────┴─────────────┘ 10 rows in set. Elapsed: 0.132 sec. Processed 2.08 thousand rows, 218.09 KB (15.73 thousand rows/s., 1.65 MB/s.) -
Просмотр информации о томах ClickHouse:
SELECT * FROM system.disksПример вывода информации о томах ClickHouse
Query id: b0c7375a-ca73-4d06-93c3-313940468377 ┌─name─────────┬─path───────────────────────┬───free_space──┬──total_space─┬─unreserved_space─┬─keep_free_space─┬─type──┬─object_storage_type──┬─metadata_type─┬─is_encrypted─┬─is_read_only─┬─is_write_once─┬─is_remote─┬─is_broken──┬─cache_path─┐ 1. │ cold_disk_1 │ /opt/clickhouse/cold-1/ │ 133619982336 │ 738952110080 │ 133619982336 │ 0 │ Local │ None │ None │ 0 │ 0 │ 0 │ 0 │ 0 │ │ 2. │ default │ /opt/clickhouse/ │ 133619982336 │ 738952110080 │ 133619982336 │ 0 │ Local │ None │ None │ 0 │ 0 │ 0 │ 0 │ 0 │ │ 3. │ hot_disk_1 │ /opt/clickhouse/hot-1/ │ 133619982336 │ 738952110080 │ 133619982336 │ 0 │ Local │ None │ None │ 0 │ 0 │ 0 │ 0 │ 0 │ │ 4. │ backups │ /opt/clickhouse/backups/ │ 133619982336 │ 738952110080 │ 133619982336 │ 0 │ Local │ None │ None │ 0 │ 0 │ 0 │ 0 │ 0 │ │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 4 rows in set. Elapsed: 0.003 sec.
-
Настройка расписания архивирования исторических событий
Чтобы настроить расписание архивирования исторических событий, выполните следующие действия:
-
Настройте периоды горячего и холодного хранения событий (hot_storage и cold_storage) в разделе Ресурсы → Хранилища событий веб-интерфейса системы, расширив период холодного хранения на дополнительное количество дней, за которое необходимо архивировать события.
-
Настройте запуск утилиты clickhouse-backup по расписанию. Для этого выполните следующие действия на узле, на котором установлена СУБД ClickHouse:
-
Откройте файл расписания crontab. Например, это можно сделать с помощью текстового редактора nano, выполнив команду:
EDITOR=nano crontab -e -
Добавьте в расписание строку для запуска clickhouse-backup следующего вида:
<cron_expression> sudo -u clickhouse /usr/local/bin/archive_events.sh <n_days>Здесь:
-
<cron_expression>— cron-выражение, определяющее расписание запусков clickhouse-backup.Чтобы составить cron-выражение, можно воспользоваться генератором, например, crontab.guru. -
<n_days>— события старше скольких дней нужно архивировать.
-
-
Сохраните изменения в файле расписания.
-
Примеры настройки расписания архивирования исторических событий
-
Пусть в системе настроено горячее хранение событий в течение 1 дня, а холодное — в течение 2 дней. Необходимо ежедневно выполнять архивацию событий старше 2 дней.
Тогда строка для запуска clickhouse-backup может выглядеть следующим образом:
0 2 * * * sudo -u clickhouse /usr/local/bin/archive_events.sh 2Утилита clickhouse-backup будет запускаться ежедневно в 02:00, выполнять архивацию событий старше 2 дней (за третий день) и удалять их из холодного хранилища ClickHouse. События за 2 последних дня останутся в ClickHouse.
-
Пусть в системе настроено горячее хранение событий в течение 30 дней, а холодное — в течение 187 дней. Необходимо еженедельно выполнять архивацию событий за самую раннюю неделю в холодном хранилище, то есть событий старше 210 дней.
Тогда строка для запуска clickhouse-backup может выглядеть следующим образом:
0 2 * * 0 sudo -u clickhouse /usr/local/bin/archive_events.sh 210Утилита clickhouse-backup будет запускаться по воскресеньям в 02:00, выполнять архивацию событий старше 210 дней (211—217 дни) и удалять их из холодного хранилища ClickHouse. События за 210 последних дней останутся в ClickHouse.
Просмотр журнала архивирования исторических событий
Чтобы просмотреть журнал архивирования исторических событий:
-
Подключитесь к терминалу ClickHouse.
-
Выполните следующую команду:
tail -f -n <n_lines> /opt/clickhouse/log/archive_events.logЗдесь:
-
<n_lines>— количество последних строк журнала, которые необходимо отобразить.
-
Восстановление событий из архива
Чтобы восстановить события из архива, выполните следующие действия на узле, на котором установлена СУБД ClickHouse:
-
Получите список имеющихся архивов событий, выполнив следующую команду:
clickhouse-backup list -
Выполните команду для восстановления событий из необходимого вам архива:
clickhouse-backup restore <archive_events_name> --dataЗдесь:
-
<archive_events_name>— имя архива событий, например,archive_events_20251201.
-
-
При необходимости удалите архив, из которого восстановлены события, выполнив следующую команду:
clickhouse-backup delete local <archive_events_name>Здесь:
-
<archive_events_name>— имя архива событий, например,archive_events_20251201.
-
Была ли полезна эта страница?