Tutorial: Use la herramienta de migración de datos para migrar los datos a Azure Cosmos DBTutorial: Use Data migration tool to migrate your data to Azure Cosmos DB

En este tutorial, se muestra cómo usar la herramienta de migración de datos de Azure Cosmos DB, que puede importar datos desde diversos orígenes a contenedores y tablas de Azure Cosmos.This tutorial provides instructions on using the Azure Cosmos DB Data Migration tool, which can import data from various sources into Azure Cosmos containers and tables. Puede importar archivos JSON, archivos CSV, SQL, MongoDB, Azure Table Storage, Amazon DynamoDB e incluso colecciones de SQL API de Azure Cosmos DB.You can import from JSON files, CSV files, SQL, MongoDB, Azure Table storage, Amazon DynamoDB, and even Azure Cosmos DB SQL API collections. Puede migrar esos datos a colecciones y tablas para usarlos con Azure Cosmos DB.You migrate that data to collections and tables for use with Azure Cosmos DB. También se puede utilizar la herramienta de migración de datos al migrar de una colección de partición única a una colección de varias particiones de la API de SQL.The Data Migration tool can also be used when migrating from a single partition collection to a multi-partition collection for the SQL API.

¿Qué API se va a usar con Azure Cosmos DB?Which API are you going to use with Azure Cosmos DB?

En este tutorial se describen las tareas siguientes:This tutorial covers the following tasks:

  • Instalación de la herramienta de migración de datosInstalling the Data Migration tool
  • Importación de datos de orígenes de datos diferentesImporting data from different data sources
  • Exportación desde Azure Cosmos DB a JSONExporting from Azure Cosmos DB to JSON

Requisitos previosPrerequisites

Antes de seguir las instrucciones de este artículo, asegúrese de realizar los siguientes pasos:Before following the instructions in this article, ensure that you do the following steps:

  • Instale Microsoft .NET Framework 4.51 o superior.Install Microsoft .NET Framework 4.51 or higher.

  • Aumento del rendimiento: la duración de la migración de datos depende de la cantidad de rendimiento configurado para una sola colección o un conjunto de colecciones.Increase throughput: The duration of your data migration depends on the amount of throughput you set up for an individual collection or a set of collections. Asegúrese de aumentar el rendimiento para migraciones de datos más grandes.Be sure to increase the throughput for larger data migrations. Después de haber completado la migración, reduzca el rendimiento para ahorrar costos.After you've completed the migration, decrease the throughput to save costs. Para más información acerca de cómo aumentar el rendimiento en Azure Portal, consulte Niveles de rendimiento y planes de tarifa de Azure Cosmos DB.For more information about increasing throughput in the Azure portal, see performance levels and pricing tiers in Azure Cosmos DB.

  • Creación de recursos de Azure Cosmos DB: antes de comenzar la migración de datos, cree previamente todas las colecciones desde Azure Portal.Create Azure Cosmos DB resources: Before you start the migrating data, pre-create all your collections from the Azure portal. Para migrar a una cuenta de Azure Cosmos DB que tiene un rendimiento de nivel de base de datos, proporcione una clave de partición al crear los contenedores de Azure Cosmos DB.To migrate to an Azure Cosmos DB account that has database level throughput, provide a partition key when you create the Azure Cosmos containers.

Información generalOverview

La herramienta de migración de datos es una solución de código abierto que importa datos a Azure Cosmos DB desde una variedad de orígenes, como:The Data Migration tool is an open-source solution that imports data to Azure Cosmos DB from a variety of sources, including:

  • Archivos JSONJSON files
  • MongoDBMongoDB
  • SQL ServerSQL Server
  • Archivos CSVCSV files
  • Almacenamiento de tablas de AzureAzure Table storage
  • Amazon DynamoDBAmazon DynamoDB
  • HBaseHBase
  • Contenedores de Azure CosmosAzure Cosmos containers

Aunque la herramienta de importación incluye una interfaz gráfica de usuario (dtui.exe), también se puede controlar desde la línea de comandos (dt.exe).While the import tool includes a graphical user interface (dtui.exe), it can also be driven from the command-line (dt.exe). De hecho, hay una opción para mostrar el comando asociado después de configurar una importación a través de la interfaz de usuario.In fact, there's an option to output the associated command after setting up an import through the UI. Puede transformar datos tabulares de origen (por ejemplo, archivos de SQL Server o CSV) para crear relaciones jerárquicas (subdocumentos) durante la importación.You can transform tabular source data, such as SQL Server or CSV files, to create hierarchical relationships (subdocuments) during import. Siga leyendo para más información acerca de las opciones de origen, los comandos de ejemplo para importar desde cada origen, las opciones de destino y la visualización de los resultados de la importación.Keep reading to learn more about source options, sample commands to import from each source, target options, and viewing import results.

InstalaciónInstallation

El código fuente de la herramienta de migración está disponible en GitHub en este repositorio.The migration tool source code is available on GitHub in this repository. Puede descargar y compilar la solución de manera local o bien descargar un binario precompilado y, después, ejecutar cualquiera de las siguientes:You can download and compile the solution locally, or download a pre-compiled binary, then run either:

  • Dtui.exe: versión de interfaz gráfica de la herramientaDtui.exe: Graphical interface version of the tool
  • Dt.exe: versión de línea de comandos de la herramientaDt.exe: Command-line version of the tool

Selección de origen de datosSelect data source

Una vez que haya instalado la herramienta, es el momento de importar los datos.Once you've installed the tool, it's time to import your data. ¿Qué tipo de datos desea importar?What kind of data do you want to import?

Importación de archivos JSONImport JSON files

La opción del importador de origen de archivos JSON permite importar uno o varios archivos JSON de un único documento o archivos JSON que tengan cada uno una matriz de documentos JSON.The JSON file source importer option allows you to import one or more single document JSON files or JSON files that each have an array of JSON documents. Cuando se agregan carpetas que contienen archivos JSON que se van a importar, existe la opción de buscar archivos en subcarpetas de forma recursiva.When adding folders that have JSON files to import, you have the option of recursively searching for files in subfolders.

Captura de pantalla de opciones de origen de archivos JSON: herramientas de migración de base de datos

La cadena de conexión tiene el formato siguiente:The connection string is in the following format:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>

  • <CosmosDB Endpoint> es el URI del punto de conexión.The <CosmosDB Endpoint> is the endpoint URI. Puede encontrar este valor en Azure Portal.You can get this value from the Azure portal. Vaya a la cuenta de Azure Cosmos.Navigate to your Azure Cosmos account. Abra el panel Introducción y copie el valor URI.Open the Overview pane and copy the URI value.
  • <AccountKey> es la "Contraseña" o CLAVE PRINCIPAL.The <AccountKey> is the "Password" or PRIMARY KEY. Puede encontrar este valor en Azure Portal.You can get this value from the Azure portal. Vaya a la cuenta de Azure Cosmos.Navigate to your Azure Cosmos account. Abra el panel Cadenas de conexión o Claves y copie el valor de "Contraseña" o CLAVE PRINCIPAL.Open the Connection Strings or Keys pane, and copy the "Password" or PRIMARY KEY value.
  • <CosmosDB Database> es el nombre de la base de datos de CosmosDB.The <CosmosDB Database> is the CosmosDB database name.

