Упражнение. Перенос рабочих нагрузок MongoDB в Cosmos DB

Завершено

Вы работаете в компании коммунальных служб с датчиками Интернета вещей, которые собирают данные температуры. Температура регистрируется в базе данных MongoDB вместе с меткой времени. У каждого устройства есть уникальный идентификатор. Вы запустите приложение MongoDB, которое имитирует эти устройства и сохраняет данные в базе данных. Вы также будете использовать второе приложение, которое позволяет пользователю запрашивать статистические сведения о каждом устройстве. После переноса базы данных из MongoDB в Cosmos DB вы настроите оба приложения для подключения к Cosmos DB и убедитесь, что они по-прежнему работают правильно.

В этом упражнении вы получите существующую базу данных MongoDB и перенесите ее в Cosmos DB. Вы будете использовать Azure Database Migration Service. Вы также узнаете, как перенастроить существующие приложения, использующие базу данных MongoDB для подключения к базе данных Cosmos DB.

Это важно

Служба Azure Data Migration Service не поддерживается в бесплатной версии песочницы Azure. Эти действия можно выполнить в рамках собственной подписки или просто ознакомиться с ними, чтобы понять, как выполнять миграцию базы данных.

Создание базы данных MongoDB в Azure

Сначала вы создадите базу данных MongoDB для хранения данных, захваченных с устройств температуры.

Создание группы ресурсов и виртуальной сети

  1. С помощью веб-браузера откройте новую вкладку и перейдите на портал Azure.

  2. На портале Azure выберите группы ресурсов и нажмите кнопку +Добавить.

  3. На странице "Создание группы ресурсов" введите следующие сведения:

    Недвижимость Ценность
    Подписка <ваша подписка>
    Группа ресурсов mongodbrg
    Регион Выберите ближайшее к вам расположение
  4. Выберите Просмотр + Создание, а затем выберите Создать. Дождитесь создания группы ресурсов.

  5. В меню портала Azure нажмите кнопку +Создать ресурс.

  6. На новой странице в поле "Поиск Marketplace " введите виртуальную сеть и нажмите клавишу ВВОД.

  7. На странице "Виртуальная сеть" нажмите кнопку "Создать".

  8. На странице "Создание виртуальной сети " введите следующие сведения и нажмите кнопку "Далее: IP-адреса".

    Недвижимость Ценность
    Группа ресурсов mongodbrg
    Имя сеть базы данных
    Регион Выберите то же расположение, которое вы указали для группы ресурсов
  9. На странице IP-адресов задайте для адресного пространства IPv4 значение10.0.0.0/24.

  10. Выберите подсеть по умолчанию и нажмите кнопку "Удалить подсеть".

  11. Нажмите + Добавить подсеть. В области "Добавление подсети " задайте для имени подсети значениепо умолчанию, задайте диапазон адресов подсетизначение 10.0.0.0/28, а затем нажмите кнопку "Добавить".

  12. На странице IP-адресов нажмите кнопку "Далее: безопасность".

  13. На странице "Безопасность" убедитесь, что для защиты сети DDoS Azure задано значение Disable, и брандмауэру присвоено значение Disable. Выберите Review + create.

  14. На странице "Создание виртуальной сети " нажмите кнопку "Создать". Дождитесь создания виртуальной сети, прежде чем продолжить.

