Ćwiczenie: migrowanie obciążeń bazy danych MongoDB do usługi Cosmos DB

Ukończone

Pracujesz dla firmy usług użyteczności publicznej, która posiada czujniki IoT zbierające dane dotyczące temperatury. Temperatury są rejestrowane w bazie danych MongoDB wraz ze znacznikiem czasu. Każde urządzenie ma unikatowy identyfikator. Uruchomisz aplikację MongoDB, która symuluje te urządzenia i zapiszesz dane w bazie danych. Użyjesz również drugiej aplikacji, która umożliwia użytkownikowi wykonywanie zapytań dotyczących informacji statystycznych dotyczących każdego urządzenia. Po przeprowadzeniu migracji bazy danych z bazy danych MongoDB do usługi Cosmos DB skonfigurujesz obie aplikacje pod kątem nawiązywania połączenia z usługą Cosmos DB i sprawdź, czy nadal działają prawidłowo.

W tym ćwiczeniu przejmiesz istniejącą bazę danych MongoDB i zmigrujesz ją do usługi Cosmos DB. Użyjesz usługi Azure Database Migration Service. Zobaczysz również, jak ponownie skonfigurować istniejące aplikacje korzystające z bazy danych MongoDB w celu nawiązania połączenia z bazą danych Cosmos DB.

Ważne

Usługa Azure Data Migration Service nie jest obsługiwana w bezpłatnym środowisku piaskownicy platformy Azure. Możesz wykonać te kroki we własnej subskrypcji osobistej lub po prostu postępować zgodnie z instrukcjami, aby dowiedzieć się, jak przeprowadzić migrację bazy danych.

Tworzenie bazy danych MongoDB na platformie Azure

Najpierw utworzysz bazę danych MongoDB do przechowywania danych przechwyconych z urządzeń temperatury.

Tworzenie grupy zasobów i sieci wirtualnej

  1. Za pomocą przeglądarki internetowej otwórz nową kartę i przejdź do witryny Azure Portal.

  2. W witrynie Azure Portal wybierz pozycję Grupy zasobów, a następnie wybierz pozycję +Dodaj.

  3. Na stronie Tworzenie grupy zasobów wprowadź następujące szczegóły:

    Majątek Wartość
    Subskrypcja <Twoja subskrypcja>
    Grupa zasobów mongodbrg
    Rejon Wybierz najbliższą lokalizację
  4. Wybierz Przejrzyj i utwórz, a następnie wybierz Utwórz. Poczekaj na utworzenie grupy zasobów.

  5. W menu witryny Azure Portal wybierz pozycję + Utwórz zasób.

  6. Na stronie Nowy w polu Wyszukaj w witrynie Marketplace wpisz Virtual Network i naciśnij Enter.

  7. Na stronie Sieć wirtualna wybierz pozycję Utwórz.

  8. Na stronie Tworzenie sieci wirtualnej wprowadź następujące szczegóły, a następnie wybierz pozycję Dalej: Adresy IP:

    Majątek Wartość
    Grupa zasobów mongodbrg
    Nazwa databasevnet
    Rejon Wybierz tę samą lokalizację, która została określona dla grupy zasobów
  9. Na stronie Adresy IP ustaw przestrzeń adresową IPv4 na 10.0.0.0/24.

  10. Wybierz domyślną podsieć, a następnie wybierz pozycję Usuń podsieć.

  11. Wybierz + Dodaj podsieć. W okienku Dodawanie podsieci ustaw domyślną nazwę podsieci, ustawzakres adresów podsieci na 10.0.0.0/28, a następnie wybierz pozycję Dodaj.

  12. Na stronie Adresy IP wybierz pozycję Dalej: Zabezpieczenia.

  13. Na stronie Zabezpieczenia sprawdź, czy usługa Azure DDoS Network Protection jest ustawiona na Wartość Wyłącz, a zapora ma wartość Wyłącz. Wybierz pozycję Przejrzyj i utwórz.

  14. Na stronie Tworzenie sieci wirtualnej wybierz pozycję Utwórz. Przed kontynuowaniem poczekaj na utworzenie sieci wirtualnej.

