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 Een resourcegroep maken de volgende gegevens in:
Eigenschap Waarde Abonnement <uw abonnement> Resourcegroep mongodbrg Region Selecteer de dichtstbijzijnde locatie Selecteer Controleren en maken en selecteer vervolgens Maken. Wacht totdat de resourcegroep is gemaakt.
Selecteer + Een resource maken in het menu van Azure Portal.
Typ op de pagina Nieuw in het vak Marketplace zoeken het virtuele netwerk en druk op Enter.
Op de pagina Virtueel netwerk selecteert u Maken.
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 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 adresbereikvan het subnet in op 10.0.0.0/28 en selecteer Vervolgens Toevoegen.
Selecteer Volgende op de pagina IP-adressen de optie Volgende: Beveiliging.
Controleer op de pagina Beveiliging of Azure DDoS-netwerkbeveiliging is ingesteld op Uitschakelen en de firewall is ingesteld op Uitschakelen. Selecteer Controleren + maken.
Selecteer Maken op de pagina Virtueel netwerk 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.
Selecteer Op de marketplace-pagina 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:
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) 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:
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 Selecteer Controleren + maken>.
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 resources mongodbserver-nsg.
Selecteer op de pagina mongodbserver-nsg onder Instellingen de beveiligingsregels voor inkomend verkeer.
Selecteer + Toevoegen op de pagina mongodbserver-nsg - Inkomende beveiligingsregels.
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 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 geen gekoppelde opslag hebt, 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 update
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.
Voer deze opdracht uit om het MongoDB-configuratiebestand te openen:
sudo nano /etc/mongodb.conf
Zoek in het bestand de instelling bind_ip 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 restart
Voer deze opdracht in om verbinding te maken met de MongoDB-service:
mongo --host 127.0.0.1:8080
Voer bij de > prompt de volgende opdracht uit om over te schakelen naar de beheerdatabase :
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
mongo
programma de puntkomma bereikt:db.createUser( { user: "administrator", pwd: "Pa55w.rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "clusterMonitor", db:"admin" }, "readWriteAnyDatabase" ] } );
Voer deze opdracht in om het
mongo
programma af te sluiten.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:8080
Als 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" } ] } );
Voer deze opdracht in om het
mongo
programma af te sluiten.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 restart
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
Voer 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-apps
Ga naar de map migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :
cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
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.
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.
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.
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 build
Dit kan ongeveer 5 minuten duren.
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
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.
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.
Sluit de code-editor en open vervolgens het bestand App.config :
code App.config
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.
Bouw en voer de toepassing uit:
dotnet build dotnet run
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
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 op de pagina Azure Cosmos DBMaken.
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 Selecteer Controleren + 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:
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 Selecteer OK.
Database Migration Service maken
Ga terug naar de 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:
Eigenschap Waarde Resourcegroep mongodbrg Servicenaam MongoDBMigration Locatie Selecteer dezelfde locatie die u eerder hebt gebruikt Servicemodus Azure Prijscategorie Standaard: 1 vCores Selecteer Volgende: Netwerken.
Selecteer op de pagina Netwerken databasevnet/standaard en selecteer Vervolgens 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:
Eigenschap Waarde Projectnaam MigrateTemperatureData Type bronserver MongoDB Type doelserver 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:
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 Selecteer Volgende: Doel selecteren.
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 Selecteer Volgende: Database-instelling.
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 Selecteer Volgende: Verzamelingsinstelling.
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 Selecteer Volgende: Migratieoverzicht.
Voer op de pagina Migratiesamenvatting in het veld Activiteitsnaam mongodb-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.
Selecteer mongodbnnn op de pagina Alle resources.
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 Verbinding maken ion String.
Noteer de volgende instellingen op de pagina mongodbnnn Verbinding maken ion String:
- Host
- 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/DeviceDataQuery
Open het Bestand App.config in de code-editor:
code App.config
Maak in de sectie Instellingen voor MongoDB van het bestand commentaar op de bestaande instellingen.
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>
Sla het bestand op en sluit vervolgens de code-editor.
Open het bestand Program.cs met behulp van de Code-editor:
code Program.cs
Schuif omlaag naar de methode Verbinding maken ToDatabase.
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 run
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.
Ga terug naar de Azure-portal.
Selecteer Aan de linkerkant 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. Resources die actief blijven, kunnen u geld kosten.
Voer met behulp van Cloud Shell deze opdracht uit om de resourcegroep te verwijderen:
az group delete --name mongodbrg