Создание сервера базы данных MongoDB

  1. В меню портала Azure нажмите кнопку +Создать ресурс.

  2. В поле Поиска в Marketplace введите Ubuntu и нажмите клавишу ВВОД.

  3. На странице Marketplace выберите Ubuntu Server 18.04 LTS.

  4. На странице Ubuntu Server 18.04 LTS нажмите кнопку "Создать".

  5. На странице "Создание виртуальной машины" введите следующие сведения:

    Недвижимость Ценность
    Группа ресурсов mongodbrg
    Название виртуальной машины mongodbserver
    Регион Выберите то же расположение, которое вы указали для группы ресурсов
    Параметры доступности Нет необходимости в избыточности инфраструктуры
    Изображение Ubuntu Server 18.04 LTS — 1-го поколения
    Виртуальная машина Azure Spot Не проверено
    Размер Стандартный A1_v2
    Тип аутентификации Пароль
    Имя пользователя azureuser
    Пароль Pa55w.rdPa55w.rd
    Подтверждение пароля Pa55w.rdPa55w.rd
    Общедоступные входящие порты Разрешить выбранные порты
    Выбрать входящие порты SSH (22)
  6. Нажмите кнопку "Далее" — диски >.

  7. На странице "Диски" оставьте параметры по умолчанию, а затем нажмите кнопку "Далее: Сеть >".

  8. На странице "Сеть" введите следующие сведения:

    Недвижимость Ценность
    Виртуальная сеть databasevnet
    Подсеть по умолчанию (10.0.0.0/28)
    Общедоступный IP-адрес (новое) mongodbserver-ip
    Группа безопасности сети NIC Продвинутый
    Настройка группы безопасности сети (новое) mongodbserver-nsg
    Ускорение работы в сети Не проверено
    Балансировка нагрузки Не проверено
  9. Выберите "Рецензирование и создание >".

  10. На странице проверки нажмите кнопку "Создать".

  11. Дождитесь развертывания виртуальной машины, прежде чем продолжить

  12. В меню портала Azure выберите все ресурсы.

  13. На странице "Все ресурсы " выберите mongodbserver-nsg.

  14. На странице mongodbserver-nsg в разделе "Параметры" выберите правила безопасности для входящего трафика.

  15. На странице правил безопасности для входящего трафика mongodbserver-nsg нажмите кнопку +Добавить.

  16. В области Добавление правила безопасности для входящего трафика введите следующие сведения:

    Недвижимость Ценность
    Исходный материал Любое
    Диапазоны исходных портов *
    Место назначения Любое
    Диапазоны портов назначения 8080
    Протокол Любое
    Действие Разрешить
    Приоритет 1030
    Имя Mongodb-port
    Описание Порт, используемый клиентами для подключения к MongoDB
  17. Нажмите кнопку "Добавить".

Замечание

В этом упражнении вы настроите MongoDB порт 8080. Это необходимо сделать только из-за ограничений безопасности в этой среде. Обычно используется порт MongoDB по умолчанию 27017.

Установка MongoDB

  1. В меню портала Azure выберите все ресурсы.

  2. На странице "Все ресурсы " выберите mongodbserver-ip.

  3. На странице mongodbserver-ip запишите IP-адрес.

  4. На панели инструментов в верхней части портала Azure выберите Cloud Shell.

  5. Если появится окно с сообщением "У вас не подключено хранилище", нажмите "Создать хранилище".

  6. При запуске Cloud Shell в раскрывающемся списке над окном Cloud Shell выберите Bash.

  7. В Cloud Shell введите следующую команду, чтобы подключиться к виртуальной машине mongodbserver. Замените <IP-адрес> значением IP-адреса mongodbserver-ip :

    ssh azureuser@<ip address>
    
  8. В командной строке введите "Да ", чтобы продолжить подключение.

  9. Введите пароль Pa55w.rdPa55w.rd.

  10. Чтобы перезагрузить базу данных пакета, введите следующую команду:

    sudo apt-get update
    
  11. Чтобы установить MongoDB, введите следующую команду:

    sudo apt-get install -y mongodb
    

    Установка должна продолжаться с сообщениями об установке, подготовке и распаковке пакетов. Для завершения установки может потребоваться несколько минут.