Ejemplo: AccountEndpoint=https://myCosmosDBName.documents.azure.com:443/;AccountKey=wJmFRYna6ttQ79ATmrTMKql8vPri84QBiHTt6oinFkZRvoe7Vv81x9sn6zlVlBY10bEPMgGM982wfYXpWXWB9w==;Database=myDatabaseNameExample: AccountEndpoint=https://myCosmosDBName.documents.azure.com:443/;AccountKey=wJmFRYna6ttQ79ATmrTMKql8vPri84QBiHTt6oinFkZRvoe7Vv81x9sn6zlVlBY10bEPMgGM982wfYXpWXWB9w==;Database=myDatabaseName

Nota

Use el comando Verify para asegurarse de que se puede tener acceso a la cuenta de Cosmos DB especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the Cosmos DB account specified in the connection string field can be accessed.

Estos son algunos ejemplos de la línea de comandos para importar archivos JSON:Here are some command-line samples to import JSON files:

#Import a single JSON file
dt.exe /s:JsonFile /s.Files:.\Sessions.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Sessions /t.CollectionThroughput:2500

#Import a directory of JSON files
dt.exe /s:JsonFile /s.Files:C:\TESessions\*.json /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Sessions /t.CollectionThroughput:2500

#Import a directory (including sub-directories) of JSON files
dt.exe /s:JsonFile /s.Files:C:\LastFMMusic\**\*.json /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Music /t.CollectionThroughput:2500

#Import a directory (single), directory (recursive), and individual JSON files
dt.exe /s:JsonFile /s.Files:C:\Tweets\*.*;C:\LargeDocs\**\*.*;C:\TESessions\Session48172.json;C:\TESessions\Session48173.json;C:\TESessions\Session48174.json;C:\TESessions\Session48175.json;C:\TESessions\Session48177.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:subs /t.CollectionThroughput:2500

#Import a single JSON file and partition the data across 4 collections
dt.exe /s:JsonFile /s.Files:D:\\CompanyData\\Companies.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:comp[1-4] /t.PartitionKey:name /t.CollectionThroughput:2500

Importación desde MongoDBImport from MongoDB

Importante

Si va a importar a una cuenta de Cosmos configurada con la API de Azure Cosmos DB para MongoDB, siga estas instrucciones.If you're importing to a Cosmos account configured with Azure Cosmos DB's API for MongoDB, follow these instructions.

Con la opción del importador de origen de MongoDB puede importar desde una colección de MongoDB individual y, opcionalmente, filtrar documentos mediante una consulta o modificar la estructura del documento con una proyección.With the MongoDB source importer option, you can import from a single MongoDB collection, optionally filter documents using a query, and modify the document structure by using a projection.

Captura de pantalla de las opciones de origen de MongoDB

La cadena de conexión tiene el formato estándar de MongoDB:The connection string is in the standard MongoDB format:

mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database>

Nota

Utilice el comando Verify para asegurarse de que se puede tener acceso a la instancia de MongoDB especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the MongoDB instance specified in the connection string field can be accessed.

Escriba el nombre de la colección desde la que se importarán los datos.Enter the name of the collection from which data will be imported. Opcionalmente, puede especificar o facilitar un archivo para una consulta como, por ejemplo {pop: {$gt:5000}}, o una proyección, por ejemplo {loc:0}, para filtrar los datos que se van a importar y darles forma.You may optionally specify or provide a file for a query, such as {pop: {$gt:5000}}, or a projection, such as {loc:0}, to both filter and shape the data that you're importing.

Estos son algunos ejemplos de la línea de comandos para importar desde MongoDB:Here are some command-line samples to import from MongoDB:

#Import all documents from a MongoDB collection
dt.exe /s:MongoDB /s.ConnectionString:mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database> /s.Collection:zips /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:BulkZips /t.IdField:_id /t.CollectionThroughput:2500

#Import documents from a MongoDB collection which match the query and exclude the loc field
dt.exe /s:MongoDB /s.ConnectionString:mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database> /s.Collection:zips /s.Query:{pop:{$gt:50000}} /s.Projection:{loc:0} /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:BulkZipsTransform /t.IdField:_id/t.CollectionThroughput:2500

Importación de archivos de exportación de MongoDBImport MongoDB export files

Importante

Si va a importar a una cuenta de Azure Cosmos DB compatible con MongoDB, siga estas instrucciones.If you're importing to an Azure Cosmos DB account with support for MongoDB, follow these instructions.

La opción del importador de origen de archivos JSON de exportación de MongoDB permite importar uno o más archivos JSON generados a partir de la utilidad mongoexport.The MongoDB export JSON file source importer option allows you to import one or more JSON files produced from the mongoexport utility.

Captura de pantalla de las opciones de origen de exportación de MongoDB

Cuando se agregan carpetas que contienen archivos JSON de exportación de MongoDB para importarlos, tiene la opción de buscar archivos en subcarpetas de forma recursiva.When adding folders that have MongoDB export JSON files for import, you have the option of recursively searching for files in subfolders.

A continuación se muestra un ejemplo de la línea de comandos para importar desde archivos JSON de exportación de MongoDB:Here is a command-line sample to import from MongoDB export JSON files:

dt.exe /s:MongoDBExport /s.Files:D:\mongoemployees.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:employees /t.IdField:_id /t.Dates:Epoch /t.CollectionThroughput:2500

Importación desde SQL ServerImport from SQL Server

La opción del importador de origen SQL permite importar desde una base de datos SQL Server individual y, opcionalmente, filtrar los registros que se pueden importar utilizando una consulta.The SQL source importer option allows you to import from an individual SQL Server database and optionally filter the records to be imported using a query. Además, puede modificar la estructura del documento especificando un separador de anidamiento (más en un momento determinado).In addition, you can modify the document structure by specifying a nesting separator (more on that in a moment).

Captura de pantalla de opciones de origen de SQL: herramientas de migración de base de datos

El formato de la cadena de conexión es el formato de la cadena de conexión SQL estándar.The format of the connection string is the standard SQL connection string format.

Nota

Utilice el comando Verify para asegurarse de que se puede tener acceso a la instancia de SQL Server especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the SQL Server instance specified in the connection string field can be accessed.

La propiedad de separador de anidamiento se utiliza para crear relaciones jerárquicas (documentos secundarios) durante la importación.The nesting separator property is used to create hierarchical relationships (sub-documents) during import. Considere la siguiente consulta SQL:Consider the following SQL query:

select CAST(BusinessEntityID AS varchar) as Id, Name, AddressType as [Address.AddressType], AddressLine1 as [Address.AddressLine1], City as [Address.Location.City], StateProvinceName as [Address.Location.StateProvinceName], PostalCode as [Address.PostalCode], CountryRegionName as [Address.CountryRegionName] from Sales.vStoreWithAddresses WHERE AddressType='Main Office'

Que devuelve los resultados siguientes (parciales):Which returns the following (partial) results:

Screenshot of SQL query results

Tenga en cuenta los alias como Address.AddressType y Address.Location.StateProvinceName.Note the aliases such as Address.AddressType and Address.Location.StateProvinceName. Al especificar el separador de anidamiento ".", la herramienta de importación crea los subdocumentos Address y Address.Location durante la importación.By specifying a nesting separator of '.', the import tool creates Address and Address.Location subdocuments during the import. Este es un ejemplo de un documento resultante en Azure Cosmos DB:Here is an example of a resulting document in Azure Cosmos DB:

