Migración de los datos a una cuenta de Table API de Azure Cosmos DB
SE APLICA A:
Table API
En este tutorial se proporcionan instrucciones sobre cómo importar datos para su uso con Table API de Azure Cosmos DB. Si tiene datos almacenados en Azure Table Storage, puede usar la Herramienta de migración de datos o AzCopy para importar los datos en Table API de Azure Cosmos DB.
En este tutorial se describen las tareas siguientes:
- Importación de datos con la herramienta de migración de datos
- Importación de datos con AzCopy
Requisitos previos
Aumento del rendimiento: la duración de la migración de datos depende de la cantidad de rendimiento configurado para un solo contenedor o un conjunto de contenedores. Asegúrese de aumentar el rendimiento para migraciones de datos más grandes. Después de haber completado la migración, reduzca el rendimiento para ahorrar costos.
Cree recursos de Azure Cosmos DB: antes de comenzar la migración de datos, cree todas las tablas desde Azure Portal. Si va a migrar a una cuenta de Azure Cosmos DB con rendimiento de nivel de base de datos, asegúrese de proporcionar una clave de partición al crear las tablas de Azure Cosmos DB.
Herramienta de migración de datos
Puede usar la herramienta de migración de datos de la línea de comandos (dt.exe) en Azure Cosmos DB para importar los datos existentes de Azure Table Storage en una cuenta de Table API.
Para migrar datos de tabla:
Descargue la herramienta de migración de GitHub.
Ejecute
dt.execon los argumentos de la línea de comandos para su escenario.dt.exetoma un comando con el formato siguiente:dt.exe [/<option>:<value>] /s:<source-name> [/s.<source-option>:<value>] /t:<target-name> [/t.<target-option>:<value>]
Las opciones admitidas para este comando son:
- /ErrorLog: Opcional. Nombre del archivo CSV al que se redirigirán los errores de transferencia de datos.
- /OverwriteErrorLog: Opcional. Sobrescribe el archivo de registro de errores.
- /ProgressUpdateInterval: opcional, el valor predeterminado es
00:00:01. Tiempo necesario para actualizar el progreso de la transferencia de datos en pantalla. - /ErrorDetails: opcional, el valor predeterminado es
None. Especifica que se debe mostrar información de error detallada para los siguientes errores:None,CriticaloAll. - /EnableCosmosTableLog: Opcional. Dirija el registro a una cuenta de Table de Azure Cosmos DB. Si está establecido, el valor predeterminado es la cadena de conexión de la cuenta de destino, a menos que también se proporcione
/CosmosTableLogConnectionString. Esto resulta útil si se ejecutan varias instancias de la herramienta simultáneamente. - /CosmosTableLogConnectionString: Opcional. La cadena de conexión para dirigir el registro a una cuenta de Table de Azure Cosmos DB remota.
Configuración del origen de la línea de comandos
Utilice las siguientes opciones de origen al definir Azure Table Storage como origen de la migración.
- /s:AzureTable: lee los datos de Azure Table Storage.
- /s.ConnectionString: Cadena de conexión para el punto de conexión de tabla. Puede recuperarlo de Azure Portal.
- /s.LocationMode: opcional, el valor predeterminado es
PrimaryOnly. Especifica el modo de ubicación que se va a usar al conectarse a Table Storage:PrimaryOnly,PrimaryThenSecondary,SecondaryOnlyoSecondaryThenPrimary. - /s.Table: nombre de la tabla de Azure.
- /s.InternalFields: se establece en
Allpara la migración de tablas, ya queRowKeyyPartitionKeyson campos necesarios para la importación. - /s.Filter: Opcional. Cadena de filtro que se va a aplicar.
- /s.Projection: Opcional. Lista de columnas que se va a seleccionar.
Para recuperar la cadena de conexión de origen al importar desde Table Storage, abra Azure Portal. Seleccione Cuentas de almacenamiento > Cuenta > Claves de acceso y copie la cadena de conexión.
Configuración del destino de la línea de comandos
Utilice las siguientes opciones de destino al definir Table API de Azure Cosmos DB como destino de la migración.
- /t: TableAPIBulk: carga los datos por lotes en Table API de Azure Cosmos DB.
- /t.ConnectionString: cadena de conexión para el punto de conexión de tabla.
- /t.TableName: especifica el nombre de la tabla en la que se va a escribir.
- /t.Overwrite: opcional, el valor predeterminado es
false. Especifica si se deben sobrescribir los valores existentes. - /t.MaxInputBufferSize: opcional, el valor predeterminado es
1GB. Estimación aproximada de bytes de entrada que se almacenarán en búfer antes de vaciar los datos en el receptor. - /t.Throughput: Opcional, los valores predeterminados de servicio si no se especifican. Especifica el rendimiento que se va a configurar para la tabla.
- /t.MaxBatchSize: opcional, el valor predeterminado es
2MB. Especifica el tamaño del lote en bytes.
Comando de ejemplo: el origen es Table Storage.
A continuación se muestra un ejemplo de línea de comandos para importar desde Table Storage a Table API:
dt /s:AzureTable /s.ConnectionString:DefaultEndpointsProtocol=https;AccountName=<Azure Table storage account name>;AccountKey=<Account Key>;EndpointSuffix=core.windows.net /s.Table:<Table name> /t:TableAPIBulk /t.ConnectionString:DefaultEndpointsProtocol=https;AccountName=<Azure Cosmos DB account name>;AccountKey=<Azure Cosmos DB account key>;TableEndpoint=https://<Account name>.table.cosmos.azure.com:443 /t.TableName:<Table name> /t.Overwrite
Migración de datos mediante AzCopy
También puede usar la utilidad de la línea de comandos AzCopy para migrar los datos de Table Storage a Table API de Azure Cosmos DB. Para usar AzCopy, primero se exportan los datos como se describe en Exportación de datos desde Table Storage. A continuación, importe los datos a Table API de Azure Cosmos DB con el siguiente comando. También puede importar en Azure Table Storage.
Consulte el siguiente ejemplo cuando vaya a importar en Azure Cosmos DB. Recuerde que el valor /Dest usa cosmosdb y no core.
Comando de importación de ejemplo:
AzCopy /Source:C:\myfolder\ /Dest:https://myaccount.table.cosmosdb.windows.net/mytable1/ /DestKey:key /Manifest:"myaccount_mytable_20140103T112020.manifest" /EntityOperation:InsertOrReplace
Pasos siguientes
Aprenda a consultar datos con Table API de Azure Cosmos DB.