Настройка базы данных MongoDB

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

  1. Чтобы открыть файл конфигурации MongoDB, выполните следующую команду:

    sudo nano /etc/mongodb.conf
    
  2. В файле найдите параметр bind_ip и задайте для него значение 0.0.0.0.0.

  3. Найдите параметр порта и задайте для него значение 8080.

  4. Чтобы сохранить файл конфигурации, нажмите клавишу ESC и нажмите клавиши CTRL+X. Нажмите клавишу Y , а затем введите , чтобы сохранить измененный буфер.

  5. Чтобы перезапустить службу MongoDB и применить изменения, введите следующую команду:

    sudo service mongodb restart
    
  6. Чтобы подключиться к службе MongoDB, введите следующую команду:

    mongo --host 127.0.0.1:8080
    
  7. > Чтобы переключиться в базу данных администрирования, выполните следующую команду:

    use admin;
    
  8. Чтобы создать нового пользователя с именем администратора, выполните следующую команду. Для повышения удобочитаемости можно ввести команду в одной строке или в нескольких строках. Команда выполняется, когда mongo программа достигает точки с запятой:

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. Чтобы выйти из программы, введите следующую mongo команду;

    exit;
    
  10. Чтобы подключиться к MongoDB с учетной записью нового администратора, выполните следующую команду:

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. Чтобы переключиться в базу данных DeviceData , выполните следующую команду:

    use DeviceData;    
    
  12. Чтобы создать пользователя с именем deviceadmin, который приложение будет использовать для подключения к базе данных, выполните следующую команду:

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. Чтобы выйти из программы, введите следующую mongo команду;

    exit;
    
  14. Выполните следующую команду, чтобы перезапустить службу Mongodb. Убедитесь, что служба перезапускается без сообщений об ошибках:

    sudo service mongodb restart
    
  15. Выполните следующую команду, чтобы убедиться, что теперь вы можете войти в mongodb в качестве пользователя deviceadmin:

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. В командной строке > выполните следующую команду, чтобы выйти из оболочки mongo:

    exit;
    
  17. В командной строке bash выполните следующую команду, чтобы отключиться от сервера MongoDB и вернуться в Cloud Shell:

    exit
    

Заполнение и запрос базы данных MongoDB

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

Создание и запуск приложения для заполнения базы данных MongoDB

  1. В Azure Cloud Shell выполните следующую команду, чтобы скачать пример кода:

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. Перейдите в папку migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. Используйте редактор кода для проверки файла TemperatureDevice.cs :

    code TemperatureDevice.cs
    

    Код в этом файле содержит класс с именем TemperatureDevice , который имитирует устройство температуры, захватывающее данные и сохраняющее его в базе данных MongoDB. Она использует библиотеку MongoDB для .NET Framework. Конструктор TemperatureDevice подключается к базе данных с помощью параметров, хранящихся в файле конфигурации приложения. Метод RecordTemperatures снимает показания и записывает их в базу данных.

  4. Закройте редактор кода и откройте файл ThermometerReading.cs :

    code ThermometerReading.cs
    

    В этом файле показана структура документов, которые приложение хранит в базе данных. Каждый документ содержит следующие поля:

    • Идентификатор объекта. Это поле "_id", созданное MongoDB для уникальной идентификации каждого документа.
    • Идентификатор устройства. Каждое устройство имеет номер с префиксом Device.
    • Температура, записанная устройством.
    • Дата и время записи температуры.
  5. Закройте редактор кода и откройте файл App.config :

    code App.config
    

    Этот файл содержит параметры подключения к базе данных MongoDB.

  6. Задайте значение для ключа Address, указав IP-адрес сервера MongoDB, который вы записали ранее.

  7. Измените порт, используемый приложением на 8080.

  8. Сохраните файл и закройте редактор с помощью клавиш CTRL + s, а затем CTRL + q.

  9. Выполните следующую команду, чтобы перестроить приложение:

    dotnet build
    

    Это может занять около 5 минут.

  10. Запустите приложение:

    dotnet run
    

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

Создание и запуск другого приложения для запроса базы данных MongoDB

  1. Перейдите в папку DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    

    Эта папка содержит другое приложение, которое можно использовать для анализа данных, захваченных каждым устройством.

  2. Используйте редактор кода для проверки файла Program.cs :

    code Program.cs
    

    Приложение подключается к базе данных (с помощью метода ConnectToDatabase в нижней части файла) и запрашивает пользователю номер устройства. Приложение использует библиотеку MongoDB для .NET Framework для создания и запуска агрегатного конвейера, который вычисляет следующую статистику для указанного устройства:

    • Число записанных операций чтения.
    • Средняя температура, записанная.
    • Минимальное значение.
    • Максимальное значение.
    • Последнее чтение.
  3. Закройте редактор кода и откройте файл App.config :

    code App.config
    
  4. Задайте значение для ключа Address, указав IP-адрес сервера MongoDB, который вы записали ранее.

  5. Измените порт, используемый приложением на 8080.

  6. Сохраните файл и закройте редактор с помощью клавиш CTRL + s, а затем CTRL + q.

  7. Выполните сборку и запуск приложения:

    dotnet build
    dotnet run
    
  8. В командной строке "Ввод номера устройства" введите значение от 0 до 99. Приложение запрашивает базу данных, вычисляет статистику и отображает результаты. Нажмите клавишу Q , чтобы выйти из приложения.