Tworzenie serwera bazy danych MongoDB

  1. W menu witryny Azure Portal wybierz pozycję + Utwórz zasób.

  2. W polu Wyszukaj w witrynie Marketplace wpisz Ubuntu, a następnie naciśnij Enter.

  3. Na stronie Marketplace wybierz pozycję Ubuntu Server 18.04 LTS.

  4. Na stronie Ubuntu Server 18.04 LTS wybierz pozycję Utwórz.

  5. Na stronie Tworzenie maszyny wirtualnej wprowadź następujące szczegóły:

    Majątek Wartość
    Grupa zasobów mongodbrg
    Nazwa maszyny wirtualnej mongodbserver
    Rejon Wybierz tę samą lokalizację, która została określona dla grupy zasobów
    Opcje dostępności Nie jest wymagana nadmiarowość infrastruktury
    obraz Ubuntu Server 18.04 LTS — Gen1
    Instancja Azure Spot Niezweryfikowane
    Rozmiar Standard A1_v2
    Typ uwierzytelniania Hasło
    Nazwa użytkownika użytkownik Azure
    Hasło Pa55w.rdPa55w.rd
    Potwierdź hasło Pa55w.rdPa55w.rd
    Publiczne porty ruchu przychodzącego Zezwalaj na wybrane porty
    Wybierz porty wejściowe SSH (22)
  6. Wybierz pozycję Dalej: Dyski >.

  7. Na stronie Dyski pozostaw ustawienia domyślne, a następnie wybierz pozycję Dalej: Sieć >.

  8. Na stronie Sieć wprowadź następujące szczegóły:

    Majątek Wartość
    Sieć wirtualna databasevnet
    Subnet wartość domyślna (10.0.0.0/28)
    Publiczny adres IP (nowy) mongodbserver-ip
    Grupa zabezpieczeń sieciowych NIC Zaawansowany
    Konfigurowanie sieciowej grupy zabezpieczeń (nowy) mongodbserver-nsg
    Przyspieszona sieć Niezweryfikowane
    Równoważenie obciążenia Niezweryfikowane
  9. Wybierz pozycję Przeglądaj i twórz >.

  10. Na stronie walidacji wybierz pozycję Utwórz.

  11. Przed kontynuowaniem poczekaj na wdrożenie maszyny wirtualnej

  12. W menu witryny Azure Portal wybierz pozycję Wszystkie zasoby.

  13. Na stronie Wszystkie zasoby wybierz pozycję mongodbserver-nsg.

  14. Na stronie mongodbserver-nsg w obszarze Ustawienia wybierz pozycję Reguły zabezpieczeń dla ruchu przychodzącego.

  15. Na stronie mongodbserver-nsg — Reguły zabezpieczeń dla ruchu przychodzącego wybierz pozycję + Dodaj.

  16. W okienku Dodawanie reguły zabezpieczeń dla ruchu przychodzącego wprowadź następujące szczegóły:

    Majątek Wartość
    Źródło Jakikolwiek
    Zakresy portów źródłowych *
    Destynacja Jakikolwiek
    Zakresy portów docelowych 8080
    Protokół Jakikolwiek
    Akcja Pozwól
    Priorytet 1030
    Nazwa Port Mongodb
    Opis Port używany przez klientów do nawiązywania połączenia z bazą danych MongoDB
  17. Wybierz pozycję Dodaj.

Uwaga / Notatka

Skonfigurujesz bazę danych MongoDB do korzystania z portu 8080 w tym ćwiczeniu. Należy to zrobić tylko z powodu ograniczeń zabezpieczeń w tym środowisku. Zwykle należy użyć domyślnego portu bazy danych MongoDB 27017.

Instalowanie bazy danych MongoDB

  1. W menu witryny Azure Portal wybierz pozycję Wszystkie zasoby.

  2. Na stronie Wszystkie zasoby wybierz pozycję mongodbserver-ip.

  3. Na stronie mongodbserver-ip zanotuj adres IP.

  4. Na pasku narzędzi w górnej części witryny Azure Portal wybierz pozycję Cloud Shell.

  5. Jeśli zostanie wyświetlone pole komunikatu Nie masz zainstalowanego magazynu , wybierz pozycję Utwórz magazyn.

  6. Po uruchomieniu usługi Cloud Shell na liście rozwijanej powyżej okna usługi Cloud Shell wybierz pozycję Bash.

  7. W usłudze Cloud Shell wprowadź następujące polecenie, aby nawiązać połączenie z maszyną wirtualną mongodbserver. Zastąp <adres IP> wartością adresu IP mongodbserver-ip:

    ssh azureuser@<ip address>
    
  8. W wierszu polecenia wpisz tak , aby kontynuować nawiązywanie połączenia.

  9. Wprowadź hasło Pa55w.rdPa55w.rd.

  10. Aby ponownie załadować bazę danych pakietu, wprowadź następujące polecenie:

    sudo apt-get update
    
  11. Aby zainstalować bazę danych MongoDB, wprowadź następujące polecenie:

    sudo apt-get install -y mongodb
    

    Instalacja powinna kontynuować komunikaty dotyczące instalowania, przygotowywania i rozpakowywania pakietów. Ukończenie instalacji może potrwać kilka minut.