{ "id": "956", "Name": "Finer Sales and Service", "Address": { "AddressType": "Main Office", "AddressLine1": "#500-75 O'Connor Street", "Location": { "City": "Ottawa", "StateProvinceName": "Ontario" }, "PostalCode": "K4B 1S2", "CountryRegionName": "Canada" } }{ "id": "956", "Name": "Finer Sales and Service", "Address": { "AddressType": "Main Office", "AddressLine1": "#500-75 O'Connor Street", "Location": { "City": "Ottawa", "StateProvinceName": "Ontario" }, "PostalCode": "K4B 1S2", "CountryRegionName": "Canada" } }

Estos son algunos ejemplos de la línea de comandos para importar desde SQL Server:Here are some command-line samples to import from SQL Server:

#Import records from SQL which match a query
dt.exe /s:SQL /s.ConnectionString:"Data Source=<server>;Initial Catalog=AdventureWorks;User Id=advworks;Password=<password>;" /s.Query:"select CAST(BusinessEntityID AS varchar) as Id, * from Sales.vStoreWithAddresses WHERE AddressType='Main Office'" /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Stores /t.IdField:Id /t.CollectionThroughput:2500

#Import records from sql which match a query and create hierarchical relationships
dt.exe /s:SQL /s.ConnectionString:"Data Source=<server>;Initial Catalog=AdventureWorks;User Id=advworks;Password=<password>;" /s.Query:"select CAST(BusinessEntityID AS varchar) as Id, Name, AddressType as [Address.AddressType], AddressLine1 as [Address.AddressLine1], City as [Address.Location.City], StateProvinceName as [Address.Location.StateProvinceName], PostalCode as [Address.PostalCode], CountryRegionName as [Address.CountryRegionName] from Sales.vStoreWithAddresses WHERE AddressType='Main Office'" /s.NestingSeparator:. /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:StoresSub /t.IdField:Id /t.CollectionThroughput:2500

Importación de archivos CSV y conversión a JSONImport CSV files and convert CSV to JSON

La opción del importador de origen de archivos CSV le permite importar uno o varios archivos CSV.The CSV file source importer option enables you to import one or more CSV files. Cuando se agregan carpetas que contienen archivos CSV que se van a importar, existe la opción de buscar archivos en subcarpetas de forma recursiva.When adding folders that have CSV files for import, you have the option of recursively searching for files in subfolders.

Captura de pantalla de opciones de origen de CSV

De forma similar a lo que sucede con el origen SQL, la propiedad de separador de anidamiento se utiliza para crear relaciones jerárquicas (documentos secundarios) durante la importación.Similar to the SQL source, the nesting separator property may be used to create hierarchical relationships (sub-documents) during import. Tenga en cuenta las siguientes filas de datos y la fila de encabezado CSV:Consider the following CSV header row and data rows:

Captura de pantalla de registros de ejemplo de CSV: CSV a JSON

Tenga en cuenta los alias como DomainInfo.Domain_Name y RedirectInfo.Redirecting.Note the aliases such as DomainInfo.Domain_Name and RedirectInfo.Redirecting. Al especificar un separador de anidamiento de ".", la herramienta de importación crea subdocumentos DomainInfo y RedirectInfo durante la importación.By specifying a nesting separator of '.', the import tool will create DomainInfo and RedirectInfo subdocuments during the import. Este es un ejemplo de un documento resultante en Azure Cosmos DB:Here is an example of a resulting document in Azure Cosmos DB:

{ "DomainInfo": { "Domain_Name": "ACUS.GOV", "Domain_Name_Address": "https://www.ACUS.GOV" }, "Federal Agency": "Administrative Conference of the United States", "RedirectInfo": { "Redirecting": "0", "Redirect_Destination": "" }, "id": "9cc565c5-ebcd-1c03-ebd3-cc3e2ecd814d" }{ "DomainInfo": { "Domain_Name": "ACUS.GOV", "Domain_Name_Address": "https://www.ACUS.GOV" }, "Federal Agency": "Administrative Conference of the United States", "RedirectInfo": { "Redirecting": "0", "Redirect_Destination": "" }, "id": "9cc565c5-ebcd-1c03-ebd3-cc3e2ecd814d" }

La herramienta de importación intenta inferir la información de tipo de los valores sin comillas de los archivos CSV (los valores entre comillas se tratan siempre como cadenas).The import tool tries to infer type information for unquoted values in CSV files (quoted values are always treated as strings). Los tipos se identifican en el siguiente orden: número, fecha y hora, booleano.Types are identified in the following order: number, datetime, boolean.

Hay otras dos cosas que debe saber sobre la importación de archivos CSV:There are two other things to note about CSV import:

  1. De forma predeterminada, los valores sin comillas se recortan siempre en tabuladores y espacios, mientras que los valores entre comillas se mantienen como son.By default, unquoted values are always trimmed for tabs and spaces, while quoted values are preserved as-is. Este comportamiento se puede invalidar con la casilla Recortar valores entre comillas o la opción de línea de comandos /s.TrimQuoted.This behavior can be overridden with the Trim quoted values checkbox or the /s.TrimQuoted command-line option.
  2. De forma predeterminada, un valor null sin comillas se trata como un valor null.By default, an unquoted null is treated as a null value. Este comportamiento se puede invalidar (es decir, tratar los valores null sin comillas como si fueran cadenas "null") con la casilla Tratar NULL sin comillas como cadena o la opción de línea de comandos /s.NoUnquotedNulls.This behavior can be overridden (that is, treat an unquoted null as a "null" string) with the Treat unquoted NULL as string checkbox or the /s.NoUnquotedNulls command-line option.

Este es un ejemplo de línea de comandos para la importación CSV:Here is a command-line sample for CSV import:

dt.exe /s:CsvFile /s.Files:.\Employees.csv /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Employees /t.IdField:EntityID /t.CollectionThroughput:2500

Importación de almacenamiento de tablas de AzureImport from Azure Table storage

La opción del importador de código fuente de Azure Table Storage permite importar desde una tabla individual de Azure Table Storage.The Azure Table storage source importer option allows you to import from an individual Azure Table storage table. Si lo desea, puede filtrar las entidades de tabla que se van a importar.Optionally, you can filter the table entities to be imported.

Puede generar datos que se importen de Azure Table Storage a tablas y entidades de Azure Cosmos DB para usarlos con Table API.You may output data that was imported from Azure Table Storage to Azure Cosmos DB tables and entities for use with the Table API. Los datos importados también se pueden enviar a colecciones y documentos para su uso con la API de SQL.Imported data can also be output to collections and documents for use with the SQL API. Sin embargo, Table API solo está disponible como destino en la utilidad de línea de comandos.However, Table API is only available as a target in the command-line utility. No se puede exportar a Table API mediante el uso de la interfaz de usuario de la herramienta de migración de datos.You can't export to Table API by using the Data Migration tool user interface. Para más información, consulte Importación de datos para su uso con Table API de Azure Cosmos DB.For more information, see Import data for use with the Azure Cosmos DB Table API.

