Настройка базы данных приложения 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 для вас. Пример команды для создания базы данных:
Если у вас есть дополнительные параметры, 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-запроса для создания базы данных:
Следующая команда укажет 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 в консоли:
Вы должны увидеть следующие файлы:
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.
Вы можете решить эту проблему одним из двух способов:
- Настроить подключение PostgreSQL для использования проверки SSL-сертификата.
- Или вручную включить
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 для вашей базы данных:
Если это не срабатывает, вы можете включить NonValidatingFactory
, добавив следующее в конец URI подключения для вашей базы данных:
Для получения дополнительных опций для дальнейшей настройки параметров SSL-подключения см. документацию клиента PostgreSQL SSL.