Konfigurowanie bazy danych MongoDB

Domyślnie wystąpienie Mongo DB jest skonfigurowane tak, aby uruchamiało się bez uwierzytelniania. W tym zadaniu skonfigurujesz bazę danych MongoDB tak, aby była powiązana z lokalnym interfejsem sieciowym, aby mogła akceptować połączenia z innych komputerów. Włączysz również uwierzytelnianie i utworzysz niezbędne konto użytkownika do przeprowadzenia migracji. Na koniec dodasz konto, za pomocą którego aplikacja testowa może wykonywać zapytania względem bazy danych.

  1. Aby otworzyć plik konfiguracji bazy danych MongoDB, uruchom następujące polecenie:

    sudo nano /etc/mongodb.conf
    
  2. W pliku znajdź ustawienie bind_ip i ustaw je na 0.0.0.0.0.

  3. Znajdź ustawienie portu i ustaw go na wartość 8080.

  4. Aby zapisać plik konfiguracji, naciśnij Esc , a następnie naciśnij CTRL + X. Naciśnij y , a następnie Enter , aby zapisać zmodyfikowany bufor.

  5. Aby ponownie uruchomić usługę MongoDB i zastosować zmiany, wprowadź następujące polecenie:

    sudo service mongodb restart
    
  6. Aby nawiązać połączenie z usługą MongoDB, wprowadź następujące polecenie:

    mongo --host 127.0.0.1:8080
    
  7. > W wierszu polecenia, aby przełączyć się do bazy danych administratora, uruchom następujące polecenie:

    use admin;
    
  8. Aby utworzyć nowego użytkownika o nazwie administrator, uruchom następujące polecenie. Możesz wprowadzić polecenie w jednym wierszu lub w wielu wierszach, aby uzyskać lepszą czytelność. Polecenie jest wykonywane, gdy mongo program osiągnie średnik:

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. Aby zamknąć mongo program, wprowadź to polecenie;

    exit;
    
  10. Aby nawiązać połączenie z bazą danych MongoDB przy użyciu konta nowego administratora, uruchom następujące polecenie:

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. Aby przełączyć się do bazy danych DeviceData , wykonaj następujące polecenie:

    use DeviceData;    
    
  12. Aby utworzyć użytkownika o nazwie deviceadmin, którego aplikacja będzie używać do nawiązywania połączenia z bazą danych, uruchom następujące polecenie:

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. Aby zamknąć mongo program, wprowadź to polecenie;

    exit;
    
  14. Uruchom następujące polecenie, aby ponownie uruchomić usługę mongodb. Sprawdź, czy usługa jest uruchamiana ponownie bez żadnych komunikatów o błędach:

    sudo service mongodb restart
    
  15. Uruchom następujące polecenie, aby sprawdzić, czy możesz teraz zalogować się do bazy danych mongodb jako użytkownik deviceadmin:

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. Przy wierszu polecenia > uruchom następujące polecenie, aby zakończyć działanie powłoki mongo:

    exit;
    
  17. W wierszu polecenia powłoki bash uruchom następujące polecenie, aby odłączyć się od serwera MongoDB i wrócić do usługi Cloud Shell:

    exit
    

Wypełnianie i wykonywanie zapytań w bazie danych MongoDB

Utworzono serwer i bazę danych MongoDB. Następnym krokiem jest zademonstrowanie przykładowych aplikacji, które mogą wypełniać dane w tej bazie danych i wykonywać względem ich zapytania.

