Описание настроек системы хранения конфигурации SQLIte.json

Описание

База данных db.db, на основе встраиваемой СУБД SQLite, используется для хранения конфигурации ALEPIZ, которая создается для обслуживания инфраструктуры. Например, там хранятся данные об объектах, свойствах объектов, счетчиках, подключениях счетчиков к объектам, задачах, пользователях, правах пользователей и т.д. Обычно обращение к базе данных происходит через файловые операции. Это повышает надежность, скорость и исключает блокировки при одновременной подаче транзакций. При необходимости удаленных интеграций с БД, можно использовать сервер БД, встроенный в ALEPIZ.

Структура БД

Список таблиц БД и краткое описание

  • actionsConfig - хранение пользовательских настроек Веб интерфейса для действий
  • counterParameters - параметры коллекторов, которые подключены к счетчикам
  • counters - параметры счетчиков
  • countersGroups - группы счетчиков
  • countersUnits - единицы измерения данных и алгоритмы их преобразований
  • countersUpdateEvents - настройки событий для обновления связанных счетчиков
  • interactions - настройки взаимодействий объектов в списке объектов в пользовательском интерфейсе
  • objects - параметры объектов
  • objectsCounters - взаимосвязи счетчиков и объектов
  • objectsProperties - свойства объектов
  • rightsForActions - пользовательские права на действия
  • rightsForObjects - пользовательские права на объекты
  • roles - роли пользователей
  • tasks - параметры задач
  • tasksActions - действия, используемые в задачах
  • tasksGroups - группы задач
  • tasksGroupsRoles - пользовательские права на группы задач
  • tasksParameters - параметры задач
  • tasksRunConditions - условия для выполнения задач
  • tasksRunConditionsOCIDs - id задачи и object counter ID, от которого зависит условие ее запуска
  • userCommunication - настройки средств связи с пользователями
  • userCommunicationPriorities - настройки приоритетов средств связи с пользователями
  • userCommunicationPriorityDescription - описание приоритетов для средств связи
  • users - параметры пользователей
  • usersRoles - соответствие пользователей и ролей
  • variables - переменные для счетчиков, которые рассчитываются из исторических данных
  • variablesExpressions - переменные для счетчиков, которые рассчитываются из других переменных

Настройки

  • path - Относительный путь до базы данных. Например, db/db.db.
  • maxVariableNumber - максимальное количество переменных, которое можно использовать в запросах. В запросах типа SELECT * FROM objects WHERE objects.id IN (1,2,3,4,5,15), количество переменных (в скобках после IN) в SQLite ограничено значением, которое задается при компиляции. Если превысить это значение, запрос завершится с ошибкой. Для того, чтобы этого не происходило в функциях работы с БД встроена проверка на количество передаваемых переменных, которое задается этим параметром. По умолчанию для ALEPIZ 99.
  • https://www.sqlite.org/limits.html
  • directAccessToDBFile - (true|false) работать напрямую с файлом базы данных, без использования сервера БД. Это рекомендованный режим работы. Он позволяет увеличить скорость и уменьшить количество блокировок БД при записи данных.
  • disableServer - (true|false) нужно ли запускать сервер БД, для обслуживания запросов. Сервер запускается как отдельный поток и может использоваться для внешних интеграций с ALEPIZ. Если внешних интеграций нет и параметр directAccessToDBFile установлен в true, то сервер БД не нужен и его можно отключить.
  • localAddress - IP адрес к которому будет привязан сервер БД. По умолчанию 127.0.0.1.
  • serverAddress - IP адрес, к которому будут подключаться клиенты. По умолчанию 127.0.0.1.
  • serverPort - TCP порт, который будет слушать сервер и к которому будут подключаться клиенты. Например, 10200.
  • dbChildrenNum - количество потоков для обслуживания запросов на получение информации из БД на сервере БД. По умолчанию 0 - соответствует количеству ядер процессоров на сервере. Для записи данных в БД каждое соединение с сервером БД обслуживает отдельный поток.
  • retryAttemptsAfterDBLock - количество попыток записи в БД если БД заблокирована. По умолчанию 60.
  • retryAttemptsPause - пауза между попытками записи в БД, если БД заблокирована. По умолчанию 500мс.
  • slowQueryExecutionTime - максимальное время выполнение SQL запроса, после которого в лог будет добавлена запись о медленном выполнении запроса. По умолчанию 20000мс.
  • options - опции для движка БД better-sqlite3
    • verbose - (true|false) выводить в лог все SQL запросы. По умолчанию false.
    • readonly - (true|false) работать в режиме только для чтения. В настоящий момент такой режим поддерживается только движком БД и не поддерживается ALEPIZ. По умолчанию false.
    • fileMustExist - (true|false) если файла БД не существует, не создавать его и возвращать ошибку. По умолчанию false. В случае ALEPIZ не имеет смысла.
    • timeout - количество миллисекунд ожидания при выполнении запросов к заблокированной базе данных, прежде чем выдать ошибку SQLITE_BUSY. По умолчанию: 5000.