Migre os dados para o Azure Cosmos DB usando a ferramenta de migração de dados para desktop
APLICA-SE AO: NoSQL MongoDB Table
A ferramenta de migração de dados para desktop do Azure Cosmos DB é um aplicativo de linha de comando de código aberto para importar ou exportar dados do Azure Cosmos DB. A ferramenta pode migrar dados de e para várias fontes e coletores, incluindo, mas não se limitando a:
- Azure Cosmos DB para NoSQL
- Azure Cosmos DB for MongoDB
- Azure Cosmos DB for Table
- Armazenamento da tabela do Azure
- JSON
- MongoDB
- SQL Server
Importante
Para este guia, você realizará uma migração de dados do JSON para o Azure Cosmos DB for NoSQL.
Pré-requisitos
- Uma conta do Azure Cosmos DB for NoSQL.
- Se você tiver uma assinatura do Azure, crie uma nova conta.
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Como alternativa, você pode experimentar o Azure Cosmos DB gratuitamente antes de confirmar.
- Versão mais recente da CLI do Azure.
- .NET 6.0 ou mais recente.
Instale a ferramenta de migração de dados para desktop
Primeiro, instale a versão mais recente da ferramenta de migração de dados para desktop a partir do repositório GitHub.
Observação
A ferramenta de migração de dados para desktop requer o .NET 6.0 ou posterior em seu computador local.
No navegador, vá até a seção Versões do repositório: azurecosmosdb/data-migration-desktop-tool/releases.
Baixe a pasta compactada mais recente para sua plataforma. Há pastas compactadas para as plataformas win-x64, mac-x64 e linux-x64 .
Extraia os arquivos para um local de instalação em seu computador local.
(Opcional) Adicione a ferramenta de migração de dados para desktop à variável de ambiente
PATH
do seu computador local.
Prepare seu destino de migração
Em seguida, crie um banco de dados de destino e um contêiner na conta do Azure Cosmos DB for NoSQL.
Abrir um novo Terminal. Se você ainda não fez isso, entre na CLI do Azure.
Crie novas variáveis de shell para o nome e o grupo de recursos da conta do 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>"
Criar um novo banco de dados usando
az cosmosdb sql database create
. Nomeie o novo banco de dadoscosmicworks
e configure o banco de dados com 400 RU/s de taxa de transferência compartilhada.az cosmosdb sql database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name cosmicworks \ --throughput 400
Use
az cosmosdb sql container create
para criar um novo contêiner chamadoproducts
dentro do banco de dadoscosmicworks
. Defina o caminho da chave de partição do novo contêiner como/category
.az cosmosdb sql container create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name cosmicworks \ --name products \ --partition-key-path "/category"
Localize a cadeia de conexão primária na lista de chaves da conta com
az cosmosdb keys list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type connection-strings
Registre o valor da cadeia de conexão primária. Você usará essa credencial posteriormente ao migrar dados com a ferramenta.
Executar uma operação de migração
Agora, migre dados de uma matriz JSON para o contêiner recém-criado do Azure Cosmos DB for NoSQL.
Navegue até um diretório vazio no seu computador local. Nesse diretório, crie um novo arquivo chamado migrationsettings.json.
No arquivo JSON, crie um novo objeto JSON vazio:
{}
Crie uma nova propriedade chamada
Source
com o valorjson
. Crie outra nova propriedade chamadaSourceSettings
com um objeto vazio como valor.{ "Source": "json", "SourceSettings": {} }
No objeto
SourceSettings
, crie uma nova propriedade chamadaFilePath
com o valor definido para este 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" } }
Crie outra nova propriedade chamada
Sink
com o valorcosmos-nosql
. Além disso, crie uma propriedade chamadaSinkSettings
com um objeto vazio.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { } }
Em
SinkSettings
, crie uma propriedade chamadaConnectionString
com a cadeia de conexão primária que você registrou anteriormente neste guia como seu valor.{ "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>" } }
Adicione as propriedades
Database
,Container
ePartitionKeyPath
comcosmicworks
,products
e/category
como seus valores, respectivamente.{ "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" } }
Salve o arquivo migrationsettings.json.
Abra um novo terminal e navegue até o diretório que contém o arquivo migrationsettings.json.
Execute a ferramenta de migração de dados para desktop usando o comando
dmt
.dmt
Observação
Se você não adicionou o caminho de instalação à sua variável de ambiente
PATH
, talvez seja necessário especificar o caminho completo para o executáveldmt
.A ferramenta agora gera as fontes e coletores usados pela migração.
Using JSON Source Using Cosmos-nosql Sink