Kompilowanie i uruchamianie aplikacji w celu wypełnienia bazy danych MongoDB

  1. W usłudze Azure Cloud Shell uruchom następujące polecenie, aby pobrać przykładowy kod:

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. Przejdź do folderu migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. Użyj edytora kodu , aby zbadać plik TemperatureDevice.cs :

    code TemperatureDevice.cs
    

    Kod w tym pliku zawiera klasę o nazwie TemperatureDevice , która symuluje urządzenie temperatury przechwytujące dane i zapisując je w bazie danych MongoDB. Używa biblioteki MongoDB dla programu .NET Framework. Konstruktor TemperatureDevice łączy się z bazą danych przy użyciu ustawień przechowywanych w pliku konfiguracji aplikacji. Metoda RecordTemperatures generuje odczyt i zapisuje go w bazie danych.

  4. Zamknij edytor kodu, a następnie otwórz plik ThermometerReading.cs :

    code ThermometerReading.cs
    

    Ten plik przedstawia strukturę dokumentów przechowywanych w bazie danych przez aplikację. Każdy dokument zawiera następujące pola:

    • Identyfikator obiektu. To pole "_id" wygenerowane przez bazę danych MongoDB w celu unikatowego zidentyfikowania każdego dokumentu.
    • Identyfikator urządzenia. Każde urządzenie ma liczbę z prefiksem "Urządzenie".
    • Temperatura zarejestrowana przez urządzenie.
    • Data i godzina zarejestrowania temperatury.
  5. Zamknij edytor kodu, a następnie otwórz plik App.config :

    code App.config
    

    Ten plik zawiera ustawienia nawiązywania połączenia z bazą danych MongoDB.

  6. Ustaw wartość klucza adresu na adres IP zarejestrowanego wcześniej serwera MongoDB.

  7. Zmień port używany przez aplikację na 8080.

  8. Zapisz plik i zamknij edytor przy użyciu CTRL + , a następnie naciśnij CTRL + q.

  9. Uruchom następujące polecenie, aby ponownie skompilować aplikację:

    dotnet build
    

    Może to potrwać około 5 minut.

  10. Uruchom aplikację:

    dotnet run
    

    Aplikacja symuluje jednocześnie 100 urządzeń. Zezwól aplikacji na uruchomienie przez kilka minut, a następnie naciśnij Enter, aby ją zatrzymać.

Kompilowanie i uruchamianie innej aplikacji w celu wykonywania zapytań dotyczących bazy danych MongoDB

  1. Przejdź do folderu DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery :

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

    Ten folder zawiera inną aplikację, której można użyć do analizowania danych przechwyconych przez każde urządzenie.

  2. Użyj edytora kodu , aby zbadać plik Program.cs :

    code Program.cs
    

    Aplikacja łączy się z bazą danych (przy użyciu metody ConnectToDatabase w dolnej części pliku), a następnie monituje użytkownika o podanie numeru urządzenia. Aplikacja używa biblioteki MongoDB dla programu .NET Framework do utworzenia i uruchomienia potoku agregacji, który oblicza następujące statystyki dla określonego urządzenia:

    • Liczba zarejestrowanych odczytów.
    • Zarejestrowano średnią temperaturę.
    • Najniższy odczyt.
    • Najwyższy odczyt.
    • Najnowsze czytanie.
  3. Zamknij edytor kodu, a następnie otwórz plik App.config :

    code App.config
    
  4. Ustaw wartość klucza adresu na adres IP zarejestrowanego wcześniej serwera MongoDB.

  5. Zmień port używany przez aplikację na 8080.

  6. Zapisz plik i zamknij edytor przy użyciu CTRL + , a następnie naciśnij CTRL + q.

  7. Skompiluj i uruchom aplikację:

    dotnet build
    dotnet run
    
  8. W wierszu polecenia Wprowadź numer urządzenia wprowadź wartość z zakresu od 0 do 99. Aplikacja będzie wykonywać zapytania dotyczące bazy danych, obliczać statystyki i wyświetlać wyniki. Naciśnij Q , aby zamknąć aplikację.

Migrowanie bazy danych MongoDB do usługi Cosmos DB

Następnym krokiem jest przeniesienie bazy danych MongoDB do usługi Cosmos DB.

