Работа с утилитой для архивирования исторических событий

Просмотр информации о партициях и дисках ClickHouse

Для оценки дискового пространства, занимаемого данными о событиях в ClickHouse, а также размера будущих архивов исторических событий вы можете выполнить запросы, которые отобразят информацию о партициях и дисках ClickHouse. Для этого:

  1. Подключитесь к терминалу узла, на котором установлена СУБД ClickHouse.

  2. Подключитесь к консольному клиенту ClickHouse, выполнив следующую команду:

    clickhouse-client
  3. Выполните один из следующих запросов:

    • Просмотр информации о партициях 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.

Настройка расписания архивирования исторических событий

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

  1. Настройте периоды горячего и холодного хранения событий (hot_storage и cold_storage) в разделе Ресурсы → Хранилища событий веб-интерфейса системы, расширив период холодного хранения на дополнительное количество дней, за которое необходимо архивировать события.

  2. Настройте запуск утилиты clickhouse-backup по расписанию. Для этого выполните следующие действия на узле, на котором установлена СУБД ClickHouse:

    1. Откройте файл расписания crontab. Например, это можно сделать с помощью текстового редактора nano, выполнив команду:

      EDITOR=nano crontab -e
    2. Добавьте в расписание строку для запуска 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> — события старше скольких дней нужно архивировать.

    3. Сохраните изменения в файле расписания.

Примеры настройки расписания архивирования исторических событий

  • Пусть в системе настроено горячее хранение событий в течение 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.

Просмотр журнала архивирования исторических событий

Чтобы просмотреть журнал архивирования исторических событий:

  1. Подключитесь к терминалу ClickHouse.

  2. Выполните следующую команду:

    tail -f -n <n_lines> /opt/clickhouse/log/archive_events.log

    Здесь:

    • <n_lines> — количество последних строк журнала, которые необходимо отобразить.

Восстановление событий из архива

Чтобы восстановить события из архива, выполните следующие действия на узле, на котором установлена СУБД ClickHouse:

  1. Получите список имеющихся архивов событий, выполнив следующую команду:

    clickhouse-backup list
  2. Выполните команду для восстановления событий из необходимого вам архива:

    clickhouse-backup restore <archive_events_name> --data

    Здесь:

    • <archive_events_name> — имя архива событий, например, archive_events_20251201.

  3. При необходимости удалите архив, из которого восстановлены события, выполнив следующую команду:

    clickhouse-backup delete local <archive_events_name>

    Здесь:

    • <archive_events_name> — имя архива событий, например, archive_events_20251201.

Была ли полезна эта страница?

Обратная связь