Captura de pantalla de las opciones de origen de Azure Table Storage

El formato de la cadena de conexión de almacenamiento de tablas de Azure es:The format of the Azure Table storage connection string is:

DefaultEndpointsProtocol=<protocol>;AccountName=<Account Name>;AccountKey=<Account Key>;

Nota

Utilice el comando Verify para asegurarse de que se puede tener acceso a la instancia de almacenamiento de tablas de Azure especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the Azure Table storage instance specified in the connection string field can be accessed.

Escriba el nombre de la tabla de Azure desde la que se importarán los datos.Enter the name of the Azure table from to import from. Opcionalmente, puede especificar un filtro.You may optionally specify a filter.

La opción del importador de origen de almacenamiento de tablas de Azure tiene las siguientes opciones adicionales:The Azure Table storage source importer option has the following additional options:

  1. Incluir campos internosInclude Internal Fields
    1. All: incluir todos los campos internos (PartitionKey, RowKey y Timestamp)All - Include all internal fields (PartitionKey, RowKey, and Timestamp)
    2. None: excluir todos los campos internosNone - Exclude all internal fields
    3. RowKey: incluir sólo el campo RowKeyRowKey - Only include the RowKey field
  2. Seleccionar columnasSelect Columns
    1. Los filtros de almacenamiento de tablas de Azure no admiten proyecciones.Azure Table storage filters don't support projections. Si desea importar sólo las propiedades específicas de la entidad de tablas de Azure, agréguelas a la lista Seleccionar columnas.If you want to only import specific Azure Table entity properties, add them to the Select Columns list. Se omiten todas las demás propiedades de la entidad.All other entity properties are ignored.

A continuación se muestra un ejemplo de línea de comandos para importar desde Azure Table Storage:Here is a command-line sample to import from Azure Table storage:

dt.exe /s:AzureTable /s.ConnectionString:"DefaultEndpointsProtocol=https;AccountName=<Account Name>;AccountKey=<Account Key>" /s.Table:metrics /s.InternalFields:All /s.Filter:"PartitionKey eq 'Partition1' and RowKey gt '00001'" /s.Projection:ObjectCount;ObjectSize  /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:metrics /t.CollectionThroughput:2500

Importar desde Amazon DynamoDBImport from Amazon DynamoDB

La opción del importador de origen Amazon DynamoDB le permite importar desde una sola tabla de Amazon DynamoDB.The Amazon DynamoDB source importer option allows you to import from a single Amazon DynamoDB table. Este puede filtrar las entidades de tabla que se van a importar.It can optionally filter the entities to be imported. Se proporcionan varias plantillas para que configurar una importación resulte lo más fácil posible.Several templates are provided so that setting up an import is as easy as possible.

Captura de pantalla de opciones de origen de Amazon DynamoD: herramientas de migración de base de datos

Captura de pantalla de opciones de origen de Amazon DynamoD: herramientas de migración de base de datos

El formato de la cadena de conexión de Amazon DynamoDB es:The format of the Amazon DynamoDB connection string is:

ServiceURL=<Service Address>;AccessKey=<Access Key>;SecretKey=<Secret Key>;

Nota

Use el comando Verify para asegurarse de que se puede tener acceso a la instancia de Amazon DynamoDB especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the Amazon DynamoDB instance specified in the connection string field can be accessed.

A continuación se muestra un ejemplo de línea de comandos para importar desde Amazon DynamoDB:Here is a command-line sample to import from Amazon DynamoDB:

dt.exe /s:DynamoDB /s.ConnectionString:ServiceURL=https://dynamodb.us-east-1.amazonaws.com;AccessKey=<accessKey>;SecretKey=<secretKey> /s.Request:"{   """TableName""": """ProductCatalog""" }" /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<Azure Cosmos DB Endpoint>;AccountKey=<Azure Cosmos DB Key>;Database=<Azure Cosmos database>;" /t.Collection:catalogCollection /t.CollectionThroughput:2500

Importación desde Azure Blob StorageImport from Azure Blob storage

El archivo JSON, archivo de exportación de MongoDB y opciones de importador de origen de archivo CSV permiten importar uno o más archivos del almacenamiento de blobs de Azure.The JSON file, MongoDB export file, and CSV file source importer options allow you to import one or more files from Azure Blob storage. Después de especificar una dirección URL de contenedor de blobs y una clave de cuenta, proporcione una expresión regular para seleccionar los archivos para importar.After specifying a Blob container URL and Account Key, provide a regular expression to select the file(s) to import.

Captura de pantalla de opciones de origen de archivos Blob

Este es el ejemplo de línea de comandos para importar archivos JSON desde Azure Blob Storage:Here is command-line sample to import JSON files from Azure Blob storage:

dt.exe /s:JsonFile /s.Files:"blobs://<account key>@account.blob.core.windows.net:443/importcontainer/.*" /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:doctest

Importación desde una colección de API de SQLImport from a SQL API collection

La opción del importador de origen de Azure Cosmos DB permite importar datos de uno o varios contenedores de Azure Cosmos y, si lo desea, filtrar los documentos mediante una consulta.The Azure Cosmos DB source importer option allows you to import data from one or more Azure Cosmos containers and optionally filter documents using a query.

Captura de pantalla de opciones de origen de Azure Cosmos DB

El formato de la cadena de conexión de Azure Cosmos DB es:The format of the Azure Cosmos DB connection string is:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;

Puede recuperar la cadena de conexión de la cuenta de Azure Cosmos DB desde la página de claves de Azure Portal, como se describe en Administración de una cuenta de Azure Cosmos DB.You can retrieve the Azure Cosmos DB account connection string from the Keys page of the Azure portal, as described in How to manage an Azure Cosmos DB account. Sin embargo, el nombre de la base de datos se debe anexar a la cadena de conexión con el formato siguiente:However, the name of the database needs to be appended to the connection string in the following format:

Database=<CosmosDB Database>;

Nota

Use el comando Verify para asegurarse de que se puede tener acceso a la instancia de Azure Cosmos DB especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Para realizar la importación desde un solo contenedor de Azure Cosmos, escriba el nombre de la colección desde la que se van a importar los datos.To import from a single Azure Cosmos container, enter the name of the collection to import data from. Para realizar la importación desde varios contenedores de Azure Cosmos, especifique una expresión regular que coincida con uno o varios nombres de colección (por ejemplo, collection01 | collection02 | collection03).To import from more than one Azure Cosmos container, provide a regular expression to match one or more collection names (for example, collection01 | collection02 | collection03). Opcionalmente, puede especificar o facilitar un archivo para una consulta para filtrar los datos que se van a importar y darles forma.You may optionally specify, or provide a file for, a query to both filter and shape the data that you're importing.

Nota

Dado que el campo de colecciones acepta expresiones regulares, si la importación se va a realizar de una sola colección cuyo nombre contenga caracteres de expresión regular, dichos caracteres deben incluir una secuencia de escape.Since the collection field accepts regular expressions, if you're importing from a single collection whose name has regular expression characters, then those characters must be escaped accordingly.

