Oefening: MongoDB-workloads migreren naar Cosmos DB

Voltooid

U werkt voor een nutsbedrijf met IoT-sensoren die temperatuurgegevens verzamelen. De temperaturen worden geregistreerd in een MongoDB-database, samen met een tijdstempel. Elk apparaat heeft een unieke id. U voert een MongoDB-toepassing uit waarmee deze apparaten worden gesimuleerd en de gegevens in de database worden opgeslagen. U gebruikt ook een tweede toepassing waarmee een gebruiker statistische informatie over elk apparaat kan opvragen. Nadat u de database van MongoDB naar Cosmos DB hebt gemigreerd, configureert u beide toepassingen om verbinding te maken met Cosmos DB en controleert u of ze nog steeds correct werken.

In deze oefening neemt u een bestaande MongoDB-database en migreert u deze naar Cosmos DB. U gebruikt de Azure Database Migration Service. U ziet ook hoe u bestaande toepassingen die gebruikmaken van de MongoDB-database opnieuw configureert om in plaats daarvan verbinding te maken met de Cosmos DB-database.

Belangrijk

Azure Data Migration Service wordt niet ondersteund in de gratis Azure-sandboxomgeving. U kunt deze stappen uitvoeren in uw eigen persoonlijke abonnement of gewoon volgen om te begrijpen hoe u uw database migreert.

Een MongoDB-database maken in Azure

Eerst maakt u de MongoDB-database voor het opslaan van de gegevens die zijn vastgelegd op basis van de temperatuurapparaten.

Een resourcegroep en virtueel netwerk maken

  1. Open in een webbrowser een nieuw tabblad en navigeer naar Azure Portal.

  2. Selecteer resourcegroepen in Azure Portal en selecteer vervolgens +Toevoegen.

  3. Voer op de pagina Een resourcegroep maken de volgende gegevens in:

    Eigenschap Waarde
    Abonnement <uw abonnement>
    Resourcegroep mongodbrg
    Region Selecteer de dichtstbijzijnde locatie
  4. Selecteer Controleren en maken en selecteer vervolgens Maken. Wacht totdat de resourcegroep is gemaakt.

  5. Selecteer + Een resource maken in het menu van Azure Portal.

  6. Typ op de pagina Nieuw in het vak Marketplace zoeken het virtuele netwerk en druk op Enter.

  7. Op de pagina Virtueel netwerk selecteert u Maken.

  8. Voer op de pagina Virtueel netwerk maken de volgende gegevens in en selecteer vervolgens Volgende: IP-adressen:

    Eigenschap Waarde
    Resourcegroep mongodbrg
    Naam databasevnet
    Region Selecteer dezelfde locatie die u hebt opgegeven voor de resourcegroep
  9. Stel op de pagina IP-adressen de IPv4-adresruimte in op 10.0.0.0/24.

  10. Selecteer het standaardsubnet en selecteer vervolgens Subnet verwijderen.

  11. Selecteer + Subnet toevoegen. Stel in het deelvenster Subnet toevoegen de naam van het subnet in op de standaardinstelling, stel het adresbereikvan het subnet in op 10.0.0.0/28 en selecteer Vervolgens Toevoegen.

  12. Selecteer Volgende op de pagina IP-adressen de optie Volgende: Beveiliging.

  13. Controleer op de pagina Beveiliging of Azure DDoS-netwerkbeveiliging is ingesteld op Uitschakelen en de firewall is ingesteld op Uitschakelen. Selecteer Controleren + maken.

  14. Selecteer Maken op de pagina Virtueel netwerk maken. Wacht totdat het virtuele netwerk is gemaakt voordat u doorgaat.

