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

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

Примечания

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

  • обязательно регулярно делайте резервную копию файла базы данных;

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

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

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

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

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

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

    ls metabase.*

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

    metabase.db.h2.db  # Or metabase.db.mv.db depending on when you first started using Glarus BI.
    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

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

Glarus BI также поддерживает подключение с помощью 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

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

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

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

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

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

Для базы данных приложения 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;

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

Glarus BI также поддерживает подключение с помощью 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