Compartilhar via


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

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.

  1. No navegador, vá até a seção Versões do repositório: azurecosmosdb/data-migration-desktop-tool/releases.

  2. Baixe a pasta compactada mais recente para sua plataforma. Há pastas compactadas para as plataformas win-x64, mac-x64 e linux-x64 .

  3. Extraia os arquivos para um local de instalação em seu computador local.

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

  1. Abrir um novo Terminal. Se você ainda não fez isso, entre 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. Criar um novo banco de dados usando az cosmosdb sql database create. Nomeie o novo banco de dados cosmicworks 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
    
  4. Use az cosmosdb sql container create para criar um novo contêiner chamado products dentro do banco de dados cosmicworks. 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. 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
    
  6. 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.

  1. Navegue até um diretório vazio no seu computador local. Nesse diretório, crie um novo arquivo chamado migrationsettings.json.

  2. No arquivo JSON, crie um novo objeto JSON vazio:

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

    {
      "Source": "json",
      "SourceSettings": {}
    }
    
  4. No objeto SourceSettings, crie uma nova propriedade chamada 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 chamada Sink com o valor cosmos-nosql. Além disso, crie uma propriedade chamada 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. Em SinkSettings, crie uma propriedade chamada 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 as propriedades Database, Container e PartitionKeyPath com cosmicworks, 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"
      }
    }
    
  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 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ável dmt.

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

    Using JSON Source
    Using Cosmos-nosql Sink