Банк данных
Сервис используется для хранения пользовательских данных в Платформе с использованием СУБД MSSQL или PostgreSQL.
Важно
Ознакомьтесь с требованиями к версиям используемых СУДБ в разделе Ограничения и рекомендации.
Создание сервиса
Чтобы создать сервис Банк данных:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Для активации сервиса установите флажок Включен.
Для создания сервиса выберите вариант Банк данных в разделе Настройка сервисов:
На вкладке Параметры сервиса произведите следующие действия:
Выберите используемую СУБД:
MSSQL
Примечание
Если параметр FILESTREAM для оптимизированных запросов не включен на стороне сервера СУБД MSSQL, при включенном параметре «useMemoryOptimizedTable»: true в журнале будет зарегистрировано предупреждение, не блокирующее работу сервиса.
PostgreSQL
Примечание
Для работы сервиса с CУБД PostgreSQL пользователь должен обладать правами Вход разрешен (Can login) и Создание баз (Create databases).
Внимание
Особенности работы с версии 3.1.1.0
Сервис подключается по имени базы данных PostgreSQL в регистре, указанном в настройках. По умолчанию подключение производится по имени базы данных в нижнем регистре. Если Сервис подключен к базе данных, имя которой содержит символы верхнего регистра, рекомендуется выключить сервис, переименовать базу данных и включить сервис снова.
Установите флажок Регистрация действий, если действия в банке данных должны журналироваться в таблицу masterjournal базы данных (по умолчанию флажок не установлен). После установки флажка появляется возможность выбрать период хранения журнала действий; значение по умолчанию: 0 (Не ограничено).
Заполните следующие поля:
Сервер
Экземпляр
Порт
Имя базы данных
Примечание
Если база данных, указанная в настройках банка данных, не существует, Платформа самостоятельно создаст базу данных с указанным именем.
Имя СУБД PostgreSQL не должно содержать буквы в верхнем регистре, в противном случае подключение Платформы к СУБД будет невозможно. Начиная с версии 3.1.0 для корректного подключения необходимо переименовать СУБД и указать новое имя базы данных в настройках сервиса до применения конфигурации
Настройте параметры аутентификации:
Установите флажок Вход по имени пользователя и паролю
Введите имя пользователя и пароль, если для доступа к банку данных требуется аутентификация.
Если данные пользователя хранятся в сервисе Управление пользователями, установите флажок Получать пароль из модуля Credential. В результате поле Пароль отображаться не будет.
Нажмите на кнопку перехода в режим редактора конфигурации:
Установите параметры сервиса: databaseType, serverAddress, serverPort, serverInstance, database, account, name, description.
Нажмите на кнопку Сохранить изменения.
Нажмите на кнопку Применить конфигурацию.
Убедитесь, что в диспетчере задач появился процесс банка - DatareonPlatformDataBank.
Пример конфигурации сервиса банка данных:
{ "$type": "DT.ClusterConfiguration.NodeModule, DT_Core", "config": { "$type": "DT.ConfigurationRepository.Configuration.ModuleConfiguration.StorageConfig, DT_ConfigurationRepository", "changeLog": false, "storeDay": 0, "databaseConfiguration": { "$type": "DT.ClusterConfiguration.DBConnectionConfig, DT_Core", "databaseType": "MsSql", "useConnectionString": false, "useUsernameAndPassword": true, "serverAddress": "DTplatform31", "serverPort": 1433, "serverInstance": "sqlexpress", "database": "MyDB", "account": { "$type": "DT.ClusterConfiguration.Account, DT_Core", "userName": "Testing", "passwordNew": "Datare0n!", "useCredential": false }, "integratedSecurity": false, "pooling": true, "minimumPoolSize": -1, "maximumPoolSize": -1, "connectionLifetime": -1, "properties": [] }, "sendingStrategy": "" }, "isActive": true, "folderId": null, "entityId": "e24de33c-a25f-494c-a97c-042b8775c21c", "clusterId": "140e7996-8609-4ebd-a783-ca63855dbb9a", "name": "Банк_данных", "description": "Банк данных", "version": 1, "tagsCollection": [], "className": "DataBank", "classNameStr": "Банк данных", "comment": "" }
Примечание
Если на сервере СУБД MSSQL отключен параметр оптимизированных запросов FILESTREAM, в журнале работы сервиса будет регистрироваться соответствующее предупреждение, не блокирующее работу сервиса. Для нормальной работы сервиса с оптимизированными запросами включите параметр FILESTREAM на стороне сервера СУБД. Если работа с оптимизированными сервисами не требуется, отключите параметр useMemoryOptimizedTable в конфигурации сервиса для избежания регистрации предупреждений.
Настройка триггеров
Триггеры используются при массовой загрузке данных в базу.
Управление осуществляется путем редактирования конфигурации банка данных:
"databankParams": {
"$type": "DT.DatabankParams, DT_Core",
"search_TableBulkAfter": 300,
"search_TableInsertAfter": 30,
"insert_BatchSize": 30,
"delete_BatchSize": 100,
"insert_BulkAfter": 2,
"bulkCopyTimeout": 600,
"checkBatchSize": 300,
"commandTimeout": 0,
"useMemoryOptimizedTable": true,
"createDataViews": false,
"fireTriggers": false
}
Основные параметры:
"search_TableInsertAfter"
- количество строк для разделения записей."insert_BulkAfter"
: - предельное количество записей, при превышении которого будет применен метод массовой загрузки BulkInsert."bulkCopyTimeout"
: - таймаут для операции массового копирования."commandTimeout"
: - таймаут для всех операций."useMemoryOptimizedTable"
: - использование таблиц, оптимизированных в MSSQL."fireTriggers"
: - включение / выключение триггеров, значение по умолчанию - false.
Важно
Определение необходимости вставки данных через bulk или нет осуществляется по формуле:
"***количество записей (количество заполняемых полей(колонок) в таблице + 5)***".
Мониторинг
Сообщения из логгера ConveyorDataWatchService для банка данных отображаются в разделе ЦМ DebugCoveyor.
Чтобы сообщения начали поступать в журнал банка данных, необходимо выбрать конвейер DebugConveyor в настройках соответствующего кластера на вкладке Логирование в выпадающем списке Дополнительные разделы журнала, сохранить изменения и применить конфигурацию.