La opción del importador de origen de Azure Cosmos DB tiene las siguientes opciones avanzadas:The Azure Cosmos DB source importer option has the following advanced options:

  1. Incluir campos internos: especifica si se debe o no incluir propiedades del sistema de documentos de Azure Cosmos DB en la exportación (por ejemplo, _rid, _ts).Include Internal Fields: Specifies whether or not to include Azure Cosmos DB document system properties in the export (for example, _rid, _ts).
  2. Número de reintentos en caso de error: especifica el número de veces que se intentará la conexión a Azure Cosmos DB en caso de errores transitorios (por ejemplo, interrupciones de conectividad de red).Number of Retries on Failure: Specifies the number of times to retry the connection to Azure Cosmos DB in case of transient failures (for example, network connectivity interruption).
  3. Intervalo de reintento: especifica el tiempo de espera entre los reintentos de restablecimiento de conexión a Azure Cosmos DB en caso de errores transitorios (por ejemplo, interrupción de la conectividad de red).Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB in case of transient failures (for example, network connectivity interruption).
  4. Modo de conexión: especifica el modo de conexión para utilizar con Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Las opciones disponibles son DirectTcp, DirectHttps y puerta de enlace.The available choices are DirectTcp, DirectHttps, and Gateway. Los modos de conexión directa son más rápidos, mientras que el modo de puerta de enlace es compatible con el firewall, ya que sólo usa el puerto 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Captura de pantalla de opciones avanzadas de origen de Azure Cosmos DB

Sugerencia

El modo de conexión predeterminado de la herramienta de importación es DirectTcp.The import tool defaults to connection mode DirectTcp. Si experimenta problemas de firewall, cambie al modo de conexión puerta de enlace, ya que sólo requiere el puerto 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Estos son algunos ejemplos de línea de comandos para importar desde Azure Cosmos DB:Here are some command-line samples to import from Azure Cosmos DB:

#Migrate data from one Azure Cosmos container to another Azure Cosmos containers
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:TEColl /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:TESessions /t.CollectionThroughput:2500

#Migrate data from more than one Azure Cosmos container to a single Azure Cosmos container
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:comp1|comp2|comp3|comp4 /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:singleCollection /t.CollectionThroughput:2500

#Export an Azure Cosmos container to a JSON file
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:StoresSub /t:JsonFile /t.File:StoresExport.json /t.Overwrite /t.CollectionThroughput:2500

Sugerencia

La herramienta de importación de datos de Azure Cosmos DB también admite la importación de datos desde el Emulador de Azure Cosmos DB.The Azure Cosmos DB Data Import Tool also supports import of data from the Azure Cosmos DB Emulator. Al importar datos desde un emulador local, establezca el punto de conexión en https://localhost:<port>.When importing data from a local emulator, set the endpoint to https://localhost:<port>.

Importar desde HBaseImport from HBase

La opción del importador de origen de HBase le permite importar datos de una tabla HBase y, opcionalmente, filtrar los datos.The HBase source importer option allows you to import data from an HBase table and optionally filter the data. Se proporcionan varias plantillas para que configurar una importación resulte lo más fácil posible.Several templates are provided so that setting up an import is as easy as possible.

Captura de pantalla de opciones de origen de HBase

Captura de pantalla de opciones de origen de HBase

El formato de la cadena de conexión de HBase Stargate es:The format of the HBase Stargate connection string is:

ServiceURL=<server-address>;Username=<username>;Password=<password>

Nota

Use el comando Verify para asegurarse de que se puede tener acceso a la instancia de HBase especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the HBase instance specified in the connection string field can be accessed.

A continuación se muestra un ejemplo de línea de comandos para importar desde HBase:Here is a command-line sample to import from HBase:

dt.exe /s:HBase /s.ConnectionString:ServiceURL=<server-address>;Username=<username>;Password=<password> /s.Table:Contacts /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:hbaseimport

Importación a la API de SQL (importación en bloque)Import to the SQL API (Bulk Import)

El importador masivo de Azure Cosmos DB permite importar desde cualquier opción de origen disponible con un procedimiento almacenado de Azure Cosmos DB para que resulte más eficaz.The Azure Cosmos DB Bulk importer allows you to import from any of the available source options, using an Azure Cosmos DB stored procedure for efficiency. La herramienta admite la importación a un contenedor de Azure Cosmos con una sola partición.The tool supports import to one single-partitioned Azure Cosmos container. También admite la importación con particiones en la cual se dividen los datos en más de un contenedor de Azure Cosmos con una sola partición.It also supports sharded import whereby data is partitioned across more than one single-partitioned Azure Cosmos container. Para más información sobre la creación de particiones de datos, consulte Partición y escalado de datos en Azure Cosmos DB.For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB. La herramienta crea, ejecuta y elimina el procedimiento almacenado de las colecciones de destino.The tool creates, executes, and then deletes the stored procedure from the target collection(s).

Captura de pantalla de opciones de importación masiva de Azure Cosmos DB

El formato de la cadena de conexión de Azure Cosmos DB es:The format of the Azure Cosmos DB connection string is:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;

La cadena de conexión de la cuenta de Azure Cosmos DB se puede obtener en la página Claves de Azure Portal, como se describe en Administración de una cuenta de Azure Cosmos DB; sin embargo, el nombre de la base de datos se debe anexar a la cadena de conexión con el siguiente formato:The Azure Cosmos DB account connection string can be retrieved from the Keys page of the Azure portal, as described in How to manage an Azure Cosmos DB account, however the name of the database needs to be appended to the connection string in the following format:

Database=<CosmosDB Database>;

Nota

Use el comando Verify para asegurarse de que se puede tener acceso a la instancia de Azure Cosmos DB especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Para realizar la importación en una sola colección, escriba el nombre de la colección desde la que se van a importar los datos y haga clic en el botón Agregar.To import to a single collection, enter the name of the collection to import data from and click the Add button. Para importar en varias colecciones, escriba el nombre de cada colección individualmente o use la siguiente sintaxis para especificar varias colecciones: collection_prefix[índice inicial - índice final].To import to more than one collection, either enter each collection name individually or use the following syntax to specify more than one collection: collection_prefix[start index - end index]. Si va a especificar varias colecciones a través de esta sintaxis, tenga en cuenta las directrices siguientes:When specifying more than one collection using the aforementioned syntax, keep the following guidelines in mind:

  1. Solo se admiten patrones de nombre de intervalo entero.Only integer range name patterns are supported. Por ejemplo, si se especifica colección [0-3], se crean las siguientes colecciones: colección0, colección1, colección2, colección3.For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. Puede usar una sintaxis abreviada: colección[3] crea el mismo conjunto de colecciones que el paso 1.You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. Se pueden proporcionar varias sustituciones.More than one substitution can be provided. Por ejemplo, colección[0-1] [0-9] genera 20 nombres de colección con ceros delante (colección01,... 02... 03).For example, collection[0-1] [0-9] generates 20 collection names with leading zeros (collection01, ..02, ..03).

Una vez especificados los nombres de las colecciones, elija la capacidad de proceso deseada de la colección (de 400 RU a 10 000 RU).Once the collection name(s) have been specified, choose the desired throughput of the collection(s) (400 RUs to 10,000 RUs). Para conseguir el mejor rendimiento en la importación, elija una mayor capacidad de proceso.For best import performance, choose a higher throughput. Para más información sobre los niveles de rendimiento, consulte Niveles de rendimiento en Azure Cosmos DB.For more information about performance levels, see Performance levels in Azure Cosmos DB.