Een MongoDB-databaseserver maken

  1. Selecteer + Een resource maken in het menu van Azure Portal.

  2. Typ Ubuntu in het vak Marketplace doorzoeken en druk op Enter.

  3. Selecteer Op de marketplace-pagina Ubuntu Server 18.04 LTS.

  4. Selecteer Maken op de pagina Ubuntu Server 18.04 LTS.

  5. Voer op de pagina Een virtuele machine maken de volgende gegevens in:

    Eigenschap Waarde
    Resourcegroep mongodbrg
    Virtual machine name mongodbserver
    Region Selecteer dezelfde locatie die u hebt opgegeven voor de resourcegroep
    Beschikbaarheidsopties Er is geen redundantie van de infrastructuur vereist
    Afbeelding Ubuntu Server 18.04 LTS - Gen1
    Azure Spot-exemplaar Niet ingeschakeld
    Tekengrootte Standard-A1_v2
    Authentication type Password
    Gebruikersnaam azureuser
    Password Pa55w.rdPa55w.rd
    Wachtwoord bevestigen Pa55w.rdPa55w.rd
    Openbare poorten voor inkomend verkeer Geselecteerde poorten toestaan
    Binnenkomende poorten selecteren SSH (22)
  6. Selecteer Volgende: Schijven >.

  7. Laat op de pagina Schijven de standaardinstellingen staan en selecteer vervolgens Volgende: Netwerken>.

  8. Voer op de pagina Netwerken de volgende gegevens in:

    Eigenschap Waarde
    Virtueel netwerk databasevnet
    Subnet standaard (10.0.0.0/28)
    Openbare IP (nieuw) mongodbserver-ip
    NIC-netwerkbeveiligingsgroep Geavanceerd
    Netwerkbeveiligingsgroep configureren (nieuw) mongodbserver-nsg
    Versneld netwerken Niet ingeschakeld
    Load balancing Niet ingeschakeld
  9. Selecteer Controleren + maken>.

  10. Selecteer Maken op de validatiepagina.

  11. Wacht tot de virtuele machine is geïmplementeerd voordat u doorgaat

  12. Selecteer Alle resources in het menu van Azure Portal.

  13. Selecteer op de pagina Alle resources mongodbserver-nsg.

  14. Selecteer op de pagina mongodbserver-nsg onder Instellingen de beveiligingsregels voor inkomend verkeer.

  15. Selecteer + Toevoegen op de pagina mongodbserver-nsg - Inkomende beveiligingsregels.

  16. Voer in het deelvenster Binnenkomende beveiligingsregels toevoegen de volgende details in:

    Eigenschap Waarde
    Source Alle
    Poortbereiken van bron *
    Doel Alle
    Poortbereiken van doel 8080
    Protocol Alle
    Actie Toestaan
    Prioriteit 1030
    Naam Mongodb-poort
    Omschrijving Poort die clients gebruiken om verbinding te maken met MongoDB
  17. Selecteer Toevoegen.

Notitie

In deze oefening configureert u MongoDB voor het gebruik van poort 8080. U hoeft dit alleen te doen vanwege beveiligingsbeperkingen in deze omgeving. Normaal gesproken gebruikt u de standaard MongoDB-poort van 27017.

MongoDB installeren

  1. Selecteer Alle resources in het menu van Azure Portal.

  2. Selecteer mongodbserver-ip op de pagina Alle resources.

  3. Noteer het IP-adres op de pagina mongodbserver-ip.

  4. Selecteer Cloud Shell in de werkbalk boven aan Azure Portal.

  5. Als het berichtvak U geen gekoppelde opslag hebt, selecteert u Opslag maken.

  6. Wanneer de Cloud Shell wordt gestart, selecteert u Bash in de vervolgkeuzelijst boven het Cloud Shell-venster.

  7. Voer in Cloud Shell de volgende opdracht in om verbinding te maken met de virtuele mongodbserver-machine. Vervang <het IP-adres> door de waarde van het IP-adres mongodbserver-ip :

    ssh azureuser@<ip address>
    
  8. Typ ja bij de prompt om verbinding te blijven maken.

  9. Voer het wachtwoord Pa55w.rdPa55w.rd in.

  10. Voer deze opdracht in om de pakketdatabase opnieuw te laden:

    sudo apt-get update
    
  11. Voer deze opdracht in om MongoDB te installeren:

    sudo apt-get install -y mongodb
    

    De installatie moet doorgaan met berichten over het installeren, voorbereiden en uitpakken van pakketten. Het kan enkele minuten duren voordat de installatie is voltooid.

