Перейти к содержанию

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

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

Для промышленной эксплуатации мы рекомендуем использовать PostgreSQL в качестве базы данных приложения Glarus BI.

  • PostgreSQL (рекомендуется для промышленной эксплуатации)
  • MySQL (также подходит для промышленной эксплуатации)
  • H2 (используется по умолчанию для локальных демонстраций).

Предупреждение

Избегайте использования H2 в промышленной эксплуатации.

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

PostgreSQL

Мы рекомендуем использовать PostgreSQL для базы данных приложения Glarus BI. Минимальная версия Postgres, поддерживаемая Glarus BI, — 12, но мы всегда рекомендуем использовать последнюю доступную версию Postgres.

Вы можете использовать переменные окружения для установки базы данных Postgres в качестве базы данных приложения Glarus BI. Например, следующие команды указывают Glarus BI использовать базу данных 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 --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

Glarus BI не создаст базу данных Postgres для вас. Пример команды для создания базы данных:

createdb --encoding=UTF8 -e metabase

Если у вас есть дополнительные параметры, Glarus BI также поддерживает предоставление полной строки подключения JDBC:

export MB_DB_CONNECTION_URI="jdbc:postgresql://localhost:5432/metabase?user=<username>&password=<password>"
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

Если вы хотите передать URI подключения, учётные данные пользователя и пароль отдельно от строки подключения JDBC (полезно, если пароль содержит специальные символы), вы можете использовать переменную окружения MB_DB_CONNECTION_URI environment variable в сочетании с переменными MB_DB_USER и MB_DB_PASS:

export MB_DB_CONNECTION_URI="jdbc:postgresql://localhost:5432/metabase"
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

MySQL или MariaDB

Мы рекомендуем PostgreSQL, но вы также можете использовать MySQL или MariaDB.

Минимальная рекомендуемая версия — MySQL 8.0.17 или MariaDB 10.4.0. Набор символов utf8mb4 обязателен.

Мы не поддерживаем ApsaraDB MySQL. Вместо этого вы можете использовать ApsaraDB PostgreSQL.

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

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 --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

Glarus BI не создаст эту базу данных для вас. Пример SQL-запроса для создания базы данных:

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 --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.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 --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

База данных приложения H2

Предупреждение

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

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

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

H2 — это файловая база данных, и вы можете увидеть эти файлы базы данных H2 в консоли:

ls metabase.*

Вы должны увидеть следующие файлы:

metabase.db.h2.db  # Или metabase.db.mv.db в зависимости от того, когда вы впервые начали использовать Metabase.
metabase.db.trace.db

Если вы хотите использовать файл базы данных H2 в определённом каталоге, используйте переменные окружения MB_DB_TYPE и MB_DB_FILE:

export MB_DB_TYPE=h2
export MB_DB_FILE=/the/path/to/my/h2.db
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

Обратите внимание, что H2 автоматически добавляет .mv.db или .h2.db к указанному вами пути. Не указывайте эти двойные расширения в значении переменной окружения. Другими словами, MB_DB_FILE должен быть чем-то вроде /path/to/metabase.db, а не /path/to/metabase.db.mv.db (даже несмотря на то, что последний — это файл, который Glarus BI будет создавать).

Миграция с H2

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

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

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

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

  1. Настроить подключение PostgreSQL для использования проверки SSL-сертификата.
  2. Или вручную включить NonValidatingFactory.

Предупреждение

Метод NonValidatingFactory небезопасен. Мы включаем его здесь только для помощи в устранении неполадок или для ситуаций, когда безопасность не является приоритетом.

Способ настройки подключения зависит от того, используете вы Postgres в качестве базы данных приложения Glarus BI или в качестве хранилища данных, подключенного к Glarus BI.

Проверка SSL-сертификата для баз данных приложения 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"

Проверка SSL-сертификата для баз данных хранилища данных 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.

Дополнительная информация