Tworzenie konta i bazy danych usługi Cosmos

  1. Wróć do witryny Azure Portal.

  2. W menu wybierz pozycję + Utwórz zasób.

  3. Na stronie Nowy w polu Wyszukaj na Marketplace wpisz *Azure Cosmos DB, a następnie naciśnij Enter.

  4. Na stronie Azure Cosmos DB wybierz pozycję Utwórz.

  5. Na stronie Tworzenie konta usługi Azure Cosmos DB wprowadź następujące ustawienia:

    Majątek Wartość
    Grupa zasobów mongodbrg
    Nazwa konta mongodb*nnn*, gdzie nnn jest liczbą losową wybraną przez Ciebie
    API Interfejs API usługi Azure Cosmos DB dla bazy danych MongoDB
    Notebooks Wyłącz
    Lokalizacja Określ tę samą lokalizację, która była używana dla serwera Bazy danych MongoDB i sieci wirtualnej
    Tryb wydajności Aprowizowana przepływność
    Zastosuj rabat dla poziomu Bezpłatnego Zastosować
    Typ konta Nieprodukcyjny
    wersja 3.6
    Nadmiarowość geograficzna Wyłącz
    Zapisy w wielu regionach Wyłącz
    Strefy dostępności Wyłącz
  6. Wybierz pozycję Przejrzyj i utwórz.

  7. Na stronie walidacji wybierz pozycję Utwórz i poczekaj na wdrożenie konta usługi Cosmos DB.

  8. W menu witryny Azure Portal wybierz pozycję Wszystkie zasoby, a następnie wybierz nowe konto usługi Cosmos DB (mongodb nnn).

  9. Na stronie mongodbnnn wybierz pozycję Eksplorator danych.

  10. W okienku Eksplorator danych wybierz pozycję Nowa kolekcja.

  11. W okienku Dodawanie kolekcji określ następujące ustawienia:

    Majątek Wartość
    Identyfikator bazy danych Wybierz pozycję Utwórz nową, a następnie wpisz DeviceData
    Przydzielanie przepustowości bazy danych zostało wybrane
    Przepustowość 10000
    Identyfikator kolekcji Temperatury
    Pojemność magazynu Nieograniczony
    Klucz podziału danych deviceID
    Mój klucz fragmentu jest większy niż 100 bajtów pozostaw opcję niezaznaczoną
    Utwórz indeks wieloznaczności na wszystkich polach pozostaw opcję niezaznaczoną
    Magazyn analityczny Wyłącz
  12. Wybierz przycisk OK.

Utwórz usługę migracji bazy danych

  1. Wróć do witryny Azure Portal.

  2. Kliknij pozycję Wszystkie usługi, kliknij pozycję Subskrypcje, a następnie kliknij swoją subskrypcję.

  3. Na stronie subskrypcji w obszarze Ustawienia kliknij pozycję Dostawcy zasobów.

  4. W polu Filtruj według nazwy wpisz DataMigration, a następnie kliknij pozycję Microsoft.DataMigration.

  5. Jeśli wartość Microsoft.DataMigration nie jest zarejestrowana, kliknij przycisk Zarejestruj i poczekaj na zmianę stanu na Zarejestrowane. Może być konieczne kliknięcie przycisku Odśwież , aby wyświetlić zmianę stanu.

  6. W menu witryny Azure Portal wybierz pozycję + Utwórz zasób.

  7. Na stronie Nowy w polu Wyszukaj w witrynie Marketplace wpisz Azure Database Migration Service, a następnie naciśnij Enter.

  8. Na stronie Azure Database Migration Service wybierz pozycję Utwórz.

  9. Na stronie Tworzenie usługi Migration Service wprowadź następujące ustawienia:

    Majątek Wartość
    Grupa zasobów mongodbrg
    Nazwa usługi MongoDBMigration
    Lokalizacja Wybierz tę samą lokalizację, której użyto poprzednio
    Tryb serwisowy Błękit
    Poziom cenowy Standardowa: 1 rdzenie wirtualne
  10. Wybierz Dalej: Sieć.

  11. Na stronie Networking wybierz databasevnet/default, a następnie kliknij Przejrzyj i utwórz.

  12. Wybierz pozycję Utwórz i poczekaj na wdrożenie usługi przed kontynuowaniem. Ta operacja może potrwać około 10 minut.

