Share via


Migrar datos a Azure Cosmos DB mediante la herramienta de migración de datos de escritorio

SE APLICA A: NoSQL MongoDB Table

La herramienta de migración de datos de escritorio de Azure Cosmos DB es una aplicación de línea de comandos de código abierto para importar o exportar datos desde Azure Cosmos DB. La herramienta puede migrar datos hacia y desde muchos orígenes y receptores, entre los que se incluyen, entre otros:

  • Azure Cosmos DB para NoSQL
  • Azure Cosmos DB for MongoDB
  • Azure Cosmos DB for Table
  • Azure Table storage
  • JSON
  • MongoDB
  • SQL Server

Importante

En esta guía, realizará una migración de datos de JSON a Azure Cosmos DB for NoSQL.

Requisitos previos

Instalar la herramienta de migración de datos de escritorio

En primer lugar, instale la versión más reciente de la herramienta de migración de datos de escritorio desde el repositorio de GitHub.

Nota:

La herramienta de migración de datos de escritorio requiere .NET 6.0 o posterior en el equipo local.

  1. En el explorador, vaya a la sección Versiones del repositorio: azurecosmosdb/data-migration-desktop-tool/releases.

  2. Descargue la carpeta comprimida más reciente de la plataforma. Hay carpetas comprimidas para las plataformas win-x64, mac-x64 y linux-x64.

  3. Extraiga los archivos en una ubicación de instalación en el equipo local.

  4. (Opcional) Agregue la herramienta de migración de datos de escritorio a la variable de entorno PATH del equipo local.

Prepare el destino de la migración

A continuación, cree una base de datos de destino y un contenedor en la cuenta de Azure Cosmos DB for NoSQL.

  1. Abrir un nuevo terminal. Si aún no lo ha hecho, Inicie sesión en la CLI de Azure.

  2. Cree nuevas variables de shell para el nombre y el grupo de recursos de la cuenta de 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. Cree una base de datos mediante az cosmosdb sql database create. Asigne un nombre a la nueva base de datos cosmicworks y configure la base de datos con 400 RU/s de rendimiento compartido.

    az cosmosdb sql database create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --name cosmicworks \
        --throughput 400
    
  4. Use az cosmosdb sql container create para crear un nuevo contenedor denominado products dentro de la base de datos cosmicworks. Establezca la ruta de acceso de la clave de partición del nuevo contenedor en /category.

    az cosmosdb sql container create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --database-name cosmicworks \
        --name products \
        --partition-key-path "/category"
    
  5. Busque la cadena de conexión principal de la lista de claves de la cuenta con az cosmosdb keys list.

    az cosmosdb keys list \
        --resource-group $resourceGroupName \
        --name $accountName \
        --type connection-strings
    
  6. Registre el valor de la cadena de conexión principal. Esta credencial se usa más adelante al migrar datos con la herramienta.

Realizar una operación de migración

Ahora, migre datos de una matriz JSON al contenedor de Azure Cosmos DB for NoSQL recién creado.

  1. Vaya a un directorio vacío en el equipo local. Dentro de ese directorio, cree un nuevo archivo denominado migrationsettings.json.

  2. En el archivo JSON, cree un nuevo objeto JSON vacío:

    {}
    
  3. Cree una nueva propiedad denominada Source con el valor json. Cree otra nueva propiedad denominada SourceSettings con un objeto vacío como valor.

    {
      "Source": "json",
      "SourceSettings": {}
    }
    
  4. Dentro del objeto SourceSettings, cree una nueva propiedad denominada FilePath con el valor establecido en 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. Cree otra nueva propiedad denominada Sink con el valor cosmos-nosql. Además, cree una propiedad denominada SinkSettings con un objeto vacío.

    {
      "Source": "json",
      "SourceSettings": {
        "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json"
      },
      "Sink": "cosmos-nosql",
      "SinkSettings": {
      }
    }
    
  6. En SinkSettings, cree una propiedad denominada ConnectionString con la cadena de conexión principal que registró anteriormente en esta guía como su 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. Agregue las propiedades Database, Container y PartitionKeyPath con cosmicworks, products y /category como 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. Guarde el archivo migrationsettings.json.

  9. Abra un nuevo terminal y vaya al directorio que contiene el archivo migrationsettings.json.

  10. Ejecute la herramienta de migración de datos de escritorio mediante el comando dmt.

    dmt
    

    Nota

    Si no ha agregado la ruta de instalación a la variable de entorno PATH, es posible que tenga que especificar la ruta de acceso completa al ejecutable dmt.

  11. La herramienta ahora genera los orígenes y receptores usados por la migración.

    Using JSON Source
    Using Cosmos-nosql Sink