De MongoDB-database configureren

Standaard is het Mongo DB-exemplaar geconfigureerd voor uitvoering zonder verificatie. In deze taak configureert u MongoDB om verbinding te maken met de lokale netwerkinterface, zodat deze verbindingen van andere computers kan accepteren. U schakelt ook verificatie in en maakt het benodigde gebruikersaccount om de migratie uit te voeren. Ten slotte voegt u een account toe dat een testtoepassing kan gebruiken om een query uit te voeren op de database.

  1. Voer deze opdracht uit om het MongoDB-configuratiebestand te openen:

    sudo nano /etc/mongodb.conf
    
  2. Zoek in het bestand de instelling bind_ip en stel deze in op 0.0.0.0.

  3. Zoek de poortinstelling en stel deze in op 8080.

  4. Als u het configuratiebestand wilt opslaan, drukt u op Esc en drukt u vervolgens op Ctrl+X. Druk op y en vervolgens op Enter om de gewijzigde buffer op te slaan.

  5. Als u de MongoDB-service opnieuw wilt starten en uw wijzigingen wilt toepassen, voert u deze opdracht in:

    sudo service mongodb restart
    
  6. Voer deze opdracht in om verbinding te maken met de MongoDB-service:

    mongo --host 127.0.0.1:8080
    
  7. Voer bij de > prompt de volgende opdracht uit om over te schakelen naar de beheerdatabase :

    use admin;
    
  8. Voer de volgende opdracht uit om een nieuwe gebruiker met de naam Administrator te maken. U kunt de opdracht op één regel of op meerdere regels invoeren voor een betere leesbaarheid. De opdracht wordt uitgevoerd wanneer het mongo programma de puntkomma bereikt:

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. Voer deze opdracht in om het mongo programma af te sluiten.

    exit;
    
  10. Voer deze opdracht uit om verbinding te maken met MongoDB met het account van de nieuwe beheerder:

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. Als u wilt overschakelen naar de DeviceData-database , voert u deze opdracht uit:

    use DeviceData;    
    
  12. Als u een gebruiker met de naam deviceadmin wilt maken, die door de app wordt gebruikt om verbinding te maken met de database, voert u deze opdracht uit:

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. Voer deze opdracht in om het mongo programma af te sluiten.

    exit;
    
  14. Voer de volgende opdracht uit om de Mongodb-service opnieuw op te starten. Controleer of de service opnieuw wordt opgestart zonder foutberichten:

    sudo service mongodb restart
    
  15. Voer de volgende opdracht uit om te controleren of u zich nu kunt aanmelden bij mongodb als de gebruiker van deviceadmin:

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. Voer bij de > prompt de volgende opdracht uit om de mongo-shell af te sluiten:

    exit;
    
  17. Voer bij de bash-prompt de volgende opdracht uit om de verbinding met de MongoDB-server te verbreken en terug te keren naar de Cloud Shell:

    exit
    

De MongoDB-database vullen en er query's op uitvoeren

U hebt nu een MongoDB-server en -database gemaakt. De volgende stap is het demonstreren van de voorbeeldtoepassingen die de gegevens in deze database kunnen vullen en er query's op kunnen uitvoeren.

