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
- Una cuenta existente de Azure Cosmos DB for NoSQL.
- Si tiene una suscripción de Azure, cree una nueva cuenta.
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Como alternativa, puede probar Azure Cosmos DB gratis antes de confirmarlo.
- Versión más reciente de la CLI de Azure.
- .NET 6.0 o posterior.
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.
En el explorador, vaya a la sección Versiones del repositorio: azurecosmosdb/data-migration-desktop-tool/releases.
Descargue la carpeta comprimida más reciente de la plataforma. Hay carpetas comprimidas para las plataformas win-x64, mac-x64 y linux-x64.
Extraiga los archivos en una ubicación de instalación en el equipo local.
(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.
Abrir un nuevo terminal. Si aún no lo ha hecho, Inicie sesión en la CLI de Azure.
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>"
Cree una base de datos mediante
az cosmosdb sql database create
. Asigne un nombre a la nueva base de datoscosmicworks
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
Use
az cosmosdb sql container create
para crear un nuevo contenedor denominadoproducts
dentro de la base de datoscosmicworks
. 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"
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
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.
Vaya a un directorio vacío en el equipo local. Dentro de ese directorio, cree un nuevo archivo denominado migrationsettings.json.
En el archivo JSON, cree un nuevo objeto JSON vacío:
{}
Cree una nueva propiedad denominada
Source
con el valorjson
. Cree otra nueva propiedad denominadaSourceSettings
con un objeto vacío como valor.{ "Source": "json", "SourceSettings": {} }
Dentro del objeto
SourceSettings
, cree una nueva propiedad denominadaFilePath
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" } }
Cree otra nueva propiedad denominada
Sink
con el valorcosmos-nosql
. Además, cree una propiedad denominadaSinkSettings
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": { } }
En
SinkSettings
, cree una propiedad denominadaConnectionString
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>" } }
Agregue las propiedades
Database
,Container
yPartitionKeyPath
concosmicworks
,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" } }
Guarde el archivo migrationsettings.json.
Abra un nuevo terminal y vaya al directorio que contiene el archivo migrationsettings.json.
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 ejecutabledmt
.La herramienta ahora genera los orígenes y receptores usados por la migración.
Using JSON Source Using Cosmos-nosql Sink