Архивация активности
В системе предусмотрена архивация данных активности. Это позволяет уменьшить нагрузку на основную встроенную файловую базу данных, уменьшить размер базы и сократить количество фоновых процессов, связанных с активностью.
Архивация активности не затрагивает БД ClickHouse.
Создание экземпляра базы данных
Для каждого экземпляра базы создается отдельный экземпляр встроенной файловой базы данных.
База данных за конкретный год создается в двух случаях:
- при миграции данных из текущей структуры на основании метаинформации о существующих в системе месячных колонках
- в случае поступления в систему активности, где год отличается от существующих в системе годичных баз данных, а так же если отсутствует информация о ее отсоединении от системы
Новая база данных по умолчанию создаётся в каталоге {dataDir}, «рабочей директории» платформы — {dataDir}\databases\monitoring_activity_{yyyy}, где:
- {dataDir} — рабочая директория
- monitoring_activity_ — префикс наименования базы данных
- {yyyy} — год колонки
Если в activity_database запись за {yyyy} год отсутствует, запускается процесс создания базы за указанный год. В каталоге {dataDir}\databases\ создаётся папка monitoring_activity_{yyyy}. Если в каталоге существует папка, то приложение записывает в лог соответствующее исключение. Инициализируется DBProvider — экземпляр подключения к встроенной файловой базе данных. В базе monitoring_activity_{yyyy} создаются колонки:
- activity_idx_{yyyy}
- activity_{yyyy}
- default
В ColumnFamily «default» заносятся данные:
- CRATE_DATE — дата создания экземпляра базы данных
- YEAR — год, к которому относится база данных
- GUID — уникальный идентификатор
Если в процессе инициализации БД происходит ошибка, то приложение записывает в лог соответствующее исключение. В доменную сущность activity_database в базе мониторинга заносятся данные созданной БД:
- guid
- year
Новый экземпляр подключения к встроенной файловой базе данных регистрируется в сервисе записи активности.
Выполнение архивации активности
Выполнение архивации и разархивации активности заключается в отсоединении и присоединении данных от системы, которые сводятся к физическому перемещению каталога. В обоих случаях перед перемещением необходимо выключить экземпляр службы Proceset.
- Возможно только отсоединение баз данных, где год меньше текущего календарного года.
- Если после отсоединения базы данных приходит активность за этот год, то проверка существования мета-данных о годичной БД не позволит ее создать заново. Активность за такой год будет перемещаться в Corrupted.
Для разархивации активности необходимо переместить каталог в папку {dataDir}\databases\. Данный каталог система сканирует автоматически.
Также можно указать путь до внешнего каталога через конфигурационный файл com.infomaximum.subsystem.monitoring.json. Для этого в файл необходимо добавить новый блок. Пример:
external_activity_databases:[
"database\path\2022"
"C:\\activity_data_database\2021
"]
По умолчанию блок в com.infomaximum.subsystem.monitoring.json отсутствует. Изменения в нём вступают в силу после перезапуска приложения.
При присоединении каталога годичной активности допускается переименование каталога из стандартного наименования monitoring_activity_{yyyy} в произвольное.
Была ли статья полезна?