Share via


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

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.

  1. No navegador, navegue até a seção Releases do repositório: azurecosmosdb/data-migration-desktop-tool/releases.

  2. Transfira a pasta comprimida mais recente para a sua plataforma. Existem pastas compactadas para as plataformas win-x64, mac-x64 e linux-x64.

  3. Extraia os arquivos para um local de instalação em sua máquina local.

  4. (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.

  1. Abra um novo terminal. Se ainda não o fez, inicie sessão na CLI do Azure.

  2. 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>"
    
  3. Crie um novo banco de dados usando az cosmosdb sql database createo . Nomeie o novo banco de dados e configure o banco de dados com 400 RU/s de taxa de cosmicworks transferência compartilhada.

    az cosmosdb sql database create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --name cosmicworks \
        --throughput 400
    
  4. Use az cosmosdb sql container create para criar um novo contêiner nomeado products dentro do cosmicworks 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"
    
  5. 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
    
  6. 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.

  1. Navegue até um diretório vazio em sua máquina local. Dentro desse diretório, crie um novo arquivo chamado migrationsettings.json.

  2. Dentro do arquivo JSON, crie um novo objeto JSON vazio:

    {}
    
  3. Crie uma nova propriedade nomeada Source com o valor json. Crie outra nova propriedade nomeada SourceSettings com um objeto vazio como o valor.

    {
      "Source": "json",
      "SourceSettings": {}
    }
    
  4. Dentro do SourceSettings objeto, crie uma nova propriedade nomeada FilePath 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"
      }
    }
    
  5. Crie outra nova propriedade nomeada Sink com o valor cosmos-nosql. Além disso, crie uma propriedade nomeada SinkSettings 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": {
      }
    }
    
  6. No , SinkSettingscrie uma propriedade nomeada ConnectionString 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>"
      }
    }
    
  7. Adicione Database, e propriedades com cosmicworks, Containere PartitionKeyPath/category como seus valores, productsrespectivamente.

    {
      "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"
      }
    }
    
  8. Salve o arquivo migrationsettings.json .

  9. Abra um novo terminal e navegue até o diretório que contém o arquivo migrationsettings.json .

  10. 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 o dmt executável.

  11. A ferramenta agora produz as fontes e os coletores usados pela migração.

    Using JSON Source
    Using Cosmos-nosql Sink