Настройка базы данных приложения GlarusBI

База данных приложения — это место, где GlarusBI хранит информацию о пользователях, сохраненных вопросах, дашбордах и любых других данных, необходимых для работы приложения. По умолчанию используется встроенная база данных H2, но это можно изменить и выбрать другую базу данных.

Примечания

  • Использование GlarusBI с базой данных H2 не рекомендуется для производственных развертываний. Для промышленной эксплуатации мы настоятельно рекомендуем вместо этого использовать Postgres, MySQL или MariaDB. Если же вы решите продолжать использовать H2, обязательно регулярно делайте резервную копию файла базы данных.

  • Вы не можете изменить базу данных приложения, если приложение запущено. Информация о конфигурации подключения считывается только один раз при запуске приложения и остается постоянным в течение всего времени работы.

  • GlarusBI предоставляет ограниченную поддержку для миграции с H2 на Postgres или MySQL, если вы решите перейти на другую базу данных. Дополнительные сведения см. в разделе Миграция с H2 на MySQL или Postgres.

H2 (по умолчанию)

Для производственной установки GlarusBI мы рекомендуем пользователям заменить базу данных H2 на более надежную, например на Postgres. Это обеспечит более высокий уровень надежности и производительности, особенно при работе большого количества пользователей.

Если же вы решите использовать базу данных H2, вам вообще ничего не нужно будет менять. Когда приложение запускается первый раз, оно попытается создать новую базу данных H2 в той же папке файловой системы, из которой вы его запустили.

Вы можете просмотреть файлы базы данных, выполнив в терминале следующую команду:

ls metabase.*

Вы увидите следующее:

metabase.db.h2.db  # Or metabase.db.mv.db depending on when you first started using GlarusBI.
metabase.db.trace.db

Если по какой-либо причине вы хотите поместить файл базы данных H2 в другой каталог, вы можете сделать это с помощью переменной среды. Например:

export MB_DB_TYPE=h2
export MB_DB_FILE=/the/path/to/my/h2.db
java -jar glarusBI.jar

Обратите внимание, что H2 автоматически добавит .mv.db или .h2.db к указанному вами пути; поэтому не добавляйте эти расширения вручную! Другими словами, MB_DB_FILE должен выглядеть как /path/to/metabase.db, а не как /path/to/metabase.db.mv.db.

Postgres

Вы можете изменить базу данных приложения на Postgres, используя следующие переменные. Например:

export MB_DB_TYPE=postgres
export MB_DB_DBNAME=metabase
export MB_DB_PORT=5432
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
export MB_DB_HOST=localhost
java -jar glarusBI.jar

Обратите внимание, что вначале вам необходимо создать эту базу данных. Пример команды:

createdb --encoding=UTF8 -e metabase

При этих настройках GlarusBI будет использовать Postgress в качестве базы данных своего приложения, используя указанную выше информацию о коннекте. GlarusBI также поддерживает коннект с помощью JDBC строки, например:

export MB_DB_CONNECTION_URI="jdbc:postgresql://localhost:5432/metabase?user=<username>&password=<password>"
java -jar glarusBI.jar

MB_DB_CONNECTION_URI также можно использовать в сочетании с MB_DB_USER и/или MB_DB_PASS, если вы хотите передать один или оба этих параметра отдельно от остальной части строки подключения JDBC (полезно, если пароль содержит специальные символы):

export MB_DB_CONNECTION_URI="jdbc:postgresql://localhost:5432/metabase"
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
java -jar glarusBI.jar

Обновление с версии ранее 0.38

Если вы выполняете обновление с предыдущей версии GlarusBI, обратите внимание, что для GlarusBI 0.38 мы удалили использование PostgreSQL NonValidatingFactory для проверки SSL. Возможно, у вас может возникнуть сбой либо при запуске (если вы используете базу данных приложения PostgreSQL), либо при запросе к хранилищу данных PostgreSQL.

Вы можете устранить эту ошибку одним из двух способов:

  1. Настроить соединение PostgreSQL для использования проверки SSL-сертификата,

  2. Или вручную включить NonValidatingFactory. ВНИМАНИЕ: этот метод небезопасен. Мы упоминаем о нем, чтобы вы могли использовать его для поиска ошибок, или же в ситуациях, когда вам не нужно заботиться о безопасности вашего приложения.

То, как вы настраиваете подключение, зависит от того, используете ли вы Postgres в качестве хранения метаданных или в качестве хранилища данных, подключенного к GlarusBI:

Для базы данных приложения Postgres:

Чтобы использовать проверку SSL-сертификата, вам необходимо задать переменную MB_DB_CONNECTION_URI следующим образом:

export MB_DB_CONNECTION_URI="postgres://localhost:5432/metabase?user=<username>&password=<password>&sslmode=verify-ca&sslrootcert=<path to CA root or intermediate root certificate>"

Если вы не можете включить проверку сертификата, вы можете включить NonValidatingFactory для базы данных вашего приложения с помощью той же переменной среды, что и выше:

export MB_DB_CONNECTION_URI="postgres://localhost:5432/metabase?user=<username>&password=<password>&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory"

Для баз данных хранилища данных Postgres

Вы можете сделать то же самое на странице администратора для подключения к базе источников данных Postgres. Добавьте следующее в конец строки подключения JDBC:

&sslmode=verify-ca&sslrootcert=<path to CA root or intermediate root certificate>

Если это не сработает, вы можете включить NonValidatingFactory, добавив следующую конфигурацию в конец вашего URI подключения:

&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

Для информации о том как еще дополнительно можно настраивать параметры SSL подключения см. документацию PostgreSQL SSL.

MySQL или MariaDB

Если вы предпочитаете использовать MySQL или MariaDB, то минимальная рекомендуемая версия — MySQL 5.7.7 или MariaDB 10.2.2, с кодировкой utf8mb4. Для этого вам нужно задать переменные среды следующим образом:

export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase
export MB_DB_PORT=3306
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
export MB_DB_HOST=localhost
java -jar glarusBI.jar

Обратите внимание, что вначале вам необходимо создать эту базу данных. Пример команды:

CREATE DATABASE metabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

При этих настройках GlarusBI будет использовать Mysql в качестве базы данных своего приложения, используя указанную выше информацию о коннекте. GlarusBI также поддерживает коннект с помощью JDBC строки, например:

export MB_DB_CONNECTION_URI="jdbc:mysql://localhost:3306/metabase?user=<username>&password=<password>"
java -jar glarusBI.jar

Как и в случае с Postgres, MB_DB_CONNECTION_URI также можно использовать в сочетании с MB_DB_USER и/или MB_DB_PASS, если вы хотите передать один или оба этих параметра независимо от остальной части строки подключения JDBC:

export MB_DB_CONNECTION_URI="jdbc:mysql://localhost:5432/metabase"
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
java -jar glarusBI.jar