Tworzenie i uruchamianie nowego projektu migracji

  1. W menu witryny Azure Portal wybierz pozycję Grupy zasobów.

  2. W oknie Grupy zasobów wybierz pozycję mongodbrg.

  3. W oknie mongodbrg wybierz pozycję MongoDBMigration.

  4. Na stronie MongoDBMigration wybierz pozycję + Nowy projekt migracji.

  5. Na stronie Nowy projekt migracji wprowadź następujące ustawienia:

    Majątek Wartość
    Nazwa projektu MigrateTemperatureData
    Typ serwera źródłowego MongoDB
    Typ serwera docelowego Cosmos DB (interfejs API bazy danych MongoDB)
    Wybierz typ działania Migracja danych w trybie offline
  6. Wybierz pozycję Utwórz i uruchom działanie.

  7. Po uruchomieniu Kreatora migracji na stronie Szczegóły źródła wprowadź następujące szczegóły:

    Majątek Wartość
    Tryb Tryb standardowy
    Nazwa serwera źródłowego Określ wartość zarejestrowanego wcześniej adresu IP mongodbserver-ip
    Port serwera 8080
    Nazwa użytkownika administrator
    Hasło Pa55w.rd
    Wymagaj protokołu SSL co do zaznaczania
  8. Wybierz pozycję Dalej: wybierz element docelowy.

  9. Na stronie Wybierz element docelowy wprowadź następujące szczegóły:

    Majątek Wartość
    Tryb Wybieranie miejsca docelowego usługi Cosmos DB
    Wybierz nazwę bazy danych Comos mongodb*nnn*
    Łańcuch połączenia Zaakceptuj parametry połączenia wygenerowane dla konta usługi Cosmos DB
  10. Wybierz pozycję Dalej: ustawienie bazy danych.

  11. Na stronie Ustawienia bazy danych wprowadź następujące szczegóły:

    Majątek Wartość
    Źródłowa baza danych DeviceData
    Docelowa baza danych DeviceData
    Przepływność (RU/s) 1000
    Czyszczenie kolekcji Wyczyść to pole
  12. Wybierz pozycję Dalej: ustawienie Kolekcji.

  13. Na stronie Ustawienia kolekcji kliknij strzałkę listy rozwijanej obok bazy danych DeviceData, wprowadź następujące informacje:

    Majątek Wartość
    Nazwa Temperatury
    Kolekcja docelowa Temperatury
    Przepływność (RU/s) 1000
    Klucz shardingu deviceID
    Niepowtarzalny Pozostaw puste.
  14. Wybierz pozycję Dalej: Podsumowanie migracji.

  15. Na stronie Podsumowanie migracji w polu Nazwa działania wprowadź mongodb-migration, a następnie wybierz pozycję Rozpocznij migrację.

  16. Na stronie migracji bazy danych mongodb wybierz pozycję Odśwież co 30 sekund, dopóki migracja nie zostanie ukończona. Zwróć uwagę na liczbę przetworzonych dokumentów.

Sprawdź, czy migracja zakończyła się pomyślnie

  1. W menu witryny Azure Portal wybierz pozycję Wszystkie zasoby.

  2. Na stronie Wszystkie zasoby wybierz pozycję mongodb nnn.

  3. Na stronie mongodb*nnn wybierz pozycję Eksplorator danych.

  4. W okienku Eksplorator danych rozwiń bazę danych DeviceData, rozwiń kolekcję Temperatures, a następnie wybierz Dokumenty.

  5. W okienku Dokumenty przewiń listę dokumentów. Powinien zostać wyświetlony identyfikator dokumentu (_id) i klucz fragmentu (/deviceID) dla każdego dokumentu.

  6. Wybierz dowolny dokument. Powinny zostać wyświetlone szczegóły dokumentu. Typowy dokument wygląda następująco:

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. Na pasku narzędzi w okienku Eksplorator dokumentów wybierz pozycję Nowa powłoka.

  8. W okienku Konsoli 1, w wierszu polecenia, wprowadź następujące polecenie, a następnie naciśnij Enter.

    db.Temperatures.count()
    

    To polecenie wyświetla liczbę dokumentów w kolekcji Temperatures. Powinno odpowiadać liczbie zgłoszonej przez Kreatora migracji.

  9. Wprowadź następujące polecenie, a następnie naciśnij Enter:

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

    To polecenie pobiera i wyświetla dokumenty dla urządzenia 99.

Ponowne konfigurowanie i uruchamianie istniejących aplikacji w celu korzystania z usługi Cosmos DB