Перенос базы данных MongoDB в Cosmos DB

Следующий шаг — принять базу данных MongoDB и передать ее в Cosmos DB.

Создание учетной записи и базы данных Cosmos

  1. Вернитесь на портал Azure.

  2. В меню выберите +Создать ресурс.

  3. На странице New в поле "Поиск на Marketplace" введите *Azure Cosmos DB, а затем нажмите Enter.

  4. На странице Azure Cosmos DB выберите Создать.

  5. На странице "Создание учетной записи Azure Cosmos DB " введите следующие параметры:

    Недвижимость Ценность
    Группа ресурсов mongodbrg
    Имя учетной записи mongodb*nnn*, где nnn является случайным числом, выбранным вами
    API (Интерфейс программирования приложений) AZURE Cosmos DB для API MongoDB
    Ноутбуки Выкл.
    Местоположение Укажите то же расположение, которое использовалось для сервера MongoDB и виртуальной сети.
    Режим емкости Подготовленная пропускная способность
    Применить скидку бесплатного уровня Применить
    Тип учетной записи Не производственные
    Версия 3.6
    Географическая избыточность Отключить
    Многорегиональные записи Отключить
    Зоны доступности Отключить
  6. Выберите Review + create.

  7. На странице проверки нажмите кнопку "Создать" и дождитесь развертывания учетной записи Cosmos DB.

  8. В меню портала Azure выберите все ресурсы и выберите новую учетную запись Cosmos DB (mongodbnnn).

  9. На странице mongodbnnn выберите Обозреватель данных.

  10. В области обозревателя данных выберите "Создать коллекцию".

  11. В области добавления коллекции укажите следующие параметры:

    Недвижимость Ценность
    Идентификатор базы данных Выберите "Создать" и введите DeviceData
    Обеспечение пропускной способности базы данных выбрано
    Пропускная способность 10000
    Идентификатор коллекции Температуры
    Объём хранилища Неограниченный
    Ключ сегмента deviceID
    Мой ключ шардирования больше 100 байт оставьте не выбрано
    Создайте подстановочный индекс по всем полям оставьте не выбрано
    Хранилище аналитических данных Выкл.
  12. Нажмите ОК.

Создание Службы миграции базы данных

  1. Вернитесь на портал Azure.

  2. Щелкните Все службы, затем Подписки, после чего выберите свою подписку.

  3. На странице подписки в разделе Параметры выберите Поставщики ресурсов.

  4. В поле Фильтровать по имени введите DataMigration, а затем выберите Microsoft.DataMigration.

  5. Если поставщик Microsoft.DataMigration не зарегистрирован, щелкните Зарегистрировать и подождите, пока значение в поле Состояние изменится на Зарегистрировано. Чтобы увидеть изменение состояния, может потребоваться нажать кнопку Обновить.

  6. В меню портала Azure нажмите кнопку +Создать ресурс.

  7. На странице New, в поле Поиск Рынка введите Azure Database Migration Service и нажмите клавишу ввод.

  8. На странице Azure Database Migration Service щелкните Создать.

  9. На странице Create Migration Service введите следующие параметры:

    Недвижимость Ценность
    Группа ресурсов mongodbrg
    Имя службы MongoDBMigration
    Местоположение Выберите то же расположение, которое вы использовали ранее
    Режим службы Лазурный
    Ценовая категория Стандарт: 1 vCore
  10. Выберите Next: Networking.

  11. На странице "Сеть" выберите databasevnet/default, а затем нажмите кнопку "Проверить и создать".

  12. Выберите "Создать" и дождитесь развертывания службы перед продолжением. Эта операция может занять около 10 минут.