Een app bouwen en uitvoeren om de MongoDB-database te vullen

  1. Voer in Azure Cloud Shell de volgende opdracht uit om de voorbeeldcode te downloaden:

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. Ga naar de map migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. Gebruik de Code-editor om het bestand TemperatureDevice.cs te onderzoeken:

    code TemperatureDevice.cs
    

    De code in dit bestand bevat een klasse met de naam TemperatureDevice die een temperatuurapparaat simuleert dat gegevens vastlegt en opslaat in een MongoDB-database. Deze maakt gebruik van de MongoDB-bibliotheek voor .NET Framework. De Constructor TemperatureDevice maakt verbinding met de database met behulp van instellingen die zijn opgeslagen in het configuratiebestand van de toepassing. De methode RecordTemperatures genereert een leesbewerking en schrijft deze naar de database.

  4. Sluit de code-editor en open het bestand ThermometerReading.cs :

    code ThermometerReading.cs
    

    Dit bestand toont de structuur van de documenten die door de toepassing in de database worden opgeslagen. Elk document bevat de volgende velden:

    • Een object-id. Dit is het veld '_id' dat door MongoDB wordt gegenereerd om elk document uniek te identificeren.
    • Een apparaat-id. Elk apparaat heeft een getal met het voorvoegsel 'Apparaat'.
    • De temperatuur die door het apparaat is geregistreerd.
    • De datum en tijd waarop de temperatuur is vastgelegd.
  5. Sluit de code-editor en open vervolgens het bestand App.config :

    code App.config
    

    Dit bestand bevat de instellingen voor het maken van verbinding met de MongoDB-database.

  6. Stel de waarde voor de adressleutel in op het IP-adres van de MongoDB-server die u eerder hebt vastgelegd.

  7. Wijzig de poort die de app gebruikt in 8080.

  8. Sla het bestand op en sluit de editor met Ctrl + s en vervolgens Ctrl + q.

  9. Voer de volgende opdracht uit om de toepassing opnieuw te bouwen:

    dotnet build
    

    Dit kan ongeveer 5 minuten duren.

  10. Voer de toepassing uit:

    dotnet run
    

    De toepassing simuleert 100 apparaten die tegelijkertijd worden uitgevoerd. Sta toe dat de toepassing een paar minuten kan worden uitgevoerd en druk vervolgens op Enter om deze te stoppen.

Een andere app bouwen en uitvoeren om een query uit te voeren op de MongoDB-database

  1. Ga naar de map DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery :

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

    Deze map bevat een andere toepassing die u kunt gebruiken om de gegevens te analyseren die door elk apparaat zijn vastgelegd.

  2. Gebruik de Code-editor om het bestand Program.cs te onderzoeken:

    code Program.cs
    

    De toepassing maakt verbinding met de database (met behulp van de methode Verbinding maken ToDatabase onderaan het bestand) en vraagt de gebruiker vervolgens om een apparaatnummer. De toepassing maakt gebruik van de MongoDB-bibliotheek voor .NET Framework om een statistische pijplijn te maken en uit te voeren waarmee de volgende statistieken voor het opgegeven apparaat worden berekend:

    • Het aantal opgenomen metingen.
    • De gemiddelde temperatuur geregistreerd.
    • De laagste lezing.
    • De hoogste lezing.
    • De laatste lezing.
  3. Sluit de code-editor en open vervolgens het bestand App.config :

    code App.config
    
  4. Stel de waarde voor de adressleutel in op het IP-adres van de MongoDB-server die u eerder hebt vastgelegd.

  5. Wijzig de poort die de app gebruikt in 8080.

  6. Sla het bestand op en sluit de editor met Ctrl + s en vervolgens Ctrl + q.

  7. Bouw en voer de toepassing uit:

    dotnet build
    dotnet run
    
  8. Voer bij de prompt Apparaatnummer invoeren een waarde in tussen 0 en 99. De toepassing voert een query uit op de database, berekent de statistieken en geeft de resultaten weer. Druk op Q om de toepassing af te sluiten.

De MongoDB-database migreren naar Cosmos DB

De volgende stap is om de MongoDB-database te nemen en over te dragen naar Cosmos DB.