Ostatnim krokiem jest ponowne skonfigurowanie istniejących aplikacji MongoDB w celu nawiązania połączenia z usługą Cosmos DB i sprawdzenie, czy nadal działają. Wymaga to zmodyfikowania sposobu, w jaki aplikacje łączą się z bazą danych, ale logika aplikacji powinna pozostać niezmieniona.

  1. W obszarze mongodbnnn pod Ustawienia, wybierz Ciąg połączenia.

  2. Na stronie parametrów połączeniabazy danych mongodb nnn zanotuj następujące ustawienia:

    • Gospodarz
    • Nazwa użytkownika
    • Hasło podstawowe
  3. Wróć do okna usługi Cloud Shell (ponownie połącz się, jeśli upłynął limit czasu sesji) i przejdź do folderu migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. Otwórz plik App.config w edytorze kodu:

    code App.config
    
  5. W sekcji Ustawienia dla bazy danych MongoDB pliku oznacz jako komentarz istniejące ustawienia.

  6. Usuń komentarz z ustawień w sekcji Ustawienia interfejsu API Mongo usługi Cosmos DB i ustaw wartości tych ustawień w następujący sposób:

    Ustawienia Wartość
    Adres HOST ze strony parametrów połączeniabazy danych mongodb nnn
    Port Port ze strony parametrów połączeniabazy danych mongodb nnn
    Nazwa użytkownika Nazwa użytkownika ze strony Connection Stringmongodb nnn
    Hasło HASŁO PODSTAWOWE ze strony mongodbnnn Connection String

    Ukończony plik powinien wyglądać podobnie do następującego:

    <?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. Zapisz plik, a następnie zamknij edytor kodu.

  8. Otwórz plik Program.cs przy użyciu edytora kodu:

    code Program.cs
    
  9. Przewiń w dół do metody ConnectToDatabase .

  10. Oznacz jako komentarz wiersz, który ustawia poświadczenia do połączenia z MongoDB, i odkomentuj instrukcje określające poświadczenia do połączenia z Cosmos DB. Kod powinien wyglądać następująco:

    // 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
    });
    

    Te zmiany są niezbędne, ponieważ oryginalna baza danych MongoDB nie korzystała z połączenia SSL. Usługa Cosmos DB zawsze używa protokołu SSL.

  11. Zapisz plik, a następnie zamknij edytor kodu.

  12. Skompiluj i uruchom aplikację:

    dotnet build
    dotnet run
    
  13. W wierszu polecenia Wprowadź numer urządzenia wprowadź numer urządzenia z zakresu od 0 do 99. Aplikacja powinna działać dokładnie tak jak poprzednio, z wyjątkiem tego czasu, że używa danych przechowywanych w bazie danych Cosmos DB.

Zwiększanie wydajności zapytań w usłudze Cosmos DB

Usługa Cosmos DB umożliwia dodawanie kolejnych indeksów w celu zwiększenia wydajności zapytań. W miarę agregacji za pomocą identyfikatora deviceID dodanie tego pola jako indeksu przyspieszy zapytania.

  1. Wróć do witryny Azure Portal.

  2. Po lewej stronie wybierz pozycję Eksplorator danych.

  3. W okienku Eksplorator danych rozwiń bazę danych DeviceData , rozwiń kolekcję Temperatures , a następnie wybierz pozycję Ustawienia.

    Zrzut ekranu przedstawiający dodawanie zasad indeksowania usługi Cosmos DB.

  4. Wybierz Zasady indeksowania.

  5. W _id dodaj nowy indeks, wprowadź deviceID jako Definicję i wybierz Jedno pole jako Typ.

  6. Wybierz pozycję Zapisz , aby dodać nowy indeks.

  7. Wróć do usługi Cloud Shell, aby spróbować ponownie wykonać zapytanie i zanotuj ulepszoną odpowiedź w aplikacji.

  8. Przetestuj aplikację przy użyciu innych numerów urządzeń. Wprowadź Q , aby zakończyć.

Pomyślnie przeprowadzono migrację bazy danych MongoDB do usługi Cosmos DB i ponownie skonfigurowano istniejącą aplikację Bazy danych MongoDB w celu nawiązania połączenia z nową bazą danych Cosmos DB.

Czyszczenie utworzonych zasobów

Ważne

Jeśli wykonano te kroki we własnej subskrypcji osobistej, możesz usunąć zasoby pojedynczo lub usunąć grupę zasobów, aby usunąć cały zestaw zasobów. Zasoby pozostawione w stanie aktywnym mogą generować koszty.

  1. Za pomocą usługi Cloud Shell uruchom następujące polecenie, aby usunąć grupę zasobów:

    az group delete --name mongodbrg