Eseguire la migrazione offline di MongoDB ad Azure Cosmos DB for MongoDB vCore usando gli strumenti nativi di MongoDB
SI APPLICA A: MongoDB vCore
In questa esercitazione si usano gli strumenti nativi di MongoDB per eseguire una migrazione offline (una tantum) di un database da un'istanza locale o da un cloud di MongoDB ad Azure Cosmos DB for MongoDB vCore. Gli strumenti nativi di MongoDB sono un set di file binari che facilitano la manipolazione dei dati in un'istanza di MongoDB esistente. L'obiettivo di questo documento è eseguire la migrazione dei dati da un'istanza di MongoDB usando gli strumentimongoexport/mongoimport o mongodump/mongorestore. Poiché gli strumenti nativi si connettono a MongoDB usando le stringhe di connessione, è possibile eseguire gli strumenti ovunque. Tali strumenti possono essere la soluzione più semplice per i set di dati di piccole dimensioni in cui il tempo di migrazione totale non è un problema.
Prerequisiti
- Un cluster Azure Cosmos DB for MongoDB vCore esistente.
- Se non si ha una sottoscrizione di Azure, creare un account gratuitamente.
- Se si ha una sottoscrizione di Azure esistente, creare un nuovo cluster Azure Cosmos DB for MongoDB vCore.
- Strumenti nativi di MongoDB installati nel computer.
Preparazione
Prima di avviare la migrazione, assicurarsi di aver preparato l'account Azure Cosmos DB for MongoDB vCore e l'istanza esistente di MongoDB per la migrazione.
- Istanza di MongoDB (origine)
- Completare la valutazione di pre-migrazione per determinare se sono presenti incompatibilità e avvisi tra l'istanza di origine e l'account di destinazione.
- Assicurarsi che gli strumenti nativi di MongoDB corrispondano alla stessa versione dell'istanza di MongoDB esistente (origine).
- Se l'istanza di MongoDB ha una versione diversa da quella di Azure Cosmos DB for MongoDB vCore, installare entrambe le versioni degli strumenti nativi di MongoDB e usare la versione appropriata rispettivamente per MongoDB e Azure Cosmos DB for MongoDB vCore.
- Aggiungere un utente con autorizzazioni
readWrite
, se non ne esiste già uno. Questa credenziale verrà usata con gli strumenti mongoexport e mongodump.
- Azure Cosmos DB for MongoDB vCore (destinazione)
- Raccogliere le credenziali dell'account Azure Cosmos DB for MongoDB vCore.
- Configurare le impostazioni del firewall in Azure Cosmos DB for MongoDB vCore.
Suggerimento
È consigliabile eseguire questi strumenti nella stessa rete dell'istanza di MongoDB per evitare ulteriori problemi del firewall.
Scegliere lo strumento nativo di MongoDB appropriato
Quando si sceglie lo strumento nativo di MongoDB appropriato per la migrazione offline, è necessario tenere presenti alcune considerazioni generali.
Eseguire la migrazione
Eseguire la migrazione di una raccolta dall'istanza di MongoDB di origine all'account Azure Cosmos DB for MongoDB vCore di destinazione usando lo strumento nativo preferito. Per altre informazioni sulla scelta di uno strumento, vedere Strumenti MongoDB nativi
Suggerimento
Se si ha semplicemente un file JSON di piccole dimensioni da importare in Azure Cosmos DB for MongoDB vCore, lo strumento mongoimport rappresenta una soluzione rapida per l'inserimento dei dati.
Per esportare i dati dall'istanza di MongoDB di origine, aprire un terminale e usare uno dei tre metodi elencati qui.
Specificare gli argomenti
--host
,--username
e--password
per connettersi ed esportare record JSON.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --out <filename>.json
Esportare un subset dei dati di MongoDB aggiungendo un argomento
--query
. Questo argomento garantisce che lo strumento esporti solo i documenti che corrispondono al filtro.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
Esportare i dati da Azure Cosmos DB for MongoDB vCore.
mongoexport \ --uri <target-connection-string> --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
Importare il file esportato in precedenza nell'account Azure Cosmos DB for MongoDB vCore di destinazione.
mongoimport \ --file <filename>.json \ --type json \ --db <database-name> \ --collection <collection-name> \ --ssl \ --uri <target-connection-string>
Monitorare l'output del terminale da mongoimport. Nel terminale vengono visualizzate righe di testo con gli aggiornamenti sullo stato dell'importazione.