Een Cosmos-account en -database maken

  1. Ga terug naar Azure Portal.

  2. Selecteer + Een resource maken in het menu.

  3. Typ *Azure Cosmos DB in het vak Marketplace doorzoeken op de pagina Nieuw en druk vervolgens op Enter.

  4. Selecteer op de pagina Azure Cosmos DBMaken.

  5. Voer op de pagina Azure Cosmos DB-account maken de volgende instellingen in:

    Eigenschap Waarde
    Resourcegroep mongodbrg
    Accountnaam mongodb*nnn*, waarbij nnn een willekeurig getal is dat door u is geselecteerd
    API Azure Cosmos DB voor MongoDB-API
    Notebooks Uit
    Locatie Geef dezelfde locatie op die u hebt gebruikt voor de MongoDB-server en het virtuele netwerk
    Capaciteitsmodus Ingerichte doorvoer
    Korting voor gratis laag toepassen Toepassen
    Rekeningsoort Niet-productie
    Versie 3.6
    Georedundantie Uitschakelen
    Schrijven voor meerdere regio's Uitschakelen
    Beschikbaarheidszones Uitschakelen
  6. Selecteer Controleren + maken.

  7. Selecteer op de validatiepagina Maken en wacht tot het Cosmos DB-account is geïmplementeerd.

  8. Selecteer alle resources in het menu van Azure Portal en selecteer vervolgens uw nieuwe Cosmos DB-account (mongodbnnn).

  9. Selecteer Data Explorer op de pagina mongodbnnn.

  10. Selecteer Nieuwe verzameling in het deelvenster Data Explorer.

  11. Geef in het deelvenster Verzameling toevoegen de volgende instellingen op:

    Eigenschap Waarde
    Database-id Selecteer Nieuwe maken en typ vervolgens DeviceData
    Doorvoer voor databases inrichten Geselecteerde
    Doorvoer 10000
    Verzamelings-id Temperaturen
    Opslagcapaciteit Onbeperkt
    Shardsleutel deviceID
    Mijn shardsleutel is groter dan 100 bytes Niet-geselecteerd laten
    Een jokertekenindex maken voor alle velden Niet-geselecteerd laten
    Analytische opslag Uit
  12. Selecteer OK.

Database Migration Service maken

  1. Ga terug naar de Azure-portal.

  2. Klik op Alle services, klik op Abonnementen en klik vervolgens op uw abonnement.

  3. Klik op uw abonnementspagina onder Instellingen op Resourceproviders.

  4. Typ DataMigration in het vak Filteren op naam en klik vervolgens op Microsoft.DataMigration.

  5. Als Microsoft.DataMigration niet is geregistreerd, klikt u op Registreren en wacht u totdat de status is gewijzigd in Geregistreerd. Mogelijk moet u op Vernieuwen klikken om de statuswijziging te zien.

  6. Selecteer + Een resource maken in het menu van Azure Portal.

  7. Typ Azure Database Migration Service op de pagina Nieuw in het vak Marketplace doorzoeken en druk op Enter.

  8. Selecteer Maken op de pagina Azure Database Migration Service.

  9. Voer op de pagina Migratieservice maken de volgende instellingen in:

    Eigenschap Waarde
    Resourcegroep mongodbrg
    Servicenaam MongoDBMigration
    Locatie Selecteer dezelfde locatie die u eerder hebt gebruikt
    Servicemodus Azure
    Prijscategorie Standaard: 1 vCores
  10. Selecteer Volgende: Netwerken.

  11. Selecteer op de pagina Netwerken databasevnet/standaard en selecteer Vervolgens Beoordelen en maken.

  12. Selecteer Maken en wacht totdat de service is geïmplementeerd voordat u doorgaat. Deze bewerking kan ongeveer 10 minuten duren.

