Eseguire la migrazione dei dati ad Azure Cosmos DB usando lo strumento di migrazione dei dati desktop
SI APPLICA A: NoSQL MongoDB Tabella
Lo strumento di migrazione dei dati desktop di Azure Cosmos DB è un'applicazione della riga di comando open source per importare o esportare dati da Azure Cosmos DB. Lo strumento può eseguire la migrazione dei dati da e verso molte origini e sink, tra cui, ad esempio:
- Azure Cosmos DB for NoSQL
- Azure Cosmos DB for MongoDB
- Azure Cosmos DB for Table
- Archivio tabelle di Azure
- JSON
- MongoDB
- SQL Server
Importante
Per questa guida si eseguirà una migrazione dei dati da JSON ad Azure Cosmos DB per NoSQL.
Prerequisiti
- Un account Azure Cosmos DB for NoSQL già presente.
- Se si ha una sottoscrizione di Azure, creare un nuovo account.
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- In alternativa, è possibile provare Azure Cosmos DB gratuitamente prima di eseguire il commit.
- Versione più recente dell'interfaccia della riga di comando di Azure.
- .NET 6.0 o versione successiva.
Installare lo strumento di migrazione dei dati desktop
Installare prima di tutto la versione più recente dello strumento di migrazione dei dati desktop dal repository GitHub.
Nota
Lo strumento di migrazione dei dati desktop richiede .NET 6.0 o versione successiva nel computer locale.
Nel browser passare alla sezione Versioni del repository: azurecosmosdb/data-migration-desktop-tool/releases.
Scaricare la cartella compressa più recente per la piattaforma. Sono disponibili cartelle compresse per le piattaforme win-x64, mac-x64 e linux-x64 .
Estrarre i file in un percorso di installazione nel computer locale.
(Facoltativo) Aggiungere lo strumento di migrazione dei dati desktop alla
PATH
variabile di ambiente del computer locale.
Preparare la destinazione della migrazione
Creare quindi un database e un contenitore di destinazione nell'account Azure Cosmos DB per NoSQL.
Aprire un nuovo terminale. Se non è già stato fatto, accedere all'interfaccia della riga di comando di Azure.
Creare nuove variabili della shell per il nome e il gruppo di risorse dell'account Azure Cosmos DB.
# Variable for Azure Cosmos DB account name accountName="<name-of-existing-account>" # Variable for resource group name resourceGroupName="<name-of-existing-resource-group>"
Creare un nuovo database usando
az cosmosdb sql database create
. Assegnare al nuovo databasecosmicworks
il nome e configurare il database con 400 UR/sec di velocità effettiva condivisa.az cosmosdb sql database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name cosmicworks \ --throughput 400
Usare
az cosmosdb sql container create
per creare un nuovo contenitore denominatoproducts
all'interno delcosmicworks
database. Impostare il percorso della chiave di partizione del nuovo contenitore su/category
.az cosmosdb sql container create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name cosmicworks \ --name products \ --partition-key-path "/category"
Trovare il stringa di connessione primario dall'elenco delle chiavi per l'account con
az cosmosdb keys list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type connection-strings
Registrare il valore stringa di connessione primario. Questa credenziale viene usata in un secondo momento durante la migrazione dei dati con lo strumento .
Eseguire un'operazione di migrazione
Eseguire ora la migrazione dei dati da una matrice JSON al contenitore Azure Cosmos DB per NoSQL appena creato.
Passare a una directory vuota nel computer locale. All'interno di tale directory creare un nuovo file denominato migrationsettings.json.
All'interno del file JSON creare un nuovo oggetto JSON vuoto:
{}
Creare una nuova proprietà denominata
Source
con il valorejson
. Creare un'altra nuova proprietà denominataSourceSettings
con un oggetto vuoto come valore.{ "Source": "json", "SourceSettings": {} }
All'interno dell'oggetto
SourceSettings
creare una nuova proprietà denominataFilePath
con il valore impostato su questo URI: https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" } }
Creare un'altra nuova proprietà denominata
Sink
con il valorecosmos-nosql
. Creare inoltre una proprietà denominataSinkSettings
con un oggetto vuoto.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { } }
In
SinkSettings
creare una proprietà denominataConnectionString
con il stringa di connessione primario registrato in precedenza in questa guida come valore.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { "ConnectionString": "<connection-string-for-existing-account>" } }
Aggiungere
Database
le proprietà ,Container
ePartitionKeyPath
rispettivamente concosmicworks
,products
e/category
come valori.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { "ConnectionString": "<connection-string-for-existing-account>", "Database": "cosmicworks", "Container": "products", "PartitionKeyPath": "/category" } }
Salvare il file migrationsettings.json .
Aprire un nuovo terminale e passare alla directory contenente il file migrationsettings.json .
Eseguire lo strumento di migrazione dei dati desktop usando il
dmt
comando .dmt
Nota
Se non è stato aggiunto il percorso di installazione alla
PATH
variabile di ambiente, potrebbe essere necessario specificare il percorso completo deldmt
file eseguibile.Lo strumento restituisce ora le origini e i sink usati dalla migrazione.
Using JSON Source Using Cosmos-nosql Sink