Архивация активности
8 800 555-89-02
Войти
Документация
CTRL+K
Standalone2409
SaaS

Архивация активности

В этой статье

В системе предусмотрена архивация данных активности. Это позволяет уменьшить нагрузку на основную встроенную файловую базу данных, уменьшить размер базы и сократить количество фоновых процессов, связанных с активностью.

Заметка

Архивация активности не затрагивает БД ClickHouse.

Создание экземпляра базы данных

База данных за конкретный год создается в двух случаях:

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

Сервер Proceset, получая пакет активности от агента мониторинга, записывает принятые данные в промежуточную встроенную файловую базу данных. Промежуточная БД расположена по пути {dataDir}\databases\monitoring_raw_data. После этого выполняется сбор и обработка принятой информации и запись в другую встроенную БД, соответствующую году, за который поступила информация.

Новая база данных по умолчанию создается в каталоге {dataDir}, «рабочей директории» платформы — {dataDir}\databases\monitoring_activity_{yyyy}, где:

  • {dataDir} — рабочая директория
  • monitoring_activity_ — префикс наименования базы данных
  • {yyyy} — год колонки

Пример структуры каталогов с данными встроенной СУБД

Данные активности индексируются по порядку поступления на сервер. Первая строка с активностью, поступившей на сервер Proceset, получит id = 1, а поступившая десятой — id = 10.

Если в activity_database запись за {yyyy} год отсутствует, запускается процесс создания базы за указанный год. В каталоге {dataDir}\databases\ создается папка monitoring_activity_{yyyy}. Если в каталоге существует папка, то приложение записывает в лог соответствующее исключение. Инициализируется DBProvider — экземпляр подключения к встроенной файловой базе данных. В базе monitoring_activity_{yyyy} создаются колонки:

  • activity_idx_{yyyy}
  • activity_{yyyy}
  • default

В ColumnFamily «default» заносятся данные:

  • CREATE_DATE — дата создания экземпляра базы данных
  • YEAR — год, к которому относится база данных
  • GUID — уникальный идентификатор

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

  • guid
  • year

Новый экземпляр подключения к встроенной файловой базе данных регистрируется в сервисе записи активности.

Между встроенной файловой базой данных сервера Proceset и СУБД ClickHouse, которая используется как системное «Хранилище данных», происходит периодическая синхронизация данных активности.

На стороне СУБД ClickHouse данные записываются в таблицу main.monitoring_activity. В процессе синхронизации сервер Proceset определяет последний индекс активности, которая записана в указанной таблице ClickHouse, после записывает в нее недостающие данные относительно встроенной файловой СУБД.

Схематичное изображение хранения активности в системе

Данные активности от агентов мониторинга хранятся одновременно и на стороне сервера Proceset, и на стороне сервера системной СУБД ClickHouse. Это сделано для надежности, так как данные от агентов мониторинга генерирует сама система Proceset, и их невозможно восстановить из других источников.

Удаление и восстановление данных активности на сервере СУБД ClickHouse

Сервер Proceset синхронизирует данные по последнему индексу активности, который есть в таблице на стороне СУБД ClickHouse. Если удалить строки до этого индекса, то они не будут заново синхронизированы.

Данными активности в таблице main.monitoring_activity можно оперировать до строки с самым последним индексом любым способом, который доступен в СУБД ClickHouse.

Предупреждение

Будьте осторожны при выполнении операций «копировать», «удалять», «вставлять», так как они влияют на корректность данных в дашбордах, которые построены на данных активности.

Очистив таблицу (TRUNCATE) main.monitoring_activity, можно инициировать полную синхронизацию всех данных активности из встроенной СУБД Proceset в СУБД ClickHouse.

Удаление и восстановление данных активности на сервере Proceset

С сервера Proceset можно удалять данные активности по годам, отключая соответствующие внутренние БД. Для этого нужно выполнить следующие действия:

  1. Остановить службу сервера Proceset (Infomaximum или Infomaximum-app в зависимости от ОС).
  2. Вырезать из каталога {dataDir}\databases\monitoring_activity_{yyyy} каталог с данными за нужный год.
  3. Запустить службу сервера Proceset.

После этого сервер Proceset не сможет обращаться к данным за этот год.

Если от агентов мониторинга придут данные за удаленный год, то они будут помещены в категорию поврежденных (corrupted). Поврежденные данные можно будет корректно обработать, если подключить обратно БД за нужный год.

Для того, чтобы подключить к серверу Proceset ранее удаленную БД с данными за год, выполните действия в обратном порядке:

  1. Отключите службу сервера Proceset.
  2. Поместите в каталог {dataDir}\databases\ ранее вырезанную папку с БД.
  3. Запустите службу.
Важно

Каждой встроенной БД с активностью система присваивает идентификатор GUID. Если GUID базы данных, расположенной в {dataDir}\databases\, неизвестен системе, то эта БД не будет подключена. В связи с этим возможно подключение и отключение БД с активностью только в рамках одного экземпляра сервера Proceset.

Перенос данных активности на сервере Proceset в другую директорию

При необходимости файловые БД с данными активности на сервере Proceset можно перенести в другую директорию. Для этого необходимо выполнить следующие действия:

  1. Остановить службу сервера Proceset (Infomaximum или Infomaximum-app в зависимости от ОС).
  2. Переместить из каталога {dataDir}\databases\monitoring_activity_{yyyy} каталог с данными за нужный год в нужную директорию.
  3. Внести изменения в конфигурационный файл com.infomaximum.subsystem.monitoring.json. Внести в файл новый блок по примеру ниже:
    external_activity_databases:["C:\\activity_data_database\2021"]
    
    Если таких БД несколько, то укажите их через запятую.
  4. Запустить службу сервера Proceset.

Была ли статья полезна?

Да
Нет
Предыдущая
Экспорт и импорт активности пользователей
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com
Для бизнеса
© 20102024. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.