Oefening: MongoDB-workloads migreren naar Cosmos DB
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
Open in een webbrowser een nieuw tabblad en navigeer naar Azure Portal.
Selecteer resourcegroepen in Azure Portal en selecteer vervolgens +Toevoegen.
Voer op de pagina Het aanmaken van een resourcegroep de volgende gegevens in:
Vastgoed Waarde Abonnement <uw abonnement> Resourcegroep mongodbrg Regio Selecteer de dichtstbijzijnde locatie Selecteer Beoordelen en maken en selecteer vervolgens Maken. Wacht totdat de resourcegroep is gemaakt.
Selecteer + Een resource maken in het menu van Azure Portal.
Op de pagina Nieuw, typ in het vak Marketplace zoeken de tekst Virtual Network en druk op Enter.
Selecteer Maken op de pagina Virtueel netwerk.
Voer op de pagina Virtueel netwerk maken de volgende gegevens in en selecteer vervolgens Volgende: IP-adressen:
Vastgoed Waarde Resourcegroep mongodbrg Naam databasevnet Regio Selecteer dezelfde locatie die u hebt opgegeven voor de resourcegroep Stel op de pagina IP-adressen de IPv4-adresruimte in op 10.0.0.0/24.
Selecteer het standaardsubnet en selecteer vervolgens Subnet verwijderen.
Selecteer + Subnet toevoegen. Stel in het deelvenster Subnet toevoegen de naam van het subnet in op de standaardinstelling, stel het adresbereik van het subnet in op 10.0.0.0/28 en selecteer Vervolgens Toevoegen.
Selecteer Volgende op de pagina IP-adressende optie Volgende: Beveiliging.
Controleer op de pagina Beveiliging of Azure DDoS-netwerkbeveiliging is ingesteld op Uitschakelen en de firewall is ingesteld op Uitschakelen. Selecteer Beoordelen en maken.
Op de Virtueel netwerk aanmaken pagina, selecteer Maken. Wacht totdat het virtuele netwerk is gemaakt voordat u doorgaat.
Een MongoDB-databaseserver maken
Selecteer + Een resource maken in het menu van Azure Portal.
Typ Ubuntu in het vak Marketplace doorzoeken en druk op Enter.
Op de Marketplace-pagina, selecteer Ubuntu Server 18.04 LTS.
Selecteer Maken op de pagina Ubuntu Server 18.04 LTS.
Voer op de pagina Een virtuele machine maken de volgende gegevens in:
Vastgoed Waarde Resourcegroep mongodbrg Naam van de virtuele machine mongodbserver Regio 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 aangevinkt Grootte Standard-A1_v2 Verificatietype Wachtwoord Gebruikersnaam azureuser Wachtwoord Pa55w.rdPa55w.rd Wachtwoord bevestigen Pa55w.rdPa55w.rd Openbare poorten voor inkomend verkeer Geselecteerde poorten toestaan Binnenkomende poorten selecteren SSH (22) Selecteer Volgende: Schijven >.
Laat op de pagina Schijven de standaardinstellingen staan en selecteer vervolgens Volgende: Netwerken >.
Voer op de pagina Netwerken de volgende gegevens in:
Vastgoed Waarde Virtueel netwerk databasevnet Subnetwerk standaard (10.0.0.0/28) Openbare IP (nieuw) mongodbserver-ip NIC-netwerkbeveiligingsgroep Geavanceerd Netwerkbeveiligingsgroep configureren (nieuw) mongodbserver-nsg Versneld netwerken Niet aangevinkt Taakverdeling Niet aangevinkt Selecteer Beoordelen en aanmaken >.
Selecteer Maken op de validatiepagina.
Wacht tot de virtuele machine is geïmplementeerd voordat u doorgaat
Selecteer Alle resources in het menu van Azure Portal.
Selecteer op de pagina Alle resourcesmongodbserver-nsg.
Selecteer op de pagina mongodbserver-nsg onder Instellingen de optie Inkomende beveiligingsregels.
Selecteer + Toevoegen op de pagina mongodbserver-nsg - Inkomende beveiligingsregels.
Voer in het deelvenster Binnenkomende beveiligingsregels toevoegen de volgende details in:
Vastgoed Waarde Bron Welk dan ook Poortbereiken van bron * Bestemming Welk dan ook Poortbereiken van bestemming 8080 protocol Welk dan ook Handeling Toestaan Prioriteit 1030 Naam Mongodb-poort Beschrijving Poort die clients gebruiken om verbinding te maken met MongoDB 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
Selecteer Alle resources in het menu van Azure Portal.
Selecteer mongodbserver-ip op de pagina Alle resources.
Noteer het IP-adres op de pagina mongodbserver-ip.
Selecteer Cloud Shell in de werkbalk boven aan Azure Portal.
Als het berichtvak U hebt geen opslag gekoppeld verschijnt, selecteert u Opslag maken.
Wanneer de Cloud Shell wordt gestart, selecteert u Bash in de vervolgkeuzelijst boven het Cloud Shell-venster.
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>Typ ja bij de prompt om verbinding te blijven maken.
Voer het wachtwoord Pa55w.rdPa55w.rd in.
Voer deze opdracht in om de pakketdatabase opnieuw te laden:
sudo apt-get updateVoer deze opdracht in om MongoDB te installeren:
sudo apt-get install -y mongodbDe 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.
Voer deze opdracht uit om het MongoDB-configuratiebestand te openen:
sudo nano /etc/mongodb.confZoek in het bestand de bind_ip instelling en stel deze in op 0.0.0.0.
Zoek de poortinstelling en stel deze in op 8080.
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.
Als u de MongoDB-service opnieuw wilt starten en uw wijzigingen wilt toepassen, voert u deze opdracht in:
sudo service mongodb restartVoer deze opdracht in om verbinding te maken met de MongoDB-service:
mongo --host 127.0.0.1:8080Voer bij de > prompt de volgende opdracht uit om over te schakelen naar de -database:
use admin;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
mongoprogramma de puntkomma bereikt:db.createUser( { user: "administrator", pwd: "Pa55w.rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "clusterMonitor", db:"admin" }, "readWriteAnyDatabase" ] } );Als u het
mongoprogramma wilt afsluiten, voert u deze opdracht in;exit;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:8080Als u wilt overschakelen naar de DeviceData-database , voert u deze opdracht uit:
use DeviceData;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" } ] } );Als u het
mongoprogramma wilt afsluiten, voert u deze opdracht in;exit;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 restartVoer 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:8080Voer bij de > prompt de volgende opdracht uit om de mongo-shell af te sluiten:
exit;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
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-appsGa naar de map migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :
cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCaptureGebruik de Code-editor om het bestand TemperatureDevice.cs te onderzoeken:
code TemperatureDevice.csDe 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.
Sluit de code-editor en open het ThermometerReading.cs-bestand :
code ThermometerReading.csDit 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.
Sluit de code-editor en open het bestandApp.config :
code App.configDit bestand bevat de instellingen voor het maken van verbinding met de MongoDB-database.
Stel de waarde voor de adressleutel in op het IP-adres van de MongoDB-server die u eerder hebt vastgelegd.
Wijzig de poort die de app gebruikt in 8080.
Sla het bestand op en sluit de editor met Ctrl + s en vervolgens Ctrl + q.
Voer de volgende opdracht uit om de toepassing opnieuw te bouwen:
dotnet buildDit kan ongeveer 5 minuten duren.
Voer de toepassing uit:
dotnet runDe 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
Ga naar de map DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery :
cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQueryDeze map bevat een andere toepassing die u kunt gebruiken om de gegevens te analyseren die door elk apparaat zijn vastgelegd.
Gebruik de Code-editor om het bestand Program.cs te onderzoeken:
code Program.csDe toepassing maakt verbinding met de database (met behulp van de Methode ConnectToDatabase 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.
Sluit de code-editor en open het bestandApp.config :
code App.configStel de waarde voor de adressleutel in op het IP-adres van de MongoDB-server die u eerder hebt vastgelegd.
Wijzig de poort die de app gebruikt in 8080.
Sla het bestand op en sluit de editor met Ctrl + s en vervolgens Ctrl + q.
Bouw en voer de toepassing uit:
dotnet build dotnet runVoer 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
Ga terug naar Azure Portal.
Selecteer + Een resource maken in het menu.
Typ *Azure Cosmos DB in het vak Marketplace doorzoeken op de pagina Nieuw en druk vervolgens op Enter.
Selecteer Maken op de pagina Azure Cosmos DB.
Voer op de pagina Azure Cosmos DB-account maken de volgende instellingen in:
Vastgoed Waarde Resourcegroep mongodbrg Accountnaam mongodb*nnn*, waarbij nnn een willekeurig getal is dat door u is geselecteerd API (Application Programming Interface) Azure Cosmos DB voor MongoDB-API Notitieboeken Af Locatie Geef dezelfde locatie op die u hebt gebruikt voor de MongoDB-server en het virtuele netwerk Capaciteitsmodus Gereserveerde doorvoer Korting voor gratis laag toepassen toepassen Accounttype Niet-productie Versie 3.6 Georedundantie Uitschakelen Schrijven voor meerdere regio's Uitschakelen Beschikbaarheidszones Uitschakelen Selecteer Beoordelen en maken.
Selecteer op de validatiepagina Maken en wacht tot het Cosmos DB-account is geïmplementeerd.
Selecteer alle resources in het menu van Azure Portal en selecteer vervolgens uw nieuwe Cosmos DB-account (mongodbnnn).
Selecteer Data Explorer op de pagina mongodbnnn.
Selecteer Nieuwe verzameling in het deelvenster Data Explorer.
Geef in het deelvenster Verzameling toevoegen de volgende instellingen op:
Vastgoed Waarde Database-id Selecteer Nieuw maken en typ vervolgens DeviceData Databasedoorvoer inrichten uitverkoren Doorvoer 10000 Verzamelings-ID Temperaturen Opslagcapaciteit Onbegrensd Shardsleutel deviceID Mijn shardsleutel is groter dan 100 bytes Niet-geselecteerd laten Een jokertekenindex maken voor alle velden Niet-geselecteerd laten Analytische store Af Selecteer OK.
Database Migration Service maken
Ga terug naar Azure Portal.
Klik op Alle services, klik op Abonnementen en klik vervolgens op uw abonnement.
Klik op uw abonnementspagina onder Instellingen op Resourceproviders.
Typ DataMigration in het vak Filteren op naam en klik vervolgens op Microsoft.DataMigration.
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.
Selecteer + Een resource maken in het menu van Azure Portal.
Typ Azure Database Migration Service op de pagina Nieuw in het vak Marketplace doorzoeken en druk op Enter.
Selecteer Maken op de pagina Azure Database Migration Service.
Voer op de pagina Migratieservice maken de volgende instellingen in:
Vastgoed Waarde Resourcegroep mongodbrg Servicenaam MongoDBMigration Locatie Selecteer dezelfde locatie die u eerder hebt gebruikt Servicemodus Azuur Prijsniveau Standaard: 1 vCores Selecteer Volgende: Netwerken.
Selecteer op de pagina Netwerkendatabasevnet/standaard en selecteer beoordelen en maken.
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
Selecteer Resourcegroepen in het menu van Azure Portal.
Selecteer mongodbrg in het venster Resourcegroepen.
Selecteer MongoDBMigration in het mongodbrg-venster.
Selecteer + Nieuw migratieproject op de pagina MongoDBMigration.
Voer op de pagina Nieuw migratieproject de volgende instellingen in:
Vastgoed Waarde Projectnaam MigrateTemperatureData Type bronserver MongoDB Doelservertype Cosmos DB (MongoDB-API) Het type activiteit kiezen Offlinegegevensmigratie Selecteer Activiteit maken en uitvoeren.
Wanneer de wizard Migratie wordt gestart, voert u op de pagina Brongegevens de volgende gegevens in:
Vastgoed Waarde Wijze Standaardmodus Naam van de bronserver Geef de waarde op van het ip-adres van mongodbserver-ip dat u eerder hebt vastgelegd Serverpoort 8080 Gebruikersnaam administrateur Wachtwoord Pa55w.rd SSL vereisen deselecteren Selecteer Volgende: Doel selecteren.
Op de pagina Doel selecteren, voer de volgende gegevens in:
Vastgoed Waarde Wijze Cosmos DB-doel selecteren Comos DB-naam selecteren mongodb*nnn* Verbindingstekst Accepteer de verbindingsreeks die is gegenereerd voor uw Cosmos DB-account Selecteer Volgende: Database-instelling.
Voer op de pagina Database-instelling de volgende gegevens in:
Vastgoed Waarde Brondatabase DeviceData Doeldatabase DeviceData Doorvoer (RU/s) 1000 Verzamelingen opschonen Dit vak wissen Selecteer Volgende: Verzamelingsinstelling.
Selecteer op de pagina Verzamelingsinstelling de vervolgkeuzepijl van de DeviceData-database en voer de volgende gegevens in:
Vastgoed Waarde Naam Temperaturen Doelverzameling Temperaturen Doorvoer (RU/s) 1000 Shardsleutel deviceID Uniek Leeg laten Selecteer Volgende: Migratieoverzicht.
Voer op de pagina Migratiesamenvatting in het veld Activiteitsnaammongodb-migratie in en selecteer Migratie starten.
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
Selecteer Alle resources in het menu van Azure Portal.
Op de Alle resources pagina, selecteer mongodbnnn.
Selecteer Data Explorer op de pagina mongodb*nnn.
Vouw in het deelvenster Data Explorer de DeviceData-database uit, vouw de verzameling Temperaturen uit en selecteer vervolgens Documenten.
Blader in het deelvenster Documenten door de lijst met documenten. U ziet een document-id (_id) en de shardsleutel (/deviceID) voor elk document.
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 }Selecteer Nieuwe shell in de werkbalk in het deelvenster Documentverkenner.
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.
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.
Selecteer in het deelvenster mongodbnnn onder Instellingen de optie Verbindingsreeks.
Noteer de volgende instellingen op de pagina mongodbnnn-verbindingsreeks:
- Gastheer
- Gebruikersnaam
- Primair wachtwoord
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/DeviceDataQueryOpen het bestand App.config in de code-editor:
code App.configGeef in de sectie Instellingen voor MongoDB van het bestand de bestaande instellingen als commentaar.
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:
Omgeving Waarde Adres De HOST van de pagina mongodbnnn-verbindingsreeks Poort De POORT van de pagina mongodbnnn-verbindingsreeks Gebruikersnaam De GEBRUIKERSNAAM van de mongodbnnn-verbindingsreeks pagina Wachtwoord Het PRIMAIRE WACHTWOORD van de pagina mongodbnnn-verbindingsreeks 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>Sla het bestand op en sluit vervolgens de code-editor.
Open het bestand Program.cs met behulp van de Code-editor:
code Program.csSchuif omlaag naar de methode ConnectToDatabase .
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.
Sla het bestand op en sluit vervolgens de code-editor.
Bouw de toepassing opnieuw en voer deze uit:
dotnet build dotnet runVoer 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.
Ga terug naar Azure Portal.
Aan de linkerkant, selecteer Data Explorer.
Vouw in het deelvenster Data Explorer de DeviceData-database uit, vouw de verzameling Temperaturen uit en selecteer vervolgens Instellingen.
Selecteer Indexeringsbeleid.
Voer onder _id een nieuwe index toe, voer de deviceID voor de definitie in en selecteer Één veld voor het type.
Selecteer Opslaan om de nieuwe index toe te voegen.
Ga terug naar uw Cloud Shell om uw query opnieuw uit te voeren en noteer het verbeterde antwoord in uw toepassing.
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. Middelen die nog in gebruik zijn, kunnen u geld kosten.
Voer met behulp van Cloud Shell deze opdracht uit om de resourcegroep te verwijderen:
az group delete --name mongodbrg