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

MongoDB

Чтобы добавить подключение к базе данных, нажмите значок gear в правом верхнем углу и перейдите в Admin settings > Databases > Add a database.

Поддерживаемые версии

Glarus BI поддерживает версии MongoDB от самой старой поддерживаемой до последней стабильной. См. MongoDB Software Lifecycle Schedules.

Подключение к MongoDB

Есть два способа подключиться к MongoDB:

  1. Использовать поля Glarus BI, чтобы ввести параметры подключения.
  2. Вставить строку подключения.

Использование полей Glarus BI

По умолчанию для подключения к MongoDB нужно заполнить параметры подключения в полях, которые предоставляет Glarus BI:

  • Хост
  • Название базы данных
  • Порт
  • Имя пользователя
  • Пароль
  • База данных аутентификации (необязательно)
  • Дополнительные параметры строки подключения (необязательно)

Также будет доступна опция Use a secure connection (SSL). Включите SSL и вставьте содержимое цепочки SSL‑сертификатов сервера в текстовое поле. Эта опция доступна только для этого способа подключения (то есть нельзя «прикрепить» сертификат, если вы подключаетесь строкой подключения).

Расширенные настройки для прямого подключения

  • Use DNS SRV when connecting. Для этой опции требуется, чтобы host был FQDN. При подключении к Atlas‑кластеру может потребоваться включить эту опцию. Если вы не уверены, что это означает, оставьте выключенным.

Использование строки подключения

Если вы предпочитаете подключаться к MongoDB с помощью строки подключения, нажмите Paste a connection string. Интерфейс Glarus BI изменится и покажет поле для вставки строки подключения.

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

  • tlsCertificateKeyFile
  • tlsCertificateKeyFilePassword
  • tlsCAFile

Если вам нужен сертификат, подключайтесь способом по умолчанию и включайте Use a secure connection(SSL).

Настройки, общие для обоих вариантов подключения

  • Use an SSH tunnel: некоторые установки баз данных доступны только через SSH bastion host. Эта опция также даёт дополнительный уровень безопасности, если VPN недоступен. Обычно такой вариант медленнее прямого подключения.
  • Перезапускать запросы при простом исследовании (Rerun queries for simple exploration): если включено, Glarus BI автоматически выполняет запросы, когда пользователи делают простые исследования через кнопки Summarize и Filter при просмотре таблицы или графика. Можно отключить, если запросы к этой базе данных выполняются медленно. Эта настройка не влияет на drill‑through или SQL‑запросы.
  • Choose when syncs and scans happen: См. "Синхронизация и сканирование базы данных"
  • Периодически снимать слепки таблиц (Periodically refingerprint tables): настройка (по умолчанию выключена), которая позволяет Glarus BI сканировать дополнительные значения полей во время синхронизаций (sync) и включать «умное» поведение, например улучшенное авто‑разбиение по бинам (auto-binning) на гистограммах.

Подключение к кластеру MongoDB Atlas

Добавьте IP‑адреса в whitelist

Если вы используете Metabase Cloud, вам нужно добавить в whitelist Metabase Cloud IP addresses для вашего Atlas‑кластера. Если вы используете self-hosted Glarus BI, добавьте IP вашего экземпляра Glarus BI.

  1. Войдите в Atlas cluster
  2. Перейдите в Network Access
  3. Добавьте IP‑адреса, которые Glarus BI использует для подключения.

Подключите Glarus BI к вашему Atlas‑кластеру

Строка подключения из интерфейса Atlas «Connect» не включает название базы данных. Glarus BI требует указать название базы данных при подключении, поэтому вам нужно будет отредактировать строку подключения и добавить database name.

  1. Войдите в Atlas account
  2. Выберите кластер, к которому вы хотите подключиться, и нажмите Connect.

Your cluster screengrab

  1. Выберите Drivers.
  2. Скопируйте строку подключения из раздела Add your connection string into your application code.

Connect screengrab

  1. В Glarus BI перейдите в Admin -> Databases и нажмите кнопку Add database.
  2. Выберите MongoDB из выпадающего списка и укажите Display name для этой базы данных.
  3. Нажмите Paste the connection string и вставьте строку подключения.
  4. Отредактируйте строку подключения, добавив название базы данных после /:
mongodb+srv://metabot:metapass@my-test-cluster.a5ej7.mongodb.net/DATABASE_NAME?retryWrites=true&w=majority&appName=my-test-cluster

Если вместо строки подключения вы используете поля Glarus BI для ввода параметров подключения к Atlas, возможно, потребуется включить Use DNS SRV when connecting.

См. подробнее в разделе Расширенные параметры.

Настройка SSL через командную строку

Можно указать self-signed сертификат через UI Glarus BI (но не при подключении строкой подключения) или использовать командную строку, чтобы добавить self-signed сертификат.

cp /usr/lib/jvm/default-jvm/jre/lib/security/cacerts ./cacerts.jks
keytool -import -alias cacert -storepass changeit -keystore cacerts.jks -file my-cert.pem

Затем запустите Glarus BI, указав trustStore:

java -Djavax.net.ssl.trustStore=cacerts.jks -Djavax.net.ssl.trustStorePassword=changeit -jar metabase.jar

Подробнее см. configuring SSL with MongoDB.

Как Glarus BI синхронизирует данные в MongoDB

Поскольку MongoDB содержит неструктурированные данные, Glarus BI по‑другому синхронизирует метаданные. Чтобы «угадать» схему, Glarus BI запрашивает первые и последние 500 документов (большинство вычислений выполняется в MongoDB). Такое семплирование помогает Glarus BI, например, отличать поля datetime от строковых полей и предлагать людям преднастроенные фильтры. Glarus BI также синхронизирует 1 000 leaf fields (полей на самом глубоком уровне вложенности) на коллекцию MongoDB. Glarus BI сканирует только часть документов, потому что сканирование каждого документа в каждой коллекции на каждой синхронизации создаст слишком большую нагрузку на базу данных. При этом семплирование обычно хорошо держит Glarus BI в актуальном состоянии, но иногда новые поля могут «не попасть» в выборку, что приводит к проблемам визуализации или даже к тому, что поле не появляется в результатах. Подробнее см. в руководстве по устранению неполадок.

Общие проблемы с подключением

  • Connect using DNS SRV — рекомендуемый способ для новых Atlas‑кластеров.
  • Have you checked your cluster host whitelist? Если тест подключения падает, пробовали ли вы выставить whitelist в 0.0.0.0/0? Это позволяет подключаться с любых IP. Если вы знаете точные IP/CIDR клиентов, используйте их вместо этого.
  • Connect to the secondary server. При подключении к кластеру используйте параметр ?readPreference=secondary в строке подключения, чтобы Glarus BI читал со secondary‑сервера, а не расходовал ресурсы primary.

Я добавил поля в базу данных, но не вижу их в Glarus BI

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

Вместо этого Glarus BI получает выборку полей коллекции, сканируя выборку из 1000 документов в каждой коллекции (первые 500 и последние 500 документов коллекции).

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

Опасная зона (Danger zone)

См. опасную зону.

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

См. наше руководство по устранению неполадок: устранение проблем с подключением.