Nota

La configuración del nivel de rendimiento solo se aplica a la creación de la colección.The performance throughput setting only applies to collection creation. Si la colección especificada ya existe, su capacidad de proceso no se modificará.If the specified collection already exists, its throughput won't be modified.

Cuando se importa a varias colecciones, la herramienta de importación admite el particionamiento basado en hash.When you import to more than one collection, the import tool supports hash-based sharding. En este escenario, especifique la propiedad de documento que desea usar como clave de partición.In this scenario, specify the document property you wish to use as the Partition Key. (Si la clave de partición se deja en blanco, los documentos se particionan aleatoriamente entre las colecciones de destino).(If Partition Key is left blank, documents are sharded randomly across the target collections.)

También puede especificar qué campo del origen de la importación debe utilizarse como la propiedad de identificador de documentos de Azure Cosmos DB durante la importación.You may optionally specify which field in the import source should be used as the Azure Cosmos DB document ID property during the import. Si los documentos no tienen esta propiedad, la herramienta de importación genera un GUID como el valor de la propiedad de identificador.If documents don't have this property, then the import tool generates a GUID as the ID property value.

Hay una serie de opciones avanzadas disponibles durante la importación.There are a number of advanced options available during import. En primer lugar, mientras que la herramienta incluye un procedimiento predeterminado almacenado de importación masiva (BulkInsert.js), puede especificar su propio procedimiento almacenado de importación:First, while the tool includes a default bulk import stored procedure (BulkInsert.js), you may choose to specify your own import stored procedure:

Captura de pantalla de opciones de importación de insert sproc masiva de Azure Cosmos DB

Además, al importar los tipos de fecha (por ejemplo, desde SQL Server o MongoDB), puede elegir entre tres opciones de importación:Additionally, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Captura de pantalla de opciones de importación de fecha y hora de Azure Cosmos DB

  • Cadena: conservar como un valor de cadenaString: Persist as a string value
  • Época: conservar como un valor de número de tiempoEpoch: Persist as an Epoch number value
  • Ambos: conservar los valores de cadena y de número.Both: Persist both string and Epoch number values. Esta opción crea un subdocumento, por ejemplo, "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }This option creates a subdocument, for example: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }

El importador masivo de Azure Cosmos DB tiene las siguientes opciones avanzadas adicionales:The Azure Cosmos DB Bulk importer has the following additional advanced options:

  1. Tamaño del lote: el tamaño de lote predeterminado de la herramienta es 50.Batch Size: The tool defaults to a batch size of 50. Si los documentos que desea importar son grandes, considere la posibilidad de reducir el tamaño del lote.If the documents to be imported are large, consider lowering the batch size. Si los documentos que desea importar son pequeños, considere la posibilidad de aumentar el tamaño del lote.Conversely, if the documents to be imported are small, consider raising the batch size.
  2. Tamaño máximo de script (bytes): el valor predeterminado máximo del script en la herramienta es de 512 KB.Max Script Size (bytes): The tool defaults to a max script size of 512 KB.
  3. Deshabilitar generación de identificador automática: si cada documento que se va a importar contiene un campo de identificador, seleccione esta opción para aumentar el rendimiento.Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. No se importan los documentos que no contengan un campo de identificador exclusivo.Documents missing a unique ID field aren't imported.
  4. Actualización de documentos existentes: la opción predeterminada es no reemplazar los documentos existentes por conflictos de identificador.Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. Si selecciona esta opción, permite que se sobrescriban los documentos existentes con identificadores que coinciden entre sí.Selecting this option allows overwriting existing documents with matching IDs. Esta característica es útil para las migraciones de datos programadas que actualizan los documentos existentes.This feature is useful for scheduled data migrations that update existing documents.
  5. Número de reintentos en caso de error: especifica el número de veces que se intentará la conexión a Azure Cosmos DB durante errores transitorios (por ejemplo, interrupciones de conectividad de red).Number of Retries on Failure: Specifies how often to retry the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  6. Intervalo de reintento: especifica el tiempo de espera entre los reintentos de restablecimiento de conexión a Azure Cosmos DB en caso de errores transitorios (por ejemplo, interrupción de la conectividad de red).Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB in case of transient failures (for example, network connectivity interruption).
  7. Modo de conexión: especifica el modo de conexión para utilizar con Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Las opciones disponibles son DirectTcp, DirectHttps y puerta de enlace.The available choices are DirectTcp, DirectHttps, and Gateway. Los modos de conexión directa son más rápidos, mientras que el modo de puerta de enlace es compatible con el firewall, ya que sólo usa el puerto 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Captura de pantalla de opciones avanzadas de importación masiva de Azure Cosmos DB

Sugerencia

El modo de conexión predeterminado de la herramienta de importación es DirectTcp.The import tool defaults to connection mode DirectTcp. Si experimenta problemas de firewall, cambie al modo de conexión puerta de enlace, ya que sólo requiere el puerto 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Importación a la API de SQL (importación de registros secuenciales)Import to the SQL API (Sequential Record Import)

El importador de registros secuenciales de Azure Cosmos DB permite importar desde una opción de origen disponible según cada registro.The Azure Cosmos DB sequential record importer allows you to import from an available source option on a record-by-record basis. Puede elegir esta opción si va a importar a una colección existente que ha alcanzado su cuota de procedimientos almacenados.You might choose this option if you’re importing to an existing collection that has reached its quota of stored procedures. La herramienta admite la importación a un solo contenedor de Azure Cosmos (con una sola partición o con varias).The tool supports import to a single (both single-partition and multi-partition) Azure Cosmos container. También admite la importación con particiones en la cual se dividen los datos en más de un contenedor de Azure Cosmos con una sola partición o con varias.It also supports sharded import whereby data is partitioned across more than one single-partition or multi-partition Azure Cosmos container. Para más información sobre la creación de particiones de datos, consulte Partición y escalado de datos en Azure Cosmos DB.For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB.

Captura de pantalla de opciones de importación de registros secuenciales de Azure Cosmos DB

El formato de la cadena de conexión de Azure Cosmos DB es:The format of the Azure Cosmos DB connection string is:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;

Puede recuperar la cadena de conexión de la cuenta de Azure Cosmos DB desde la página de claves de Azure Portal, como se describe en Administración de una cuenta de Azure Cosmos DB.You can retrieve the connection string for the Azure Cosmos DB account from the Keys page of the Azure portal, as described in How to manage an Azure Cosmos DB account. Sin embargo, el nombre de la base de datos se debe anexar a la cadena de conexión con el formato siguiente:However, the name of the database needs to be appended to the connection string in the following format:

Database=<Azure Cosmos database>;

Nota

