База данных Аналитического портала

Совокупность объектов, используемых Аналитическим порталом для хранения служебной информации: структуры команд API, настроек, данных о пользователях, дашбордах и тд.
Объекты, используемые порталом локализованы в рамках одной базы данных, которая используется порталом постоянно для работы и является его неотъемлемой частью.
Перед использованием Аналитического портала, базу данных необходимо создать. О том как сделать базу данных для Аналитического портала будет описано ниже.

В качестве СУБД, для размещения базы данных Аналитическому порталу требуется PostgreSQL (версии не ниже 10).
Всё дальнейшее описание будет вестись из расчета использования именно этой СУБД.
СУБД PostgreSQL предварительно необходимо установить и настроить.

Примечание: За дистрибутивами СУБД PostgreSQL и инструкциями по установке и настройке перейдите на официальный сайт разработчика:

Если СУБД PostgreSQL устанавливается впервые и будет использоваться без дополнительного ПО – пуллеров соединений (PgBouncer, Pgpool-II и т.д.), то для корректной работы с Аналитическим порталом в файле конфигурации PostgreSQL необходимо правильно сконфигурировать следующий параметр:

  • max\_connections - пиковое количество одновременно работающих пользователей (значение рассчитывается в зависимости от мощности сервера, по-умолчанию 100).

Примечание: До версии Аналитического портала 3.0 использовалась встраиваемая СУБД – SQLite

Инициализация базы данных портала

Для инициализации базы данных Аналитического портала необходимо:

  1. Создать пустую базу данных
  2. Указать параметры подключения к базе данных в файле настроек
  3. Выполнить первоначальное заполнение при помощи специальной команды

Шаг 1. Создание базы данных СУБД

В СУБД необходимо создать базу данных с любой основной схемой (в PostgreSQL по умолчанию – это public).
Никаких элементов внутри созданной базы данных дополнительно создавать не требуется.

Примечание: О том, как создать базу данных в СУБД PostgreSQL можно прочесть в официальном руководстве:

Шаг 2. Указание параметров подключения к базе в файле настроек

Для подключения Аналитического портала к базе данных, необходимо в файле настроек Аналитического портала modusbi.json, в разделе "metadata" указать параметры подключения к база данных:

{
  ...
  "metadata": {
    "driver": "postgres",
    "datasource": "postgres://<ПОЛЬЗОВАТЕЛЬ_БД>:<ПАРОЛЬ_БД>@<IP-АДРЕС_PG>:<ПОРТ_PG>/<ИМЯ_БД>?application_name=modusbi&sslmode=disable",
    "maxopenconns": <максимальное количество одновременно открытых соединений>,
    "maxidleconns" : <максимальное количество открытых соединений в пуле>,
    "maxlifetime": <максимальное время жизни соединения в пуле>
  }
  ...
}
  • driver - Строка - Имя драйвера для подключения к серверу СУБД, всегда “postgres”.
  • datasource - Строка - Строка, в которой закодированы параметры подключения к базе данных.
    • <ПОЛЬЗОВАТЕЛЬ_БД> - Строка - Логин пользователя СУБД.
    • <ПАРОЛЬ_БД> - Строка - Пароль пользователя СУБД.
    • <IP-АДРЕС_PG> - Строка - IP адрес сервера СУБД.
    • <ПОРТ_PG> - Число - Порт используемый сервером СУБД.
    • <ИМЯ_БД> - Строка - Имя базы данных на сервере СУБД, созданной на предыдущем шаге.
  • maxopenconns - Число - Максимальное количество одновременно открытых соединений. Не должно быть больше значения max_connections в настройках СУБД PostgreSQL.
  • maxidleconns - Число - Максимальное количество открытых (ожидающих) соединений в пуле.
  • maxlifetime - Число - Максимальное время жизни соединения в пуле. Указывается в секундах.

Пример: Аналитический портал и СУБД PostgreSQL установлены на одном сервере. Сервер СУБД PostgreSQL слушает стандартный порт 5432. Для подключения используется учетная запись пользователя СУБД с логином admin и паролем pass.Имя базы данных для портала – modusbi. Для описываемого случая, раздел «metadata» файла настроек будет следующим:

{
  ...
  "metadata": {
    "driver": "postgres",
    "datasource": "postgres://admin:pass@localhost:5432/modusbi?application_name=modusbi&sslmode=disable",
    "maxopenconns": 100,
    "maxidleconns" : 20,
    "maxlifetime": 3600
    }
  ...
}

Примечание: Пользователь СУБД, чей логин и пароль указывается в файле настроек портала, должен иметь в подключаемой базе данных права следующих типов: SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, USAGE.

Шаг 3. Первоначальное заполнение базы данных

Для первоначального заполнения базы данных необходимо запустить выполнение файла портала в режиме инициализации. Для запуска портала в режиме инициализации используется ключ "-init".
Для Windows:

C:\portal>modusbi.exe -init

Для Linux:

/opt/modusbi# ./modusbi -init

Примечание: Пользователь OS, под чьей учетной записи производится запуск приложения портала, должен иметь право на создание, изменение, удаление файлов в каталоге размещения исполняемого файла портала и на запуск исполняемого файла портала.

Если всё настроено верно, в файле лога modusbi.log появится соответствующее сообщение:

Cозданы метаданные в '<БД PostgreSQL>', необходимо перезапустить сервер.

где,

  • <БД PostgreSQL> - Имя созданной вами базы данных.
  • сервер - (который необходимо перезапустить) это сам Аналитический портал, исполняющий роль сервера в клиент-серверной архитектуре.

Запуск с ключом “-init” выполняется только при первоначальной настройке. Последующие запуски производятся без использования данного ключа.