Описание
База данных 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.