Use el comando Verify para asegurarse de que se puede tener acceso a la instancia de Azure Cosmos DB especificada en el campo de la cadena de conexión.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Para realizar la importación en una sola colección, escriba el nombre de la colección en la que se van a importar los datos y, después, haga clic en el botón Agregar.To import to a single collection, enter the name of the collection to import data into, and then click the Add button. Para importar a más de una colección, escriba el nombre de cada colección individualmente.To import to more than one collection, enter each collection name individually. También puede usar la siguiente sintaxis para especificar más de una colección: collection_prefix[índice inicial - índice final].You may also use the following syntax to specify more than one collection: collection_prefix[start index - end index]. Si va a especificar varias colecciones a través de esta sintaxis, tenga en cuenta las instrucciones siguientes:When specifying more than one collection via the aforementioned syntax, keep the following guidelines in mind:

  1. Solo se admiten patrones de nombre de intervalo entero.Only integer range name patterns are supported. Por ejemplo, si se especifica colección [0-3], se crean las siguientes colecciones: colección0, colección1, colección2, colección3.For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. Puede usar una sintaxis abreviada: colección[3] crea el mismo conjunto de colecciones que el paso 1.You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. Se pueden proporcionar varias sustituciones.More than one substitution can be provided. Por ejemplo, colección[0-1] [0-9] crea 20 nombres de colección con ceros delante (colección01,... 02... 03).For example, collection[0-1] [0-9] creates 20 collection names with leading zeros (collection01, ..02, ..03).

Una vez especificados los nombres de las colecciones, elija la capacidad de proceso deseada de la colección (de 400 RU a 250 000 RU).Once the collection name(s) have been specified, choose the desired throughput of the collection(s) (400 RUs to 250,000 RUs). Para conseguir el mejor rendimiento en la importación, elija una mayor capacidad de proceso.For best import performance, choose a higher throughput. Para más información sobre los niveles de rendimiento, consulte Niveles de rendimiento en Azure Cosmos DB.For more information about performance levels, see Performance levels in Azure Cosmos DB. Cualquier importación a colecciones con una capacidad de proceso de más de 10 000 RU requiere una clave de partición.Any import to collections with throughput >10,000 RUs require a partition key. Si elige tener más de 250 000 RU, debe registrar una solicitud en el portal para que le aumenten su cuenta.If you choose to have more than 250,000 RUs, you need to file a request in the portal to have your account increased.

Nota

La configuración del rendimiento solo se aplica a la creación de colecciones o bases de datos.The throughput setting only applies to collection or database creation. Si la colección especificada ya existe, su capacidad de proceso no se modificará.If the specified collection already exists, its throughput won't be modified.

Cuando se importa a varias colecciones, la herramienta de importación admite el particionamiento basado en hash.When importing to more than one collection, the import tool supports hash-based sharding. En este escenario, especifique la propiedad de documento que desea usar como clave de partición.In this scenario, specify the document property you wish to use as the Partition Key. (Si la clave de partición se deja en blanco, los documentos se particionan aleatoriamente entre las colecciones de destino).(If Partition Key is left blank, documents are sharded randomly across the target collections.)

