Действия по оптимизации после миграции при использовании API Azure Cosmos DB для MongoDB

ПРИМЕНЯЕТСЯ К: Mongodb

Important

Вы хотите перенести существующее приложение MongoDB или использовать функции языка запросов MongoDB (MQL)? Рассмотрим Azure DocumentDB.

Вы ищете решение для баз данных для крупномасштабных сценариев с соглашением об уровне обслуживания (SLA) с доступностью 99,999%, мгновенным автомасштабированием и автоматическим переключением на резервные ресурсы в нескольких регионах? Рассмотрим Azure Cosmos DB для NoSQL.

Important

Прочтите это руководство целиком, прежде чем выполнять действия, осуществляемые после миграции.

Это послемиграционное руководство по MongoDB является частью серии по миграции MongoDB. Критически важные этапы миграции MongoDB — это подготовка к миграции, миграция и действия после миграции, как указано ниже.

Схема этапов миграции.

Обзор действий после миграции

Для управления хранимыми данными, перенесенными из базы данных MongoDB в API Azure Cosmos DB для MongoDB, можно подключиться к Azure Cosmos DB. В этом руководстве описаны действия, которые могут потребоваться после миграции. Инструкции по миграции см. в руководстве по миграции MongoDB в Azure Cosmos DB API для MongoDB.

Выполните следующие действия после миграции.

Замечание

Единственным обязательным шагом после миграции является изменение строки подключения в приложении, чтобы она указывала на новую учетную запись Azure Cosmos DB. Все остальные выполняемые после миграции действия рекомендуются для оптимизации производительности слоя данных. Однако, если вы сразу выполняете внедрение приложения без выполнения других шагов, то ваше приложение сразу же столкнется с последствиями неоптимального индексирования и согласованности. В частности, если вы переключаетесь перед настройкой индексов, приложение может столкнуться с немедленным снижением цены и производительности. Имейте в виду, что такое положение дел можно нормализовать. После оптимизации индекса мы планируем, что Azure Cosmos DB часто будет превосходить текущее решение в плане соотношения цены и производительности.

Предварительные требования

В этом руководстве предполагается, что вы отмечаете ход выполнения миграции с помощью какого-нибудь средства отслеживания. Например, при помощи электронной таблицы. Если вы еще не сделали этого, рекомендуется ознакомиться с руководством по подготовке к миграции, чтобы узнать, как создать электронную таблицу переноса данных, обнаружить имеющиеся ресурсы MongoDB и спланировать миграцию.

Оптимизация политики индексирования

Чтобы оптимизировать цены и производительность, рекомендуется последовательно выполнить действия, указанные в таблице миграции пространства данных, и создать конфигурацию индекса для каждого ресурса.

  1. Мы рекомендуем планировать индексы на этапе подготовки к миграции. Добавьте столбец параметров индекса в таблицу миграции пространства данных.
    • Сервер Azure Cosmos DB для MongoDB версии 3.6 и выше автоматически индексирует только поле _id. Это поле нельзя удалить. Система автоматически обеспечивает уникальность поля _id для каждого ключа сегмента. Для индексирования дополнительных полей применяются команды управления индексами MongoDB. Эта политика индексирования по умолчанию отличается от Azure Cosmos DB для NoSQL, которая индексирует все поля по умолчанию.

    • Для сервера Azure Cosmos DB для MongoDB версии 3.2 все поля данных автоматически индексируются во время миграции данных в Azure Cosmos DB. Во многих случаях политика индексирования по умолчанию приемлема. Как правило, удаление индексов оптимизирует запросы на запись и наличие политики индексирования по умолчанию (т. е. автоматического индексирования) оптимизирует запросы на чтение.

    • Возможности индексирования Azure Cosmos DB включают в себя добавление составных индексов, уникальных индексов и индексов срока жизни. Интерфейс управления индексами сопоставляется с командой createIndex(). Дополнительные сведения см. в статьях "Индексирование в Azure Cosmos DB" и "Индексирование в API Azure Cosmos DB для MongoDB".

  2. Примените эти параметры индекса после миграции.
    • Служба Azure Database Migration Service автоматически переносит коллекции MongoDB с уникальными индексами. Однако перед переносом эти уникальные индексы необходимо создать. Azure Cosmos DB не поддерживает создание уникальных индексов, если в коллекциях уже есть данные. Дополнительные сведения см. в статье об уникальных ключах в Azure Cosmos DB.

Глобальное распределение данных

Служба Azure Cosmos DB доступна во всех регионах Azure по всему миру.

  1. Чтобы глобально распределить данные, следуйте указаниям, приведенным в статье Глобальное распределение данных с помощью API Azure Cosmos DB для MongoDB. После установки уровня согласованности по умолчания для вашей учетной записи Azure Cosmos DB, вы можете привязать один или несколько регионов Azure в зависимости от ваших общих потребностей в распределении. Для обеспечения высокой доступности и непрерывности бизнес-процессов мы всегда рекомендуем совершать запуск по крайней мере в двух регионах. Вы можете ознакомиться с рекомендациями по оптимизации затрат на развертывание в нескольких регионах в Azure Cosmos DB.

Установка уровня согласованности

Azure Cosmos DB предлагает 5 четко определенных уровней согласованности. Подробнее о сопоставлении уровней согласованности MongoDB и Azure Cosmos DB см. в статье Уровни согласованности и Azure Cosmos DB APIs. Уровень согласованности по умолчанию — уровень согласованности сеанса. Изменение уровня согласованности является необязательным, и его можно оптимизировать для приложения. Чтобы изменить уровень согласованности с помощью портала Azure, выполните следующие действия.

  1. Перейдите на панель Default Consistency в разделе Settings.
  2. Выберите необходимый уровень согласованности

Большинство пользователей оставляют уровень согласованности по умолчанию при настройке согласованности сеансов. Тем не менее, для разных уровней согласованности существуют компромиссы между доступностью и быстродействием.

Подключение или переключение вашего приложения

Обработка процесса переключения или подключения приложения позволяет переключить его на использование Azure Cosmos DB, как только миграция будет завершена. Выполните следующие действия.

  1. В новом окне войдите на портал Azure.
  2. На портале Azure на панели слева откройте меню Все ресурсы и найдите учетную запись Azure Cosmos DB, куда были перенесены данные.
  3. Откройте вкладку Connection String. На правой панели содержатся все сведения, необходимые для успешного подключения к учетной записи.
  4. Используйте сведения о подключении в конфигурации приложения (или в других соответствующих местах), чтобы передать Azure Cosmos DB API для подключения к MongoDB в приложении. Снимок экрана: параметры для строки подключения.

Дополнительные сведения см. на странице Подключение приложения MongoDB к Azure Cosmos DB.

Настройка для обеспечения оптимальной производительности

Одно из удобств индексирования, глобального распределения и согласованности состоит в том, что все эти возможности можно легко настраивать и перенастраивать по своему усмотрению. После завершения перехода приложения мы советуем мониторить производительность вашего приложения и скорректировать эти параметры по мере необходимости в соответствии с требованиями приложения.

Дальнейшие действия