Übung: Migrieren von MongoDB-Workloads zu Cosmos DB
Sie arbeiten für ein Versorgungsunternehmen, das über IoT-Sensoren verfügt, die Temperaturdaten erfassen. Die Temperaturen werden zusammen mit einem Zeitstempel in einer MongoDB-Datenbank protokolliert. Jedes Gerät verfügt über eine eindeutige ID. Sie werden eine MongoDB-Anwendung ausführen, die diese Geräte simuliert und die Daten in der Datenbank speichert. Sie werden auch eine zweite Anwendung verwenden, mit der ein Benutzer statistische Informationen über jedes Gerät abfragen kann. Nach der Migration der Datenbank von MongoDB zu Cosmos DB konfigurieren Sie beide Anwendungen so, dass sie eine Verbindung mit Cosmos DB herstellen, und überprüfen, ob sie noch ordnungsgemäß funktionieren.
In dieser Übung nehmen Sie eine bestehende MongoDB-Datenbank und migrieren sie zu Cosmos DB. Sie werden den Azure Database Migration Service verwenden. Sie werden auch sehen, wie Sie bestehende Anwendungen, die die MongoDB-Datenbank verwenden, neu konfigurieren können, um stattdessen eine Verbindung mit der Cosmos DB-Datenbank herzustellen.
Wichtig
Azure Database Migration Service wird in der kostenlosen Azure-Sandboxumgebung nicht unterstützt. Sie können diese Schritte in Ihrem eigenen persönlichen Abonnement durchführen oder einfach folgen, um zu verstehen, wie Sie Ihre Datenbank migrieren.
Erstellen einer MongoDB-Datenbank in Azure
Zunächst erstellen Sie die MongoDB-Datenbank für die Speicherung der von den Temperaturgeräten erfassten Daten.
Erstellen einer Ressourcengruppe und eines virtuellen Netzwerks
Öffnen Sie in einem Webbrowser eine neue Registerkarte, und navigieren Sie zum Azure-Portal.
Klicken Sie im Azure-Portal auf Ressourcengruppen und dann auf + Hinzufügen.
Geben Sie auf der Seite Ressourcengruppe erstellen die folgenden Details ein:
Eigenschaft Wert Subscription <Ihr Abonnement> Ressourcengruppe mongodbrg Region Wählen Sie den nächstgelegenen Standort aus. Wählen Sie Überprüfen + erstellen und anschließend Erstellen aus. Warten Sie, bis die Ressourcengruppe erstellt wurde.
Wählen Sie im Menü des Azure-Portals + Ressource erstellen aus.
Geben Sie auf der Seite Neu im Feld Marketplace durchsuchen den Suchbegriff Virtual Network ein, und drücken Sie die EINGABETASTE.
Wählen Sie auf der Seite Virtuelles Netzwerk die Option Erstellen aus.
Geben Sie auf der Seite Virtuelles Netzwerk erstellen die folgenden Details ein, und wählen Sie dann Weiter: IP-Adressen aus:
Eigenschaft Wert Ressourcengruppe mongodbrg name databasevnet Region Wählen Sie den Standort aus, den Sie auch für die Ressourcengruppe angegeben haben. Legen Sie auf der Seite IP-Adressen den IPv4-Adressraum auf 10.0.0.0/24 fest.
Wählen Sie das Standardsubnetz aus, und klicken Sie dann auf Subnetz entfernen.
Klicken Sie auf + Subnetz hinzufügen. Legen Sie im Bereich Subnetz hinzufügen den Subnetznamen auf Standard fest und den Subnetzadressbereich auf 10.0.0.0/28, und klicken Sie dann auf Hinzufügen.
Klicken Sie auf der Seite IP-Adressen auf Weiter: Sicherheit.
Vergewissern Sie sich auf der Seite Sicherheit, dass Azure DDoS-Netzwerkschutz auf Deaktivieren und Firewall auf Deaktivieren festgelegt ist. Klicken Sie auf Überprüfen + erstellen.
Wählen Sie auf der Seite Virtuelles Netzwerk erstellen die Option Erstellen aus. Warten Sie, bis das virtuelle Netzwerk erstellt wurde, bevor Sie fortfahren.
Erstellen eines MongoDB-Datenbankservers
Wählen Sie im Menü des Azure-Portals + Ressource erstellen aus.
Geben Sie im Feld Marketplace durchsuchen den Text Ubuntu ein, und drücken Sie dann die EINGABETASTE.
Wählen Sie auf der Seite Marketplace die Option Ubuntu Server 18.04 LTS aus.
Wählen Sie auf der Seite Ubuntu Server 18.04 LTS die Option Erstellen aus.
Geben Sie auf der Seite Virtuellen Computer erstellen die folgenden Details ein:
Eigenschaft Wert Ressourcengruppe mongodbrg Name des virtuellen Computers mongodbserver Region Wählen Sie den Standort aus, den Sie auch für die Ressourcengruppe angegeben haben. Verfügbarkeitsoptionen Keine Infrastrukturredundanz erforderlich Image Ubuntu Server 18.04 LTS - Gen1 Azure Spot-Instanz Deaktiviert Size Standard A1_v2 Authentifizierungsart Kennwort Username azureuser Kennwort Pa55w.rdPa55w.rd Kennwort bestätigen Pa55w.rdPa55w.rd Öffentliche Eingangsports Ausgewählte Ports zulassen Eingangsports auswählen SSH (22) Wählen Sie Weiter: Datenträger > aus.
Belassen Sie auf der Seite Datenträger die Standardwerte für die Einstellungen, und wählen Sie dann Weiter: Netzwerk > aus.
Geben Sie auf der Seite Netzwerk die folgenden Informationen ein:
Eigenschaft Wert Virtuelles Netzwerk databasevnet Subnet Standard (10.0.0.0/28) Öffentliche IP-Adresse (Neu) mongodbserver-ip NIC-Netzwerksicherheitsgruppe Erweitert Konfigurieren von Netzwerksicherheitsgruppen (Neu) mongodbserver-nsg Beschleunigte Netzwerke Deaktiviert Lastenausgleich Deaktiviert Wählen Sie Überprüfen und erstellen > aus.
Klicken Sie auf der Überprüfungsseite auf Erstellen.
Warten Sie, bis der virtuelle Computer bereitgestellt wurde, bevor Sie fortfahren.
Klicken Sie im Menü des Azure-Portals auf Alle Ressourcen.
Wählen Sie auf der Seite Alle Ressourcen die Option mongodbserver-nsg aus.
Klicken Sie auf der Seite mongodbserver-nsg unter Einstellungen auf Eingangssicherheitsregeln.
Klicken Sie auf der Seite mongodbserver-nsg – Eingangssicherheitsregeln auf + Hinzufügen.
Geben Sie im Bereich Eingangssicherheitsregel hinzufügen die folgenden Details ein:
Eigenschaft Value `Source` Alle Source port ranges * Destination Any Zielportbereiche 8080 Protocol Any Aktion Allow Priorität 1030 name Mongodb-port BESCHREIBUNG Port, den Clients zum Herstellen einer Verbindung mit MongoDB verwenden Wählen Sie Hinzufügen.
Hinweis
In dieser Übung werden Sie MongoDB für die Verwendung von Port 8080 konfigurieren. Dies ist nur aufgrund von Sicherheitseinschränkungen in dieser Umgebung erforderlich. Normalerweise würden Sie den MongoDB-Standardport 27017 verwenden.
Installieren von MongoDB
Wählen Sie im Menü des Azure-Portals die Option Alle Ressourcen aus.
Wählen Sie auf der Seite Alle Ressourcen die Option mongodbserver-ip aus.
Notieren Sie sich die IP-Adresse auf der Seite mongodbserver-ip.
Klicken Sie auf der Symbolleiste oben im Azure-Portal auf Cloud Shell.
Wenn die Meldung Für Sie wurde kein Speicher bereitgestellt. angezeigt wird, klicken Sie auf Create storage (Speicher erstellen).
Wenn Cloud Shell gestartet wird, wählen Sie in der Dropdownliste über dem Cloud Shell-Fenster Bash aus.
Geben Sie in der Cloud Shell den folgenden Befehl ein, um eine Verbindung mit dem virtuellen Computer „mongodbserver“ herzustellen. Ersetzen Sie <IP-Adresse> durch den Wert der IP-Adresse mongodbserver-ip:
ssh azureuser@<ip address>
Geben Sie in der Eingabeaufforderung yes ein, um mit dem Herstellen der Verbindung fortzufahren.
Geben Sie das Kennwort Pa55w.rdPa55w.rd ein.
Geben Sie den folgenden Befehl ein, um die Paketdatenbank erneut zu laden:
sudo apt-get update
Um MongoDB zu installieren, geben Sie den folgenden Befehl ein:
sudo apt-get install -y mongodb
Die Installation sollte mit Nachrichten zum Installieren, Vorbereiten und Entpacken von Paketen fortgesetzt werden. Es kann ein paar Minuten dauern, bis die Installation abgeschlossen ist.
Konfigurieren der MongoDB-Datenbank
Standardmäßig ist die Mongo DB-Instanz so konfiguriert, dass Sie ohne Authentifizierung ausgeführt wird. In dieser Aufgabe konfigurieren Sie MongoDB für die Bindung an die lokale Netzwerkschnittstelle, damit es Verbindungen von anderen Computern annehmen kann. Außerdem aktivieren Sie die Authentifizierung und erstellen das erforderliche Benutzerkonto, um die Migration durchzuführen. Schließlich fügen Sie ein Konto hinzu, das eine Testanwendung zur Abfrage der Datenbank verwenden kann.
Führen Sie den folgenden Befehl aus, um die MongoDB-Konfigurationsdatei zu öffnen:
sudo nano /etc/mongodb.conf
Suchen Sie in der Datei die Einstellung bind_ip, und legen Sie sie auf 0.0.0.0 fest.
Suchen Sie die Einstellung Port, und legen Sie sie auf 8080 fest.
Um die Konfigurationsdatei zu speichern, drücken Sie ESC und dann STRG+X. Drücken Sie y und dann die EINGABETASTE, um den geänderten Puffer zu speichern.
Geben Sie den folgenden Befehl ein, um den MongoDB-Dienst neu zu starten und die Änderungen anzuwenden:
sudo service mongodb restart
Geben Sie den folgenden Befehl ein, um eine Verbindung mit dem MongoDB-Dienst herzustellen:
mongo --host 127.0.0.1:8080
Führen Sie an der Eingabeaufforderung > den folgenden Befehl aus, um zur Datenbank admin zu wechseln:
use admin;
Führen Sie den folgenden Befehl aus, um einen neuen Benutzer namens Administrator zu erstellen. Sie können den Befehl in einer Zeile oder zur besseren Lesbarkeit über mehrere Zeilen eingeben. Der Befehl wird ausgeführt, wenn das Programm
mongo
das Semikolon erreicht:db.createUser( { user: "administrator", pwd: "Pa55w.rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "clusterMonitor", db:"admin" }, "readWriteAnyDatabase" ] } );
Geben Sie den folgenden Befehl ein, um das
mongo
-Programm zu beenden:exit;
Führen Sie den folgenden Befehl aus, um mit dem neuen Administratorkonto eine Verbindung mit MongoDB herzustellen:
mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
Führen Sie den folgenden Befehl aus, um zur DeviceData-Datenbank zu wechseln:
use DeviceData;
Führen Sie den folgenden Befehl aus, um einen Benutzer namens deviceadmin zu erstellen, der von der App zum Herstellen einer Verbindung mit der Datenbank verwendet wird:
db.createUser( { user: "deviceadmin", pwd: "Pa55w.rd", roles: [ { role: "readWrite", db: "DeviceData" } ] } );
Geben Sie den folgenden Befehl ein, um das
mongo
-Programm zu beenden:exit;
Führen Sie den folgenden Befehl aus, um den mongodb-Dienst neu zu starten. Überprüfen Sie, ob der Dienst ohne Fehlermeldungen neu startet:
sudo service mongodb restart
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie sich jetzt als Benutzer „deviceadmin“ bei mongodb anmelden können:
mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
Führen Sie an der Eingabeaufforderung > den folgenden Befehl aus, um die Mongo-Shell zu beenden:
exit;
Führen Sie an der Bash-Eingabeaufforderung den folgenden Befehl aus, um die Verbindung mit dem MongoDB-Server zu trennen und zur Cloud Shell zurückzukehren:
exit
Auffüllen und Abfragen der MongoDB-Datenbank
Sie haben nun einen MongoDB-Server und eine Datenbank erstellt. Der nächste Schritt ist die Veranschaulichung der Beispielanwendungen, die die Daten in dieser Datenbank auffüllen und abfragen können.
Erstellen und Ausführen einer App zum Auffüllen der MongoDB-Datenbank
Führen Sie in der Azure Cloud Shell den folgenden Befehl aus, um den Beispielcode herunterzuladen:
git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
Wechseln Sie zum Ordner migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
Verwenden Sie den Code-Editor, um die Datei TemperatureDevice.cs zu untersuchen:
code TemperatureDevice.cs
Der Code in dieser Datei enthält eine Klasse namens TemperatureDevice, die ein Temperaturgerät simuliert, das Daten erfasst und diese in einer MongoDB-Datenbank speichert. Es verwendet die MongoDB-Bibliothek für das .NET Framework. Der TemperatureDevice-Konstruktor stellt unter Verwendung der in der Anwendungskonfigurationsdatei gespeicherten Einstellungen eine Verbindung mit der Datenbank her. Die Methode RecordTemperatures erzeugt einen Messwert und schreibt ihn in die Datenbank.
Schließen Sie den Code-Editor, und öffnen Sie dann die Datei ThermometerReading.cs:
code ThermometerReading.cs
Diese Datei zeigt die Struktur der Dokumente, die die Anwendung in der Datenbank speichert. Jedes Dokument enthält die folgenden Felder:
- Eine Objekt-ID. Das ist das Feld „_id“, das von MongoDB generiert wird, um jedes Dokument eindeutig zu kennzeichnen.
- Eine Geräte-ID. Jedes Gerät besitzt eine Nummer mit dem Präfix „Device“.
- Die vom Gerät aufgezeichnete Temperatur.
- Das Datum und die Uhrzeit, zu der die Temperatur aufgezeichnet wurde.
Schließen Sie den Code-Editor, und öffnen Sie dann die Datei App.config:
code App.config
Diese Datei enthält die Einstellungen für das Herstellen einer Verbindung mit der MongoDB-Datenbank.
Legen Sie den Wert für den Schlüssel Adresse auf die IP-Adresse des MongoDB-Servers fest, die Sie zuvor aufgezeichnet haben.
Ändern Sie den von der App verwendeten Port in 8080.
Speichern Sie die Datei, und schließen Sie den Editor mit STRG + S und dann STRG + Q.
Führen Sie den folgenden Befehl aus, um die Anwendung neu zu erstellen:
dotnet build
Dies kann etwa 5 Minuten dauern.
Führen Sie die Anwendung aus:
dotnet run
Die Anwendung simuliert 100 gleichzeitig ausgeführte Geräte. Halten Sie die Ausführung der Anwendung einige Minuten lang nicht an, und drücken Sie dann die EINGABETASTE, um die Anwendung anzuhalten.
Erstellen und Ausführen einer weiteren App zur Abfrage der MongoDB-Datenbank
Wechseln Sie zum Ordner DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
Dieser Ordner enthält eine weitere Anwendung, mit der Sie die von den einzelnen Geräten erfassten Daten analysieren können.
Verwenden Sie den Code-Editor, um die Datei Program.cs zu untersuchen:
code Program.cs
Die Anwendung stellt eine Verbindung mit der Datenbank her (mit der Methode ConnectToDatabase am Ende der Datei) und fordert dann den Benutzer zur Eingabe einer Gerätenummer auf. Die Anwendung verwendet die MongoDB-Bibliothek für das .NET Framework, um eine Aggregatpipeline zu erstellen und auszuführen, die die folgenden Statistiken für das angegebene Gerät berechnet:
- Die Anzahl der aufgezeichneten Messwerte.
- Die aufgezeichnete Durchschnittstemperatur.
- Der niedrigste Messwert.
- Der höchste Messwert.
- Der neueste Messwert.
Schließen Sie den Code-Editor, und öffnen Sie dann die Datei App.config:
code App.config
Legen Sie den Wert für den Schlüssel Adresse auf die IP-Adresse des MongoDB-Servers fest, die Sie zuvor aufgezeichnet haben.
Ändern Sie den von der App verwendeten Port in 8080.
Speichern Sie die Datei, und schließen Sie den Editor mit STRG + S und dann STRG + Q.
Erstellen Sie die Anwendung, und führen Sie sie aus:
dotnet build dotnet run
Geben Sie bei der Eingabeaufforderung Gerätenummer eingeben einen Wert zwischen 0 und 99 ein. Die Anwendung wird die Datenbank abfragen, die Statistik berechnen und die Ergebnisse anzeigen. Drücken Sie Q, um die Anwendung zu beenden.
Migrieren der MongoDB-Datenbank zu Cosmos DB
Der nächste Schritt besteht darin, die MongoDB-Datenbank zu nehmen und zu Cosmos DB zu übertragen.
Erstellen eines Cosmos DB-Kontos und einer Datenbank
Kehren Sie zum Azure-Portal zurück.
Wählen Sie im Menü die Option + Ressource erstellen aus.
Geben Sie auf der Seite Neu im Feld Marketplace durchsuchen den Suchbegriff *Azure Cosmos DB ein, und drücken Sie dann die EINGABETASTE.
Wählen Sie auf der Seite Azure Cosmos DB die Option Erstellen aus.
Geben Sie auf der Seite Azure Cosmos DB-Konto erstellen die folgenden Einstellungen ein:
Eigenschaft Wert Resource group mongodbrg Kontoname mongodb*nnn*, wobei nnn eine zufällige von Ihnen ausgewählte Zahl ist API Azure Cosmos DB für MongoDB-API Notebooks Deaktiviert Standort Geben Sie den Standort an, den Sie auch für den MongoDB-Server und das virtuelle Netzwerk verwendet haben. Kapazitätsmodus Bereitgestellter Durchsatz Tarifspezifischen Rabatt für den Free-Tarif anwenden Anwenden Kontotyp Nicht für die Produktion bestimmt Version 3.6 Georedundanz Deaktivieren Schreibvorgänge in mehreren Regionen Deaktivieren Verfügbarkeitszonen Deaktivieren Klicken Sie auf Überprüfen + erstellen.
Wählen Sie auf der Überprüfungsseite Erstellen aus, und warten Sie, bis das Cosmos DB-Konto bereitgestellt wurde.
Klicken Sie im Menü des Azure-Portals auf Alle Ressourcen, und wählen Sie dann Ihr neues Cosmos DB-Konto (mongodbnnn) aus.
Klicken Sie auf der Seite mongodbnnn auf Data Explorer.
Wählen Sie im Bereich Daten-Explorer die Option Neue Sammlung aus.
Geben Sie im Bereich Sammlung hinzufügen die folgenden Einstellungen an:
Eigenschaft Wert Datenbank-ID Wählen Sie Neu erstellen aus, und geben Sie dann DeviceData ein. Bereitstellen des Datenbankdurchsatzes Ausgewählt Throughput 10000 Sammlungs-ID Temperaturen Speicherkapazität Unbegrenzt Shardschlüssel deviceID Mein Shardschlüssel ist größer als 100 Bytes Deaktiviert lassen Erstellen eines Platzhalterindexes für alle Felder Deaktiviert lassen Analysespeicher Deaktiviert Klicken Sie auf OK.
Erstellen der Azure Database Migration Service-Instanz
Kehren Sie zum Azure-Portal zurück.
Klicken Sie auf Alle Dienste, dann auf Abonnements und schließlich auf Ihr Abonnement.
Klicken Sie auf der Abonnementseite unter Einstellungen auf Ressourcenanbieter.
Geben Sie im Feld Nach Name filtern den Begriff DataMigration ein, und wählen Sie dann die Option Microsoft.DataMigration aus.
Wenn Microsoft.DataMigration nicht registriert ist, klicken Sie auf Registrieren, und warten Sie, bis der Status sich in Registriert ändert. Möglicherweise müssen Sie auf Aktualisieren klicken, damit die Statusänderung angezeigt wird.
Wählen Sie im Menü des Azure-Portals + Ressource erstellen aus.
Geben Sie auf der Seite Neu im Feld Marketplace durchsuchen den Suchbegriff Azure Database Migration Service ein, und drücken Sie die EINGABETASTE.
Klicken Sie auf der Seite Azure Database Migration Service auf Erstellen.
Geben Sie auf der Seite Migrationsdienst erstellen die folgenden Einstellungen ein:
Eigenschaft Wert Resource group mongodbrg Dienstname MongoDBMigration Standort Wählen Sie den gleichen Standort aus wie zuvor. Dienstmodus Azure Preisstufe Standard: 1 virtueller Kern Klicken Sie auf Weiter: Netzwerk.
Wählen Sie auf der Seite Netzwerk die Option databasevnet/default aus, und klicken Sie dann auf Überprüfen und erstellen.
Wählen Sie Erstellen aus, und warten Sie, bis der Dienst bereitgestellt wird, bevor Sie fortfahren. Dieser Vorgang kann etwa 10 Minuten dauern.
Erstellen und Ausführen eines neuen Migrationsprojekts
Wählen Sie im Menü des Azure-Portals die Option Ressourcengruppen aus.
Wählen Sie im Fenster Ressourcengruppen die Option mongodbrg aus.
Wählen Sie im Fenster „mongodbrg“ die Option MongoDBMigration aus.
Wählen Sie auf der Seite MongoDBMigration die Option + Neues Migrationsprojekt aus.
Geben Sie auf der Seite Neues Migrationsprojekt die folgenden Einstellungen ein:
Eigenschaft Wert Projektname MigrateTemperatureData Quellservertyp MongoDB Zielservertyp Cosmos DB (MongoDB-API) Aktivitätstyp auswählen Offlinedatenmigration Wählen Sie Aktivität erstellen und ausführen aus.
Wenn der Migrations-Assistent gestartet wurde, geben Sie auf der Seite Quelldetails die folgenden Details ein.
Eigenschaft Wert Modus Standardmodus Name des Quellservers Geben Sie den Wert der IP-Adresse mongodbserver-ip an, die Sie zuvor aufgezeichnet haben. Serverport 8080 Benutzername administrator Kennwort Pa55w.rd Anfordern von SSL Deaktiviert Klicken Sie auf Weiter: Ziel auswählen.
Geben Sie auf der Seite Ziel auswählen die folgenden Details ein:
Eigenschaft Wert Modus Cosmos DB-Ziel auswählen Comos DB-Name auswählen mongodb*nnn* Verbindungszeichenfolge Akzeptieren Sie die für Ihr Cosmos DB-Konto generierte Verbindungszeichenfolge. Wählen Sie Weiter: Datenbankeinstellung aus.
Geben Sie auf der Seite Datenbankeinstellung die folgenden Details ein:
Eigenschaft Wert Quelldatenbank DeviceData Zieldatenbank DeviceData Durchsatz (RU/s) 1000 Sammlungen bereinigen Dieses Feld deaktivieren Wählen Sie Weiter: Sammlungseinstellung aus.
Wählen Sie auf der Seite Sammlungseinstellung den Dropdownpfeil neben der DeviceData-Datenbank aus, und geben Sie die folgenden Details ein:
Eigenschaft Wert Name Temperaturen Zielsammlung Temperaturen Durchsatz (RU/s) 1000 Shardschlüssel deviceID Eindeutig Nicht ausfüllen Wählen Sie Weiter: Migrationszusammenfassung aus.
Geben Sie auf der Seite Migrationszusammenfassung in das Feld Aktivitätsnamemongodb-migration ein, und wählen Sie dann Migration starten aus.
Wählen Sie auf der Seite mongodb-migration die Option Aktualisieren alle 30 Sekunden, bis die Migration abgeschlossen ist. Notieren Sie die Anzahl der verarbeiteten Dokumente.
Überprüfen Sie, ob die Migration erfolgreich ausgeführt wurde.
Wählen Sie im Menü des Azure-Portals die Option Alle Ressourcen aus.
Wählen Sie auf der Seite Alle Ressourcen die Option mongodbnnn aus.
Wählen Sie auf der Seite mongodb*nnn die Option Daten-Explorer aus.
Erweitern Sie in der Karteikarte Daten-Explorer die Datenbank DeviceData, erweitern Sie die Sammlung Temperaturen, und wählen Sie dann Dokumente aus.
Scrollen Sie im Bereich Dokumente durch die Liste der Dokumente. Für jedes Dokument sollten eine Dokument-ID (_id) und der Shardschlüssel (/deviceID) angezeigt werden.
Wählen Sie ein beliebiges Dokument aus. Sie sollten die Details des Dokuments angezeigt bekommen. Ein typisches Dokument sieht wie folgt aus:
{ "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"), "deviceID" : "Device 83", "temperature" : 19.65268837271849, "time" : 636943091952553500 }
Wählen Sie auf der Symbolleiste im Bereich Dokument-Explorer die Option Neue Shell aus.
Geben Sie im Bereich Shell 1 an der Eingabeaufforderung > den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE:
db.Temperatures.count()
Dieser Befehl zeigt die Anzahl der Dokumente in der Sammlung „Temperaturen“ an. Der Wert sollte mit der vom Migrations-Assistenten gemeldeten Zahl übereinstimmen.
Geben Sie den folgenden Befehl ein, und drücken Sie die EINGABETASTE:
db.Temperatures.find({deviceID: "Device 99"})
Mit diesem Befehl werden die Dokumente für Gerät 99 abgerufen und angezeigt.
Neukonfigurieren und Ausführen vorhandener Anwendungen zur Verwendung von Cosmos DB
Der letzte Schritt besteht darin, Ihre bestehenden MongoDB-Anwendungen neu zu konfigurieren, um eine Verbindung mit Cosmos DB herzustellen, und zu überprüfen, ob sie noch funktionieren. Dies erfordert, dass Sie die Art und Weise ändern, wie sich Ihre Anwendungen mit der Datenbank verbinden, aber die Logik Ihrer Anwendungen sollte unverändert bleiben.
Klicken Sie im Bereich mongodbnnn unter Einstellungen auf Verbindungszeichenfolge.
Notieren Sie sich auf der Seite mongodbnnn Verbindungszeichenfolge die folgenden Einstellungen:
- Host
- Username
- Primäres Kennwort
Kehren Sie zum Cloud Shell-Fenster zurück (stellen Sie die Verbindung wieder her, wenn die Sitzung zeitlich abgelaufen ist), und wechseln Sie zum Ordner migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
Öffnen Sie die Datei „App.config“ im Code-Editor:
code App.config
Kommentieren Sie im Abschnitt Einstellungen für MongoDB in der Datei die vorhandenen Einstellungen aus.
Heben Sie die Auskommentierung der Einstellungen im Abschnitt Einstellungen der Mongo-API für Cosmos DB auf, und legen Sie die Werte für diese Einstellungen wie folgt fest:
Einstellung Wert Adresse Dies ist der HOST von der Seite mongodbnnn Verbindungszeichenfolge. Port Dies ist der PORT von der Seite mongodbnnn Verbindungszeichenfolge. Username Dies ist der BENUTZERNAME von der Seite mongodbnnn Verbindungszeichenfolge. Kennwort Dies ist das PRIMÄRE KENNWORT von der Seite mongodbnnn Verbindungszeichenfolge. Die fertige Datei sollte dem folgenden Beispiel ähneln:
<?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>
Speichern Sie die Datei, und schließen Sie dann den Code-Editor.
Öffnen Sie die Datei „Program.cs“ mit dem Code-Editor:
code Program.cs
Scrollen Sie nach unten zur Methode ConnectToDatabase.
Kommentieren Sie die Zeile aus, die die Anmeldeinformationen für die Verbindung mit MongoDB festlegt, und kommentieren Sie die Anweisungen aus, die die Anmeldeinformationen für die Verbindung mit Cosmos DB angeben. Der Code sollte wie folgt aussehen:
// 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 });
Diese Änderungen sind erforderlich, da die ursprüngliche MongoDB-Datenbank keine SSL-Verbindung verwendet hat. Cosmos DB verwendet immer SSL.
Speichern Sie die Datei, und schließen Sie dann den Code-Editor.
Erstellen Sie die Anwendung neu, und führen Sie sie aus:
dotnet build dotnet run
Geben Sie bei der Eingabeaufforderung Gerätenummer eingeben eine Gerätenummer zwischen 0 und 99 ein. Die Anwendung sollte genau wie zuvor ausgeführt werden, nur dass sie dieses Mal die in der Cosmos DB-Datenbank gespeicherten Daten verwendet.
Verbessern der Abfrageleistung in Cosmos DB
Mit Cosmos DB können Sie weitere Indizes hinzufügen, um die Abfrageleistung zu verbessern. Da wir über „deviceID“ aggregieren, beschleunigt das Hinzufügen dieses Felds als Index Ihre Abfragen.
Kehren Sie zum Azure-Portal zurück.
Wählen Sie auf der linken Seite Daten-Explorer aus.
Erweitern Sie im Bereich Daten-Explorer die Datenbank DeviceData, erweitern Sie die Sammlung Temperaturen, und wählen Sie dann Einstellungen aus.
Wählen Sie Indizierungsrichtlinie aus.
Geben Sie unter _id einen neuen Index ein. Geben Sie dann deviceID für die Definition ein, und wählen Sie Einzelfeld für den Typ aus.
Wählen Sie Speichern aus, um den neuen Index hinzuzufügen.
Kehren Sie zu Ihrer Cloud Shell zurück, um Ihre Abfrage erneut zu versuchen, und beachten Sie die verbesserte Antwort in Ihrer Anwendung.
Testen Sie die Anwendung mit anderen Gerätenummern. Geben Sie zum Beenden Q ein.
Sie haben erfolgreich eine MongoDB-Datenbank zu Cosmos DB migriert und eine vorhandene MongoDB-Anwendung neu konfiguriert, um eine Verbindung mit der neuen Cosmos DB-Datenbank herzustellen.
Bereinigen der von Ihnen erstellten Ressourcen
Wichtig
Wenn Sie diese Schritte in Ihrem persönlichen Abonnement ausgeführt haben, können Sie entweder die Ressourcen einzeln löschen oder durch Löschen der Ressourcengruppe alle Ressourcen löschen. Ressourcen, die weiterhin ausgeführt werden, können Sie Geld kosten.
Führen Sie in Cloud Shell den folgenden Befehl aus, um die Ressourcengruppe zu löschen:
az group delete --name mongodbrg