Een nieuw migratieproject maken en uitvoeren

  1. Selecteer Resourcegroepen in het menu van Azure Portal.

  2. Selecteer mongodbrg in het venster Resourcegroepen.

  3. Selecteer MongoDBMigration in het mongodbrg-venster.

  4. Selecteer + Nieuw migratieproject op de pagina MongoDBMigration.

  5. Voer op de pagina Nieuw migratieproject de volgende instellingen in:

    Eigenschap Waarde
    Projectnaam MigrateTemperatureData
    Type bronserver MongoDB
    Type doelserver Cosmos DB (MongoDB-API)
    Het type activiteit kiezen Offlinegegevensmigratie
  6. Selecteer Activiteit maken en uitvoeren.

  7. Wanneer de wizard Migratie wordt gestart, voert u op de pagina Brongegevens de volgende gegevens in:

    Eigenschap Waarde
    Modus Standaardmodus
    Naam van de bronserver Geef de waarde op van het ip-adres van mongodbserver-ip dat u eerder hebt vastgelegd
    Serverpoort 8080
    Gebruikersnaam Beheerder
    Password Pa55w.rd
    SSL vereisen deselecteren
  8. Selecteer Volgende: Doel selecteren.

  9. Voer op de pagina Doel selecteren de volgende gegevens in:

    Eigenschap Waarde
    Modus Cosmos DB-doel selecteren
    Comos DB-naam selecteren mongodb*nnn*
    Verbindingsreeks Accepteer de verbindingsreeks die zijn gegenereerd voor uw Cosmos DB-account
  10. Selecteer Volgende: Database-instelling.

  11. Voer op de pagina Database-instelling de volgende gegevens in:

    Eigenschap Waarde
    Brondatabase DeviceData
    Doeldatabase DeviceData
    Doorvoer (RU/s) 1000
    Verzamelingen opschonen Dit vak wissen
  12. Selecteer Volgende: Verzamelingsinstelling.

  13. Selecteer op de pagina Verzamelingsinstelling de vervolgkeuzepijl van de DeviceData-database en voer de volgende gegevens in:

    Eigenschap Waarde
    Naam Temperaturen
    Doelverzameling Temperaturen
    Doorvoer (RU/s) 1000
    Shardsleutel deviceID
    Uniek Leeg laten
  14. Selecteer Volgende: Migratieoverzicht.

  15. Voer op de pagina Migratiesamenvatting in het veld Activiteitsnaam mongodb-migratie in en selecteer Migratie starten.

  16. Selecteer op de pagina mongodb-migratie elke 30 seconden vernieuwen totdat de migratie is voltooid. Noteer het aantal verwerkte documenten.

Controleer of de migratie is geslaagd

  1. Selecteer Alle resources in het menu van Azure Portal.

  2. Selecteer mongodbnnn op de pagina Alle resources.

  3. Selecteer Data Explorer op de pagina mongodb*nnn.

  4. Vouw in het deelvenster Data Explorer de DeviceData-database uit, vouw de verzameling Temperaturen uit en selecteer vervolgens Documenten.

  5. Blader in het deelvenster Documenten door de lijst met documenten. U ziet een document-id (_id) en de shardsleutel (/deviceID) voor elk document.

  6. Selecteer een willekeurig document. U ziet nu de details van het document dat wordt weergegeven. Een typisch document ziet er als volgt uit:

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. Selecteer Nieuwe shell in de werkbalk in het deelvenster Documentverkenner.

  8. Voer in het deelvenster Shell 1 bij de prompt de > volgende opdracht in en druk op Enter:

    db.Temperatures.count()
    

    Met deze opdracht wordt het aantal documenten in de verzameling Temperaturen weergegeven. Dit moet overeenkomen met het nummer dat is gerapporteerd door de wizard Migratie.

  9. Voer de volgende opdracht in en druk op Enter:

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

    Met deze opdracht worden de documenten voor apparaat 99 opgehaald en weergegeven.

Bestaande toepassingen opnieuw configureren en uitvoeren om Cosmos DB te gebruiken