Создание и запуск нового проекта миграции

  1. В меню портала Azure выберите группы ресурсов.

  2. В окне групп ресурсов выберите mongodbrg.

  3. В окне mongodbrg выберите MongoDBMigration.

  4. На странице MongoDBMigration выберите +Создать проект миграции.

  5. На странице нового проекта миграции введите следующие параметры:

    Недвижимость Ценность
    Имя проекта MigrateTemperatureData
    Тип исходного сервера MongoDB
    Тип целевого сервера Cosmos DB (API MongoDB)
    Выберите тип действия Офлайн миграция данных
  6. Выберите "Создать" и выполнить действие.

  7. При запуске мастера миграции на странице сведений об источнике введите следующие сведения:

    Недвижимость Ценность
    Режим Стандартный режим
    Имя исходного сервера Укажите значение IP-адреса mongodbserver-ip , записанного ранее.
    Порт сервера 8080
    Имя пользователя администратор
    Пароль Pa55w.rd
    Требовать SSL отмена выбора
  8. Нажмите кнопку "Далее". Выберите целевой объект.

  9. На странице выбора целевого объекта введите следующие сведения:

    Недвижимость Ценность
    Режим Выбор целевого объекта Cosmos DB
    Выбор имени базы данных Comos mongodb*nnn*
    строка подключения Примите строку подключения, созданную для учетной записи Cosmos DB
  10. Нажмите кнопку "Далее" — параметр базы данных.

  11. На странице параметров базы данных введите следующие сведения:

    Недвижимость Ценность
    База данных-источник DeviceData
    Целевая база данных DeviceData
    Пропускная способность (запросов в секунду, RU/s) 1000
    Очистка коллекций Снимите это поле
  12. Выберите Далее: настройка коллекции.

  13. На странице параметров коллекции выберите стрелку раскрывающегося списка рядом с базой данных DeviceData и введите следующие сведения:

    Недвижимость Ценность
    Имя Температуры
    Целевая коллекция Температуры
    Пропускная способность (запросов в секунду, RU/s) 1000
    Ключ шардирования deviceID
    Уникальный Не указывайте
  14. Нажмите кнопку "Далее" — сводка по миграции.

  15. На странице сводка по миграции в поле "Имя активности" введите mongodb-migration, а затем нажмите "Начать миграцию".

  16. На странице mongodb-миграции выберите Обновить каждые 30 секунд до завершения миграции. Обратите внимание на количество обработанных документов.

Убедитесь, что миграция выполнена успешно

  1. В меню портала Azure выберите "Все ресурсы".

  2. На странице "Все ресурсы" выберите mongodb nnn.

  3. На странице mongodb*nnn выберите Обозреватель данных.

  4. В области обозревателя данных разверните базу данных DeviceData , разверните коллекцию "Температуры " и выберите "Документы".

  5. В области "Документы" прокрутите список документов. Вы увидите идентификатор документа (_id) и ключ сегмента (/deviceID) для каждого документа.

  6. Выберите любой документ. Вы увидите сведения о документе. Типичный документ выглядит следующим образом:

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. На панели инструментов в области обозревателя документов выберите "Создать оболочку".

  8. В панели оболочки 1 в командной строке > введите следующую команду и нажмите Enter:

    db.Temperatures.count()
    

    Эта команда отображает количество документов в коллекции "Температура". Он должен соответствовать номеру, сообщаемому мастером миграции.

  9. Введите следующую команду и нажмите клавишу Enter:

    db.Temperatures.find({deviceID: "Device 99"})
    

    Эта команда извлекает и отображает документы для устройства 99.

