Migrar dados para o Azure Cosmos DB usando a ferramenta de migração de dados da área de trabalho
APLICA-SE A: NoSQL
MongoDB
Tabela
A ferramenta de migração de dados da área de trabalho 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 muitas fontes e coletores, incluindo, mas não limitado a:
- Azure Cosmos DB para NoSQL
- Azure Cosmos DB para MongoDB
- Azure Cosmos DB para Tabela
- Armazenamento de Tabelas do Azure
- JSON
- MongoDB
- SQL Server
Importante
Para este guia, você executará uma migração de dados do JSON para o Azure Cosmos DB para NoSQL.
Pré-requisitos
- Uma conta existente do Azure Cosmos DB para NoSQL.
- Se você tiver uma assinatura do Azure, crie uma nova conta.
- Se não tiver uma subscrição 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 posterior.
Instalar a ferramenta de migração de dados da área de trabalho
Primeiro, instale a versão mais recente da ferramenta de migração de dados da área de trabalho a partir do repositório GitHub.
Nota
A ferramenta de migração de dados da área de trabalho requer o .NET 6.0 ou posterior em sua máquina local.
No navegador, navegue até a seção Releases do repositório: azurecosmosdb/data-migration-desktop-tool/releases.
Transfira a pasta comprimida mais recente para a sua plataforma. Existem pastas compactadas para as plataformas win-x64, mac-x64 e linux-x64 .
Extraia os arquivos para um local de instalação em sua máquina local.
(Opcional) Adicione a ferramenta de migração de dados da área de trabalho à
PATH
variável de ambiente da sua máquina local.
Prepare seu destino de migração
Em seguida, crie um banco de dados e um contêiner de destino na conta do Azure Cosmos DB para NoSQL.
Abra um novo terminal. Se ainda não o fez, inicie sessão 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>"
Crie um novo banco de dados usando
az cosmosdb sql database create
o . 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 nomeadoproducts
dentro docosmicworks
banco de dados. 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"
Encontre 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ê usa 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 em sua máquina local. Dentro desse diretório, crie um novo arquivo chamado migrationsettings.json.
Dentro do arquivo JSON, crie um novo objeto JSON vazio:
{}
Crie uma nova propriedade nomeada
Source
com o valorjson
. Crie outra nova propriedade nomeadaSourceSettings
com um objeto vazio como o valor.{ "Source": "json", "SourceSettings": {} }
Dentro do
SourceSettings
objeto, crie uma nova propriedade nomeadaFilePath
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 nomeada
Sink
com o valorcosmos-nosql
. Além disso, crie uma propriedade nomeadaSinkSettings
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": { } }
No ,
SinkSettings
crie uma propriedade nomeadaConnectionString
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
Database
,Container
ePartitionKeyPath
propriedades comcosmicworks
, e/category
como seus valores,products
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 seu arquivo migrationsettings.json .
Execute a ferramenta de migração de dados da área de trabalho usando o
dmt
comando.dmt
Nota
Se você não adicionou o caminho de instalação à variável
PATH
de ambiente, talvez seja necessário especificar o caminho completo para odmt
executável.A ferramenta agora produz as fontes e os coletores usados pela migração.
Using JSON Source Using Cosmos-nosql Sink