Offlinemigration von MongoDB zu Azure Cosmos DB for MongoDB vCore mithilfe nativer MongoDB-Tools
GILT FÜR: MongoDB-vCore
In diesem Tutorial verwenden Sie native MongoDB-Tools, um eine (einmalige) Offlinemigration einer Datenbank aus einer lokalen oder cloudbasierten MongoDB-Instanz zu Azure Cosmos DB for MongoDB vCore durchzuführen. Bei den nativen MongoDB-Tools handelt es sich um Binärdateien zur Vereinfachung der Datenbearbeitung für eine vorhandene MongoDB-Instanz. Der Schwerpunkt dieses Dokuments liegt auf der Migration von Daten aus einer MongoDB-Instanz mithilfe von mongoexport/mongoimport oder mongodump/mongorestore. Da die nativen Tools die Verbindung mit MongoDB über Verbindungszeichenfolgen herstellen, können Sie die Tools überall ausführen. Die nativen Tools können die einfachste Lösung für kleine Datasets darstellen, bei denen die Migrationszeit insgesamt keine große Rolle spielt.
Voraussetzungen
- Ein vorhandener Azure Cosmos DB for MongoDB-vCore-Cluster.
- Falls Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
- Wenn Sie über ein Azure-Abonnement verfügen, erstellen Sie einen neuen Azure Cosmos DB for MongoDB vCore Cluster.
- Installation nativer MongoDB-Tools auf Ihrem Computer.
Vorbereiten
Stellen Sie vor Beginn der Migration sicher, dass Sie Ihr Azure Cosmos DB for MongoDB vCore-Konto und Ihre vorhandene MongoDB-Instanz für die Migration vorbereitet haben.
- MongoDB-Instanz (Quelle)
- Führen Sie die Bewertung vor der Migration aus, um festzustellen, ob eine Reihe von Inkompatibilitäten und Warnungen zwischen Ihrer Quellinstanz und dem Zielkonto vorliegt.
- Stellen Sie sicher, dass Ihre nativen MongoDB-Tools der Version der vorhandenen MongoDB-Instanz (Quelle) entsprechen.
- Sollte sich die Version Ihrer MongoDB-Instanz von der Azure Cosmos DB for MongoDB vCore-Version unterscheiden, installieren Sie beide Versionen der nativen MongoDB-Tools, und verwenden Sie die jeweilige Toolversion für MongoDB bzw. Azure Cosmos DB for MongoDB vCore.
- Fügen Sie einen Benutzer mit Berechtigungen vom Typ
readWrite
hinzu, sofern noch keiner vorhanden ist. Sie verwenden diese Anmeldeinformationen letztlich mit den Tools mongoexport und mongodump.
- Azure Cosmos DB for MongoDB vCore (Ziel)
- Sammeln Sie die Anmeldeinformationen des Azure Cosmos DB for MongoDB vCore-Kontos.
- Konfigurieren Sie die Firewalleinstellungen in Azure Cosmos DB for MongoDB vCore.
Tipp
Es wird empfohlen, diese Tools in demselben Netzwerk wie die MongoDB-Instanz auszuführen, um weitere Firewallprobleme zu vermeiden.
Auswählen des passenden nativen MongoDB-Tools
Es gibt einige allgemeine Überlegungen zur Auswahl des richtigen nativen MongoDB-Tools für Ihre Offlinemigration.
Durchführen der Migration
Migrieren Sie eine Sammlung aus der Quell-MongoDB-Instanz mit Ihrem bevorzugten nativen Tool zum Azure Cosmos DB for MongoDB vCore-Zielkonto. Weitere Informationen zur Auswahl eines Tools finden Sie unter Native MongoDB-Tools.
Tipp
Wenn Sie einfach nur eine kleine JSON-Datei in Azure Cosmos DB for MongoDB vCore importieren möchten, können Sie das Tool mongoimport zur schnellen Erfassung der Daten verwenden.
Öffnen Sie ein Terminal, und verwenden Sie eine beliebige der hier aufgeführten drei Methoden, um die Daten aus der MongoDB-Quellinstanz zu exportieren.
Geben Sie die Argumente
--host
,--username
und--password
an, um eine Verbindung herzustellen und JSON-Datensätze zu exportieren.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --out <filename>.json
Exportieren Sie eine Teilmenge der MongoDB-Daten, indem Sie ein
--query
-Argument hinzufügen. Dieses Argument stellt sicher, dass das Tool nur Dokumente exportiert, die dem Filter entsprechen.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
Exportieren Sie Daten aus Azure Cosmos DB for MongoDB vCore.
mongoexport \ --uri <target-connection-string> --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
Importieren Sie die zuvor exportierte Datei in das Azure Cosmos DB for MongoDB vCore-Zielkonto.
mongoimport \ --file <filename>.json \ --type json \ --db <database-name> \ --collection <collection-name> \ --ssl \ --uri <target-connection-string>
Überwachen Sie die Terminalausgabe von mongoimport. Die Ausgabe im Terminal besteht aus Textzeilen mit Aktualisierungen zum Status des Importvorgangs.