De laatste stap is het opnieuw configureren van uw bestaande MongoDB-toepassingen om verbinding te maken met Cosmos DB en te controleren of ze nog steeds werken. Hiervoor moet u de manier wijzigen waarop uw toepassingen verbinding maken met de database, maar de logica van uw toepassingen moet ongewijzigd blijven.

  1. Selecteer in het deelvenster mongodbnnn onder Instellingen Verbinding maken ion String.

  2. Noteer de volgende instellingen op de pagina mongodbnnn Verbinding maken ion String:

    • Host
    • Gebruikersnaam
    • Primair wachtwoord
  3. Ga terug naar het Cloud Shell-venster (maak opnieuw verbinding als er een time-out optreedt voor de sessie) en ga naar de map migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. Open het Bestand App.config in de code-editor:

    code App.config
    
  5. Maak in de sectie Instellingen voor MongoDB van het bestand commentaar op de bestaande instellingen.

  6. Verwijder opmerkingen bij de instellingen in de sectie Instellingen voor de Mongo-API van Cosmos DB en stel de waarden voor deze instellingen als volgt in:

    Instelling Waarde
    Adres De HOST van de pagina mongodbnnn Verbinding maken ion-tekenreeks
    Poort De POORT van de pagina mongodbnnn Verbinding maken ion-tekenreeks
    Gebruikersnaam De GEBRUIKERSNAAM van de pagina mongodbnnn Verbinding maken ion-tekenreeks
    Password Het PRIMAIRE WACHTWOORD van de pagina mongodbnnn Verbinding maken ion-tekenreeks

    Het voltooide bestand moet er ongeveer als volgt uitzien:

    <?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. Sla het bestand op en sluit vervolgens de code-editor.

  8. Open het bestand Program.cs met behulp van de Code-editor:

    code Program.cs
    
  9. Schuif omlaag naar de methode Verbinding maken ToDatabase.

  10. Markeer de regel waarmee de referenties worden ingesteld voor het maken van verbinding met MongoDB en verwijder opmerkingen bij de instructies die de referenties opgeven voor het maken van verbinding met Cosmos DB. De code moet er als volgt uitzien:

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

    Deze wijzigingen zijn nodig omdat de oorspronkelijke MongoDB-database geen SSL-verbinding heeft gebruikt. Cosmos DB maakt altijd gebruik van SSL.

  11. Sla het bestand op en sluit vervolgens de code-editor.

  12. Bouw de toepassing opnieuw en voer deze uit:

    dotnet build
    dotnet run
    
  13. Voer bij de prompt Apparaatnummer invoeren een apparaatnummer in tussen 0 en 99. De toepassing moet precies als voorheen worden uitgevoerd, behalve deze keer dat deze de gegevens gebruikt die zijn opgeslagen in de Cosmos DB-database.

Queryprestaties verbeteren in Cosmos DB

Met Cosmos DB kunt u meer indexen toevoegen om de queryprestaties te verbeteren. Omdat we het toevoegen van dat veld als index via deviceID samenvoegen, worden uw query's sneller uitgevoerd.

  1. Ga terug naar de Azure-portal.

  2. Selecteer Aan de linkerkant Data Explorer.

  3. Vouw in het deelvenster Data Explorer de DeviceData-database uit, vouw de verzameling Temperaturen uit en selecteer vervolgens Instellingen.

    Screenshot showing adding a Cosmos DB indexing policy.

  4. Selecteer Indexeringsbeleid.

  5. Voer onder _id een nieuwe index toe, voer de deviceID voor de definitie in en selecteer Één veld voor het type.

  6. Selecteer Opslaan om de nieuwe index toe te voegen.

  7. Ga terug naar uw Cloud Shell om uw query opnieuw uit te voeren en noteer het verbeterde antwoord in uw toepassing.

  8. Test de toepassing met andere apparaatnummers. Voer Q in om te voltooien.

U hebt een MongoDB-database gemigreerd naar Cosmos DB en een bestaande MongoDB-toepassing opnieuw geconfigureerd om verbinding te maken met de nieuwe Cosmos DB-database.

De resources opschonen die u hebt gemaakt

Belangrijk

Als u deze stappen in uw eigen persoonlijke abonnement hebt uitgevoerd, kunt u de resources afzonderlijk verwijderen of de resourcegroep verwijderen om de hele set resources te verwijderen. Resources die actief blijven, kunnen u geld kosten.

  1. Voer met behulp van Cloud Shell deze opdracht uit om de resourcegroep te verwijderen:

    az group delete --name mongodbrg