MySQL¶
Предупреждение
Рекомендуем использовать MySQL версии 8.0.33 или выше.
Чтобы добавить подключение к базе данных, нажмите шестерёнку в правом верхнем углу и перейдите в Управление > Базы данных > Добавить базу данных.
Настройки¶
Вы можете изменить эти настройки в любое время. Просто не забудьте сохранить ваши изменения.
Название¶
Название, которое будет отображаться в интерфейсе Glarus BI.
Хост¶
IP-адрес базы данных или её доменное имя (например, esc.mydatabase.com).
Порт¶
Порт базы данных. Например, 3306.
Имя пользователя¶
Имя пользователя базы данных для учётной записи, которую вы хотите использовать для подключения к базе данных. Вы можете настроить несколько подключений к одной и той же базе данных, используя разные учётные записи пользователей для подключения к одной и той же базе данных, каждая из которых имеет различные наборы разрешений.
Пароль¶
Пароль для подключения к базе данных, соответствующий имени пользователя.
Использовать защищённое соединение (SSL)¶
Вы можете вставить цепочку сертификатов SSL вашего сервера.
Использовать SSH-туннель¶
См. наше руководство по SSH-туннелированию.
Развернуть столбцы JSON¶
В базах данных MySQL Glarus BI может развернуть столбцы JSON в составные поля, чтобы получить таблицу, в которой каждый ключ JSON становится столбцом. Развёртывание JSON включено по умолчанию, но вы можете отключить его, если производительность низкая.
Если вы включили развёртывание JSON, вы можете также включить или отключить развёртывание для отдельных столбцов в метаданных таблицы.
Дополнительные параметры строки подключения JDBC¶
Вы можете добавить параметры к строке подключения, которую Glarus BI использует для подключения к вашей базе данных.
Запускать запросы для простых исследований¶
Выключите эту опцию, если пользователи хотят нажать Run (кнопка воспроизведения) перед применением любых группировок или выбором фильтров.
По умолчанию Glarus BI будет выполнять запрос сразу после выбора варианта группировки из меню Суммировать или условия фильтра из меню детализации (документация Metabase, англ.). Если ваша база данных медленная, вы можете отключить повторное выполнение, чтобы избежать загрузки данных при каждом нажатии.
Выберите, когда Glarus BI выполняет синхронизацию и сканирование¶
Включите эту опцию, чтобы управлять запросами, которые Glarus BI использует для поддержания актуальности вашей базы данных. Для получения дополнительной информации см. Синхронизация и сканирование баз данных.
Синхронизация базы данных¶
Если вы выбрали Выберите, когда будет выполняться синхронизация и сканирование > ВКЛ, вы сможете установить:
- частоту синхронизации: каждый день или каждый час;
- время запуска синхронизации в часовом поясе сервера, где работает ваше приложение Glarus BI.
Сканирование значений фильтра¶
Glarus BI может сканировать значения, присутствующие в каждом поле в этой базе данных, чтобы включить checkbox-фильтры на дашбордах и в запросах. Это может быть довольно ресурсоёмким процессом, особенно если у вас очень большая база данных.
Если вы выбрали Выберите, когда происходят синхронизация и сканирование > ВКЛ, вы увидите следующие параметры в разделе Сканирование значений фильтра:
- Регулярно, по расписанию позволяет запускать запросы сканирования с частотой, соответствующей скорости изменения вашей базы данных. Время устанавливается в часовом поясе сервера, где работает ваше приложение Glarus BI. Это лучший вариант для небольшой базы данных или таблиц с отдельными значениями, которые часто обновляются.
- Только при добавлении виджета-фильтра — отличный вариант, если вы хотите, чтобы запросы сканирования запускались по требованию. Включение этой опции означает, что Glarus BI будет сканировать и кэшировать значения поля (полей), используемые при добавлении нового фильтра на дашборд или SQL-запрос.
- Никогда, я сделаю это вручную, если мне это понадобится — это вариант для баз данных, которые либо чрезвычайно велики, либо в которых никогда не добавляются новые значения. Используйте кнопку Повторно сканировать значения поля сейчас, чтобы запустить ручное сканирование и обновить значения фильтра.
Периодический слепок таблиц¶
Предупреждение
Периодическое снятие слепков увеличит нагрузку на вашу базу данных.
Включите эту опцию, чтобы сканировать образец значений каждый раз, когда Glarus BI выполняет синхронизацию.
Запрос на снятие слепков исследует первые 10 000 строк из каждого столбца и использует эти данные для приблизительной оценки количества уникальных значений в каждом столбце, минимальных и максимальных значений для числовых столбцов и столбцов с отметками времени и т.д. Если вы оставите эту опцию отключённой, Glarus BI будет снимать слепки ваших столбцов только один раз во время настройки.
Подключение к серверам MySQL 8+¶
Glarus BI использует коннектор MariaDB для подключения к серверам MySQL. Коннектор MariaDB не поддерживает подключаемый модуль аутентификации MySQL 8 по умолчанию. Для подключения вам необходимо изменить подключаемый модуль, используемый пользователем Glarus BI:
mysql_native_password`: `ALTER USER 'metabase'@'%' IDENTIFIED WITH mysql_native_password BY 'thepassword';
Невозможно войти с правильными учётными данными¶
Как это обнаружить: Glarus BI не удаётся подключиться к вашему серверу MySQL с сообщением об ошибке «Похоже, имя пользователя или пароль неверны», но вы уверены, что имя пользователя и пароль верны. Возможно, вы создали пользователя MySQL с разрешённым хостом, отличным от хоста, с которого вы подключаетесь.
Например, если сервер MySQL работает в контейнере Docker, а ваш пользователь Glarus BI
был создан с помощью CREATE USER 'Glarus BI'@'localhost' IDENTIFIED BY 'thepassword';
, localhost
будет преобразован в контейнер Docker, а не хост-компьютер, что приведёт к отказу в доступе.
Вы можете определить эту проблему, просмотрев в журналах сервера Glarus BI сообщение об ошибке:
Обратите внимание на хост 172.17.0.1
(в данном случае IP-адрес сети Docker) и using password: YES
в конце.
Вы увидите такое же сообщение об ошибке при попытке подключения к серверу MySQL с помощью клиента командной строки: mysql -h 127.0.0.1 -u Glarus BI -p
.
Как это исправить: Воссоздайте пользователя MySQL с правильным именем хоста:
В противном случае, если необходимо, для имени хоста можно использовать подстановочный знак:
Разрешения этого пользователя должны быть установлены:
Не забудьте удалить старого пользователя:
Если вы не можете подключиться к базе данных, но пользователь, хост и пароль верны, попробуйте добавить trustServerCertificate=true
к дополнительным параметрам JDBC. Эта опция указывает драйверу Glarus BI доверять сертификату сервера, даже если у него нет установленного корневого сертификата, и должна установить безопасное соединение.
Синхронизация записей, включающих JSON¶
Glarus BI определит схему JSON, основываясь на ключах в первых пятистах строках таблицы. Поля JSON MySQL не имеют схемы, поэтому Glarus BI не может полагаться на метаданные таблицы для определения ключей, которые имеет поле JSON. Чтобы обойти отсутствие схемы, Glarus BI получит первые пятьсот записей и проанализирует JSON в этих записях, чтобы определить схему JSON. Причина, по которой Glarus BI ограничивает себя пятьюстами записями, заключается в том, что синхронизация метаданных не должна накладывать ненужную нагрузку на вашу базу данных.
Проблема заключается в том, что если ключи в JSON варьируются от записи к записи, то первые пятьсот строк могут не захватить все ключи, используемые объектами JSON в этом поле JSON. Чтобы Glarus BI мог выводить все ключи JSON, вам нужно будет добавить дополнительные ключи в объекты JSON в первых пятистах строках.
Запуск Docker-контейнера MySQL 8+¶
Если вы запускаете новый контейнер MySQL и:
- вы хотите, чтобы Glarus BI подключался к контейнеру без необходимости вручную создавать пользователя или изменять механизм аутентификации,
- или вы столкнулись с ошибкой
RSA public key is not available client side (option serverRsaPublicKeyFile not set)
,
Используйте модификаторы ['--default-authentication-plugin=mysql_native_password']
при запуске контейнера, например:
-
простой запуск docker:
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxxxxx mysql:8.xx.xx --default-authentication-plugin=mysql_native_password
-
или в docker-compose:
mysql:
image: mysql:8.xx.xx
container_name: mysql
hostname: mysql
ports:
- 3306:3306
environment:
- "MYSQL_ROOT_PASSWORD=xxxxxx"
- "MYSQL_USER=metabase"
- "MYSQL_PASSWORD=xxxxxx"
- "MYSQL_DATABASE=metabase"
volumes:
- $PWD/mysql:/var/lib/mysql
command: ["--default-authentication-plugin=mysql_native_password"]
Ограничения с базами данных на базе Vitess¶
При запросе к базам данных Vitess следует добавлять предложение LIMIT
внутри каждого подзапроса.
Причина: обычно Glarus BI применяет лимиты (например, 2000 или 10000 строк) к конечным результатам запроса. Но из-за известной ошибки в Vitess, Vitess может применять эти лимиты к подзапросам, что может привести к неожиданным результатам. Обходным решением является добавление лимитов к каждому из ваших подзапросов.
Возможно, вам стоит проконсультироваться с поставщиком, который размещает платформу, поскольку Vitess может столкнуться с проблемами при возврате метаданных из информационной схемы. Glarus BI нуждается в этих метаданных для заполнения своей базы данных приложения; если Glarus BI не может получить эти метаданные, поля могут не отображаться (или отображаться пустыми).