También puede especificar qué campo del origen de la importación debe utilizarse como la propiedad de identificador de documentos de Azure Cosmos DB durante la importación.You may optionally specify which field in the import source should be used as the Azure Cosmos DB document ID property during the import. (Si los documentos no tienen esta propiedad, la herramienta de importación genera un GUID como el valor de la propiedad de identificador).(If documents don't have this property, then the import tool generates a GUID as the ID property value.)

Hay una serie de opciones avanzadas disponibles durante la importación.There are a number of advanced options available during import. En primer lugar, al importar los tipos de fecha (por ejemplo, desde SQL Server o MongoDB), puede elegir entre tres opciones de importación:First, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Captura de pantalla de opciones de importación de fecha y hora de Azure Cosmos DB

  • Cadena: conservar como un valor de cadenaString: Persist as a string value
  • Época: conservar como un valor de número de tiempoEpoch: Persist as an Epoch number value
  • Ambos: conservar los valores de cadena y de número.Both: Persist both string and Epoch number values. Esta opción crea un subdocumento, por ejemplo, "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }This option creates a subdocument, for example: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }

El importador de registros secuenciales de Azure Cosmos DB tiene estas opciones avanzadas adicionales:The Azure Cosmos DB - Sequential record importer has the following additional advanced options:

  1. Número de solicitudes paralelas: la opción predeterminada es dos.Number of Parallel Requests: The tool defaults to two parallel requests. Si los documentos que desea importar son pequeños, considere la posibilidad de aumentar el número de solicitudes paralelas.If the documents to be imported are small, consider raising the number of parallel requests. Si este número es demasiado elevado, podrá haber limitaciones en la velocidad de la importación.If this number is raised too much, the import may experience rate limiting.
  2. Deshabilitar generación de identificador automática: si cada documento que se va a importar contiene un campo de identificador, seleccione esta opción para aumentar el rendimiento.Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. No se importan los documentos que no contengan un campo de identificador exclusivo.Documents missing a unique ID field aren't imported.
  3. Actualización de documentos existentes: la opción predeterminada es no reemplazar los documentos existentes por conflictos de identificador.Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. Si selecciona esta opción, permite que se sobrescriban los documentos existentes con identificadores que coinciden entre sí.Selecting this option allows overwriting existing documents with matching IDs. Esta característica es útil para las migraciones de datos programadas que actualizan los documentos existentes.This feature is useful for scheduled data migrations that update existing documents.
  4. Número de reintentos en caso de error: especifica el número de veces que se intentará la conexión a Azure Cosmos DB durante errores transitorios (por ejemplo, interrupciones de conectividad de red).Number of Retries on Failure: Specifies how often to retry the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  5. Intervalo de reintento: especifica el tiempo de espera entre los reintentos de restablecimiento de conexión a Azure Cosmos DB durante errores transitorios (por ejemplo, interrupción de la conectividad de red).Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  6. Modo de conexión: especifica el modo de conexión para utilizar con Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Las opciones disponibles son DirectTcp, DirectHttps y puerta de enlace.The available choices are DirectTcp, DirectHttps, and Gateway. Los modos de conexión directa son más rápidos, mientras que el modo de puerta de enlace es compatible con el firewall, ya que sólo usa el puerto 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Captura de pantalla de opciones avanzadas de importación de registros secuenciales de Azure Cosmos DB

Sugerencia

El modo de conexión predeterminado de la herramienta de importación es DirectTcp.The import tool defaults to connection mode DirectTcp. Si experimenta problemas de firewall, cambie al modo de conexión puerta de enlace, ya que sólo requiere el puerto 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Especificación de una directiva de indexaciónSpecify an indexing policy

Si permite que la herramienta de migración cree colecciones de API de SQL de Azure Cosmos DB durante la importación, puede especificar la directiva de indexación de esas colecciones.When you allow the migration tool to create Azure Cosmos DB SQL API collections during import, you can specify the indexing policy of the collections. En la sección de opciones avanzadas de las opciones de Importación masiva de Azure Cosmos DB y Registro secuencial de Azure Cosmos DB, vaya a la sección de la directiva de indexación.In the advanced options section of the Azure Cosmos DB Bulk import and Azure Cosmos DB Sequential record options, navigate to the Indexing Policy section.

Captura de pantalla de opciones avanzadas de política de indexación de Azure Cosmos DB

Mediante la opción avanzada Directiva de indexación, puede seleccionar un archivo correspondiente, especificar manualmente una directiva de indexación o seleccionar de un conjunto de plantillas predeterminadas (haciendo clic con el botón derecho en el cuadro de texto de la que desee).Using the Indexing Policy advanced option, you can select an indexing policy file, manually enter an indexing policy, or select from a set of default templates (by right-clicking in the indexing policy textbox).

La herramienta proporciona las plantillas de directiva siguientes:The policy templates the tool provides are:

  • Predeterminada.Default. Esta directiva es mejor al realizar consultas de igualdad en cadenas.This policy is best when you perform equality queries against strings. También funciona si usa consultas ORDER BY, de intervalo y de igualdad para números.It also works if you use ORDER BY, range, and equality queries for numbers. Esta directiva tiene una sobrecarga de almacenamiento de índices menor que la de intervalo.This policy has a lower index storage overhead than Range.
  • Intervalo.Range. Esta directiva es la mejor cuando usa consultas ORDER BY, de intervalo o igualdad tanto en números como en cadenas.This policy is best when you use ORDER BY, range, and equality queries on both numbers and strings. Esta directiva tiene una mayor sobrecarga de almacenamiento de índice que la Predeterminada o Hash.This policy has a higher index storage overhead than Default or Hash.

Captura de pantalla de opciones avanzadas de política de indexación de Azure Cosmos DB

Nota

Si no especifica una directiva de indexación, se aplica la directiva predeterminada.If you don't specify an indexing policy, then the default policy is applied. Para más información sobre las directivas de indexación, consulte Directivas de indexación de Azure Cosmos DB.For more information about indexing policies, see Azure Cosmos DB indexing policies.

Exportación a archivos JSONExport to JSON file

El exportador JSON de Azure Cosmos DB permite exportar cualquiera de las opciones de origen disponibles a un archivo JSON que contiene una matriz de documentos JSON.The Azure Cosmos DB JSON exporter allows you to export any of the available source options to a JSON file that has an array of JSON documents. La herramienta controlará la exportación en su lugar.The tool handles the export for you. O bien, puede elegir ver el comando resultante de la migración y ejecutarlo usted mismo.Alternatively, you can choose to view the resulting migration command and run the command yourself. El archivo JSON resultante puede almacenarse localmente o en el almacenamiento de blobs de Azure.The resulting JSON file may be stored locally or in Azure Blob storage.

Captura de pantalla de opción de exportación de archivo local JSON de Azure Cosmos DB

Captura de pantalla de opción de exportación de Azure Blob Storage de JSON de Azure Cosmos DB

Opcionalmente, puede optar por adornar el JSON resultante.You may optionally choose to prettify the resulting JSON. Esta acción aumentará el tamaño del documento resultante al mismo tiempo que el contenido será más legible.This action will increase the size of the resulting document while making the contents more human readable.

  • Exportación JSON estándarStandard JSON export

    [{"id":"Sample","Title":"About Paris","Language":{"Name":"English"},"Author":{"Name":"Don","Location":{"City":"Paris","Country":"France"}},"Content":"Don's document in Azure Cosmos DB is a valid JSON document as defined by the JSON spec.","PageViews":10000,"Topics":[{"Title":"History of Paris"},{"Title":"Places to see in Paris"}]}]
    
  • Exportación JSON adornadaPrettified JSON export

      [
       {
      "id": "Sample",
      "Title": "About Paris",
      "Language": {
        "Name": "English"
      },
      "Author": {
        "Name": "Don",
        "Location": {
          "City": "Paris",
          "Country": "France"
        }
      },
      "Content": "Don's document in Azure Cosmos DB is a valid JSON document as defined by the JSON spec.",
      "PageViews": 10000,
      "Topics": [
        {
          "Title": "History of Paris"
        },
        {
          "Title": "Places to see in Paris"
        }
      ]
      }]
    

Este es el ejemplo de línea de comandos para importar el archivo JSON en Azure Blob Storage:Here is a command-line sample to export the JSON file to Azure Blob storage:

dt.exe /ErrorDetails:All /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB database_name>" /s.Collection:<CosmosDB collection_name>
/t:JsonFile /t.File:"blobs://<Storage account key>@<Storage account name>.blob.core.windows.net:443/<Container_name>/<Blob_name>"
/t.Overwrite

Configuración avanzadaAdvanced configuration

En la pantalla Configuración avanzada, especifique la ubicación del archivo de registro en que desee que se escriban los errores.In the Advanced configuration screen, specify the location of the log file to which you would like any errors written. Las siguientes reglas se aplican a esta página:The following rules apply to this page:

  1. Si no se proporciona un nombre de archivo, todos los errores se devuelven en la página de resultados.If a file name isn't provided, then all errors are returned on the Results page.

  2. Si se proporciona un nombre de archivo sin un directorio, el archivo se crea (o sobrescribe) en el directorio del entorno actual.If a file name is provided without a directory, then the file is created (or overwritten) in the current environment directory.

  3. Si selecciona un archivo existente, este se sobrescribe, ya que no hay opción de anexar.If you select an existing file, then the file is overwritten, there's no append option.

  4. A continuación, elija si desea registrar todos los mensajes de error, los críticos o ninguno.Then, choose whether to log all, critical, or no error messages. Por último, decida con qué frecuencia se actualiza el progreso en el mensaje de transferencia en pantalla.Finally, decide how frequently the on-screen transfer message is updated with its progress.

    Captura de la pantalla de configuración avanzada

Confirmación de las opciones de importación y visualización de la línea de comandosConfirm import settings and view command line

  1. Después de especificar la información de origen, la de destino y la configuración avanzada, revise el resumen de la migración y vea o copie el comando resultante de la migración si lo desea.After you specify the source information, target information, and advanced configuration, review the migration summary and view or copy the resulting migration command if you want. (Copiar el comando es útil para automatizar las operaciones de importación).(Copying the command is useful to automate import operations.)

    Captura de la pantalla de resumen

    Screenshot of summary screen

  2. Una vez que esté satisfecho con las opciones de origen y de destino, haga clic en Importar.Once you’re satisfied with your source and target options, click Import. El tiempo transcurrido, la cantidad de elementos transferidos y la información sobre los errores (si no se ha especificado un nombre de archivo en la configuración avanzada) se actualizarán mientras la importación esté curso.The elapsed time, transferred count, and failure information (if you didn't provide a file name in the Advanced configuration) update as the import is in process. Una vez que haya finalizado, puede exportar los resultados (por ejemplo, para tratar los errores de importación).Once complete, you can export the results (for example, to deal with any import failures).

    Captura de pantalla de opción de exportación de JSON de Azure Cosmos DB

  3. También puede iniciar una nueva importación restableciendo todos los valores o conservando la configuración existente.You may also start a new import by either resetting all values or keeping the existing settings. (Por ejemplo, puede decidir mantener la información de la cadena de conexión, la elección de origen y destino, etc).(For example, you may choose to keep connection string information, source and target choice, and more.)

    Captura de pantalla de opción de exportación de JSON de Azure Cosmos DB

Pasos siguientesNext steps

En este tutorial, ha llevado a cabo las tareas siguientes:In this tutorial, you've done the following tasks:

  • Instalación de la herramienta de migración de datosInstalled the Data Migration tool
  • Importación de datos de orígenes de datos diferentesImported data from different data sources
  • Exportación desde Azure Cosmos DB a JSONExported from Azure Cosmos DB to JSON

Ahora puede pasar al siguiente tutorial y obtener más información sobre cómo consultar los datos con Azure Cosmos DB.You can now proceed to the next tutorial and learn how to query data using Azure Cosmos DB.