Перенастройка и запуск существующих приложений для использования Cosmos DB

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

  1. В области mongodbnnn в разделе Параметры выберите Строка подключения.

  2. На странице строки подключения к базе данных MongoDB nnn запишите следующие параметры:

    • Хозяин
    • Имя пользователя
    • Основной пароль
  3. Вернитесь в окно Cloud Shell (повторно подключитесь, если сеанс истекло) и перейдите к папке migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. Откройте файл App.config в редакторе кода:

    code App.config
    
  5. В разделе "Параметры для MongoDB" файла закомментируйте существующие параметры.

  6. Раскомментируйте параметры в разделе "Параметры для Mongo API для Cosmos DB" и задайте значения для этих параметров следующим образом:

    Настройки Ценность
    Адрес Узел с страницы строки подключения mongodb nnn
    Порт ПОРТ со страницы строки подключенияmongodb nnn
    Имя пользователя ИМЯ ПОЛЬЗОВАТЕЛЯ со страницы mongodbnnn строки подключения
    Пароль ПЕРВИЧНЫЙ ПАРОЛЬ с страницы mongodbnnn строки подключения

    Завершенный файл должен выглядеть следующим образом:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <appSettings>
            <add key="Database" value="DeviceData" />
            <add key="Collection" value="Temperatures" />
    
            <!-- Settings for MongoDB 
            <add key="Address" value="nn.nn.nn.nn" />
            <add key="Port" value="27017" />
            <add key="Username" value="deviceadmin" />
            <add key="Password" value="Pa55w.rd" />
            End of settings for MongoDB -->
    
            <!-- Settings for CosmosDB Mongo API -->
            <add key="Address" value="mongodbnnn.documents.azure.com"/>
            <add key="Port" value="10255"/>
            <add key="Username" value="mongodbnnn"/>
            <add key="Password" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="/>
            <!-- End of settings for CosmosDB Mongo API -->
        </appSettings>
    </configuration>
    
  7. Сохраните файл и закройте редактор кода.

  8. Откройте файл Program.cs с помощью редактора кода:

    code Program.cs
    
  9. Прокрутите вниз до метода ConnectToDatabase .

  10. Закомментируйте строку, которая задает учетные данные для подключения к MongoDB, и раскомментируйте строки, которые указывают учетные данные для подключения к Cosmos DB. Код должен выглядеть следующим образом:

    // Connect to the MongoDB database
    MongoClient client = new MongoClient(new MongoClientSettings
    {
        Server = new MongoServerAddress(address, port),
        ServerSelectionTimeout = TimeSpan.FromSeconds(10),
    
        //
        // Credential settings for MongoDB
        //
    
        // Credential = MongoCredential.CreateCredential(database, azureLogin.UserName, azureLogin.SecurePassword),
    
        //
        // Credential settings for CosmosDB Mongo API
        //
    
        UseTls = true,
        Credential = new MongoCredential("SCRAM-SHA-1", new MongoInternalIdentity(database, azureLogin.UserName), new PasswordEvidence(azureLogin.SecurePassword))
    
        // End of Mongo API settings
    });
    

    Эти изменения необходимы, так как исходная база данных MongoDB не использовала SSL-подключение. Cosmos DB всегда использует SSL.

  11. Сохраните файл и закройте редактор кода.

  12. Перестройте и запустите приложение:

    dotnet build
    dotnet run
    
  13. В командной строке "Ввод номера устройства " введите номер устройства от 0 до 99. Приложение должно выполняться точно так же, как и раньше, за исключением того, что оно использует данные, содержащиеся в базе данных Cosmos DB.

Повышение производительности запросов в Cosmos DB

Cosmos DB позволяет добавлять дополнительные индексы для повышения производительности запросов. Добавление этого поля в качестве индекса при агрегировании по deviceID ускорит ваши запросы.

  1. Вернитесь на портал Azure.

  2. Слева выберите Обозреватель данных.

  3. В области обозревателя данных разверните базу данных DeviceData , разверните коллекцию "Температуры " и выберите "Параметры".

    Снимок экрана: добавление политики индексирования Cosmos DB.

  4. Выберите политику индексирования.

  5. В разделе _id добавить новый индекс, введите идентификатор устройства для определения и выберите одно поле для типа.

  6. Нажмите кнопку "Сохранить", чтобы добавить новый индекс.

  7. Вернитесь в Cloud Shell, чтобы повторить запрос, и обратите внимание на улучшенный ответ в приложении.

  8. Протестируйте приложение с другими номерами устройств. Введите Q , чтобы завершить работу.

База данных MongoDB успешно перенесена в Cosmos DB и перенастроила существующее приложение MongoDB для подключения к новой базе данных Cosmos DB.

Очистка созданных ресурсов

Это важно

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

  1. В Cloud Shell выполните указанную ниже команду, чтобы удалить группу ресурсов.

    az group delete --name mongodbrg