# Работа с MongoDB в Glarus BI Glarus BI поддерживает MongoDB версии 4.2 или выше. ## Как Glarus BI синхронизирует данные в MongoDB Поскольку MongoDB содержит неструктурированные данные, Glarus BI использует другой подход к синхронизации метаданных вашей базы данных. Чтобы получить представление о схеме, Glarus BI просканирует первые десять тысяч документов каждой коллекции в вашей MongoDB. Эта выборка помогает Glarus BI делать такие вещи, как отличать поля даты и времени от строковых полей, а также предоставлять людям предварительно заполненные фильтры. Причина, по которой Glarus BI сканирует только образцы документов, заключается в том, что сканирование каждого документа в каждой коллекции при каждой синхронизации может создать слишком большую нагрузку на вашу базу данных. И хотя выборка довольно хорошо поддерживает актуальность Glarus BI, это также может означать, что новые поля иногда могут не отображаться, что приводит к проблемам с визуализацией или даже к тому, что поля не отображаются в ваших результатах. Для получения дополнительной информации ознакомьтесь с нашим [руководством по устранению неполадок](../../troubleshooting-guide/db-connection.md). ## Подключение к MongoDB Перейдите в Управление -> Базы данных и нажмите кнопку **Добавить базу данных**. Выберите MongoDB из раскрывающегося списка и введите желаемое **Отображаемое имя** для этой базы данных. Есть два способа подключения к MongoDB: 1. Использование [полей Glarus BI для ввода сведений о соединении](#using-metabase-fields). 2. Вставьте свою [строку подключения](#using-a-connection-string). ### Использование полей Glarus BI По умолчанию подключение к MongoDB осуществляется путём заполнения сведений о подключении в полях, предоставляемых Glarus BI: - хост; - имя базы данных; - порт; - имя пользователя; - пароль; - база данных аутентификации (необязательно); - дополнительные параметры строки подключения (необязательно). У вас также будет возможность **Использовать безопасное соединение (SSL)**. Включите SSL и вставьте содержимое цепочки сертификатов SSL сервера в текстовое поле ввода. Этот параметр доступен только для этого метода подключения (т.е. вы не можете включать сертификат при подключении с помощью строки подключения). ## Расширенные настройки для прямого подключения - **Использовать DNS SRV при подключении**. Для использования этой опции необходимо, чтобы указанный хост был полным доменным именем. При подключении к кластеру Atlas вам может потребоваться включить этот параметр. Если вы не знаете, что это значит, оставьте отключенным. ## Использование строки подключения Если вы предпочитаете подключаться к MongoDB с помощью [строки подключения](https://docs.mongodb.com/manual/reference/connection-string/), нажмите **Вставить строку подключения**. В пользовательском интерфейсе Glarus BI появится поле для вставки строки подключения. В настоящее время Glarus BI НЕ поддерживает следующие параметры строки подключения: - `tlsCertificateKeyFile` - `tlsCertificateKeyFilePassword` - `tlsCAFile` Если вам нужно использовать сертификат, подключитесь с помощью [метода по умолчанию](#using-metabase-fields) и включите **Использовать безопасное соединение (SSL)**. ## Настройки, общие для обоих вариантов подключения - **Использовать туннель SSH**: к некоторым установкам базы данных можно получить доступ только при подключении через хост-бастион SSH. Эта опция также обеспечивает дополнительный уровень безопасности, когда VPN недоступна. Включение этого обычно медленнее, чем прямое соединение. - **Повторно запускать запросы для простого исследования**: если этот параметр включен, Glarus BI будет автоматически выполнять запросы, когда пользователи выполняют простые исследования с помощью кнопок «Суммировать» и «Фильтровать» при просмотре таблицы или диаграммы. Вы можете отключить это, если запросы к этой базе данных выполняются медленно. Этот параметр не влияет на детализацию или SQL-запросы. - **Выберите время синхронизации и сканирования**: по умолчанию Glarus BI выполняет облегчённую ежечасную синхронизацию и интенсивное ежедневное сканирование значений полей. Если у вас большая база данных, мы рекомендуем включить эту функцию и проверить, когда и как часто происходит сканирование значений полей. - **Периодически повторять отпечатки таблиц**: этот параметр, отключенный по умолчанию, позволяет Glarus BI сканировать дополнительные значения полей во время синхронизации, обеспечивая более разумное поведение, например, улучшенное автоматическое объединение гистограмм. ## Настройка SSL через командную строку Вы можете добавить подписанный сертификат через пользовательский интерфейс Glarus BI (но не при использовании строки подключения), или вы можете использовать командную строку. ``` 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, используя хранилище: ``` java -Djavax.net.ssl.trustStore=cacerts.jks -Djavax.net.ssl.trustStorePassword=changeit -jar glarusBI.jar ``` Узнайте больше о [настройке SSL с MongoDB](http://mongodb.github.io/mongo-java-driver/3.0/driver/reference/connecting/ssl/). ## Подключение к кластеру MongoDB Atlas Чтобы убедиться, что вы используете правильную конфигурацию подключения: 1. Войдите в свой [кластер Atlas](https://cloud.mongodb.com). 2. Выберите кластер, к которому вы хотите подключиться, и нажмите **Подключить**. ![Снимок экрана вашего кластера](../images/mongo_1.png "Your cluster") 3. Нажмите **Подключить приложение**. ![Снимок экрана подключения](../images/mongo_2.png "Connect") 4. Выберите **Java** и версию. 5. Результирующая строка подключения содержит соответствующую информацию для предоставления в Glarus BI формы «Добавить базу данных» для MongoDB. 6. Скорее всего, вы захотите выбрать параметр «Использовать DNS SRV», который более новые кластеры Atlas используют по умолчанию. ## Общие проблемы с подключением - **Подключайтесь с помощью `DNS SRV`**, что является рекомендуемым методом для новых кластеров Atlas. - **Проверили ли вы белый список хостов кластера?** При тестировании соединения и обнаружении сбоя, пытались ли вы установить белый список IP-адресов на «0.0.0.0/0»? Внесение этого адреса в белый список позволяет подключаться с любых IP-адресов. Если вы знаете IP-адрес(а) или блок CIDR клиентов, используйте их. - **Подключиться к вторичному серверу**. При подключении к кластеру всегда используйте аргумент `?readPreference=secondary` в строке подключения, который позволяет Glarus BI читать данные со вторичного сервера, а не использовать ресурсы с первичного сервера. ## Я добавил поля в свою базу данных, но не вижу их в Glarus BI Glarus BI может не синхронизировать все ваши поля. Поскольку любой документ в коллекции MongoDB может содержать любое количество полей, единственный способ получить 100% покрытия всех полей — просканировать каждый документ в каждой коллекции. Причина, по которой Glarus BI не выполняет полное сканирование, заключается в том, что это создаст слишком большую нагрузку на вашу базу данных. Вместо этого Glarus BI получит выборку полей в коллекции, просканировав выборку из 1 000 документов в каждой коллекции (первые 500 документов и последние 500 документов в каждой коллекции). Если в этих документах не будет обнаружено новых полей, Glarus BI не будет знать о них. Если вы не видите все поля в коллекции в Glarus BI, один из способов решения проблемы — включить все возможные ключи в первый документ коллекции и присвоить этим ключам значения null. Так Glarus BI сможет распознать правильную схему для всей коллекции. ## Дополнительная информация См. наше руководство по устранению неполадок [устранение неполадок с подключением](../../troubleshooting-guide/db-connection.md).