Tutoriel : Utilisez l’outil de migration de données pour migrer vos données vers Azure Cosmos DBTutorial: Use Data migration tool to migrate your data to Azure Cosmos DB

Ce tutoriel explique comment utiliser l’outil de migration de données Azure Cosmos DB pour importer des données dans des conteneurs Azure Cosmos DB à partir de différentes sources.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. Vous pouvez importer à partir de fichiers JSON, de fichiers CSV, de SQL, de MongoDB, d’un stockage Table Azure, d’Amazon DynamoDB et même de collections d’API SQL 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. Vous migrez ces données vers des collections et des tables en vue de les utiliser avec Azure Cosmos DB.You migrate that data to collections and tables for use with Azure Cosmos DB. L’outil de migration de données peut également être utilisé pour migrer des données à partir d’une collection à partition unique vers une collection à plusieurs partitions pour l’API 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.

Quelle API allez-vous utiliser avec Azure Cosmos DB ?Which API are you going to use with Azure Cosmos DB?

Ce tutoriel décrit les tâches suivantes :This tutorial covers the following tasks:

  • Installation de l’outil de migration de donnéesInstalling the Data Migration tool
  • Importation de données à partir de différentes sources de donnéesImporting data from different data sources
  • Exportation de données à partir d’Azure Cosmos DB vers JSONExporting from Azure Cosmos DB to JSON

Configuration requisePrerequisites

Avant de suivre les instructions de cet article, veillez à effectuer les étapes suivantes :Before following the instructions in this article, ensure that you do the following steps:

  • Installer Microsoft .NET Framework 4.51 ou version ultérieure.Install Microsoft .NET Framework 4.51 or higher.

  • Augmenter le débit : la durée de la migration des données dépend de la quantité de débit que vous définissez pour une collection spécifique ou un ensemble de collections.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. Veillez à augmenter le débit pour les migrations de données plus importantes.Be sure to increase the throughput for larger data migrations. Une fois que vous avez effectué la migration, diminuez le débit pour réduire les coûts.After you've completed the migration, decrease the throughput to save costs. Pour plus d’informations sur l’augmentation du débit sur le portail Azure, consultez les niveaux de performances et les niveaux tarifaires dans Azure Cosmos DB.For more information about increasing throughput in the Azure portal, see performance levels and pricing tiers in Azure Cosmos DB.

  • Créer des ressources Azure Cosmos DB : avant de commencer à migrer les données, créez au préalable toutes vos collections à partir du portail Azure.Create Azure Cosmos DB resources: Before you start the migrating data, pre-create all your collections from the Azure portal. Pour migrer vers un compte Azure Cosmos DB qui a un débit de niveau base de données, fournissez une clé de partition au moment de créer les conteneurs 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.

Vue d’ensembleOverview

L’outil de migration de données est une solution open source permettant d’importer des données dans Azure Cosmos DB à partir de différentes sources, notamment :The Data Migration tool is an open-source solution that imports data to Azure Cosmos DB from a variety of sources, including:

  • Fichiers JSONJSON files
  • MongoDBMongoDB
  • SQL ServerSQL Server
  • Fichiers CSVCSV files
  • Stockage de tables AzureAzure Table storage
  • Amazon DynamoDBAmazon DynamoDB
  • hbaseHBase
  • Conteneurs Cosmos AzureAzure Cosmos containers

L’outil d’importation inclut une interface utilisateur graphique (dtui.exe) et peut aussi être piloté à partir de la ligne de commande (dt.exe).While the import tool includes a graphical user interface (dtui.exe), it can also be driven from the command-line (dt.exe). En fait, il existe une option pour générer la commande associée après avoir configuré une importation via l’interface utilisateur.In fact, there's an option to output the associated command after setting up an import through the UI. Vous pouvez transformer des données sources tabulaires, comme des fichiers SQL Server ou CSV, pour créer des relations hiérarchiques (sous-documents) pendant l’importation.You can transform tabular source data, such as SQL Server or CSV files, to create hierarchical relationships (subdocuments) during import. Poursuivez votre lecture pour en savoir plus sur les options sources, les exemples de commandes pour l’importation depuis chaque source, les options cibles et l’affichage des résultats d’importation.Keep reading to learn more about source options, sample commands to import from each source, target options, and viewing import results.

InstallationInstallation

Le code source de l’outil de migration est disponible sur GitHub dans ce dépôt.The migration tool source code is available on GitHub in this repository. Vous pouvez télécharger et compiler la solution localement ou télécharger une solution binaire pré-compilée, puis exécuter soit :You can download and compile the solution locally, or download a pre-compiled binary, then run either:

  • Dtui.exe : version de l’interface graphique de l’outilDtui.exe: Graphical interface version of the tool
  • Dt.exe : version en ligne de commande de l’outilDt.exe: Command-line version of the tool

Sélectionnez la source de donnéesSelect data source

Une fois que vous avez installé l’outil, il est temps d’importer vos données.Once you've installed the tool, it's time to import your data. Quel type de données voulez-vous importer ?What kind of data do you want to import?

Importation de fichiers JSONImport JSON files

L’option d’importateur de source de fichiers JSON vous permet d’importer un ou plusieurs fichiers JSON à un seul document ou des fichiers JSON qui contiennent chacun un tableau de documents 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. Quand vous ajoutez des dossiers qui contiennent des fichiers JSON à importer, vous avez la possibilité d’effectuer une recherche récursive sur les fichiers situés dans des sous-dossiers.When adding folders that have JSON files to import, you have the option of recursively searching for files in subfolders.

Capture d’écran des options sources du fichier JSON - Outils de migration de base de données

La chaîne de connexion est au format suivant :The connection string is in the following format:

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

  • <CosmosDB Endpoint> est l’URI du point de terminaison.The <CosmosDB Endpoint> is the endpoint URI. Vous pouvez obtenir cette valeur à partir du Portail Azure.You can get this value from the Azure portal. Accédez à votre compte Azure Cosmos.Navigate to your Azure Cosmos account. Ouvrez le volet Vue d’ensemble et copiez la valeur URI.Open the Overview pane and copy the URI value.
  • <AccountKey> correspond au « mot de passe » ou à la clé primaire.The <AccountKey> is the "Password" or PRIMARY KEY. Vous pouvez obtenir cette valeur à partir du Portail Azure.You can get this value from the Azure portal. Accédez à votre compte Azure Cosmos.Navigate to your Azure Cosmos account. Ouvrez le volet Chaînes de connexion ou Clés et copiez la valeur de « mot de passe » ou de clé primaire.Open the Connection Strings or Keys pane, and copy the "Password" or PRIMARY KEY value.
  • <CosmosDB Database> est le nom de la base de données CosmosDB.The <CosmosDB Database> is the CosmosDB database name.

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

Notes

Utilisez la commande Verify pour vous assurer que le compte Cosmos DB spécifié dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the Cosmos DB account specified in the connection string field can be accessed.

Voici quelques exemples de lignes de commande pour importer des fichiers 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

Importation à partir de MongoDBImport from MongoDB

Important

Si vous importez dans un compte Cosmos configuré avec l’API Azure Cosmos DB pour MongoDB, suivez ces instructions.If you're importing to a Cosmos account configured with Azure Cosmos DB's API for MongoDB, follow these instructions.

L’option d’importateur de source MongoDB vous permet d’importer à partir d’une collection MongoDB unique, éventuellement de filtrer les documents à l’aide d’une requête et de modifier la structure de document à l’aide d’une projection.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.

Capture d’écran des options sources MongoDB

La chaîne de connexion est au format MongoDB standard :The connection string is in the standard MongoDB format:

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

Notes

Utilisez la commande Verify pour vous assurer que l'instance MongoDB spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the MongoDB instance specified in the connection string field can be accessed.

Saisissez le nom de la collection depuis laquelle les données seront importées.Enter the name of the collection from which data will be imported. Vous pouvez éventuellement spécifier ou fournir un fichier pour une requête (par exemple, {pop: {$gt:5000}}) ou une projection (par exemple, {loc:0}) pour à la fois filtrer et mettre en forme les données que vous importez.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.

Voici quelques exemples de ligne de commande pour l’importation depuis 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

Importation de fichiers d'exportation MongoDBImport MongoDB export files

Important

Si vous importez dans un compte Azure Cosmos DB avec la prise en charge de MongoDB, suivez ces instructions.If you're importing to an Azure Cosmos DB account with support for MongoDB, follow these instructions.

L’option d’importateur source du fichier JSON d’exportation MongoDB vous permet d’importer un ou plusieurs fichiers JSON générés depuis l’utilitaire mongoexport.The MongoDB export JSON file source importer option allows you to import one or more JSON files produced from the mongoexport utility.

Capture d’écran des options sources d’exportation MongoDB

Quand vous ajoutez des dossiers qui contiennent des fichiers JSON d’exportation MongoDB à importer, vous avez la possibilité d’effectuer une recherche récursive sur les fichiers situés dans des sous-dossiers.When adding folders that have MongoDB export JSON files for import, you have the option of recursively searching for files in subfolders.

Voici un exemple de ligne de commande pour importer à partir de fichiers JSON d’exportation 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

Importation depuis SQL ServerImport from SQL Server

L’option d’importateur source SQL vous permet d'importer à partir d'une base de données SQL Server individuelle et de filtrer éventuellement les enregistrements à importer à l'aide d'une requête.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. De plus, vous pouvez modifier la structure du document en spécifiant un séparateur d'imbrication (plus d’informations dans un instant).In addition, you can modify the document structure by specifying a nesting separator (more on that in a moment).

Capture d’écran des options sources SQL - Outils de migration de base de données

Le format de la chaîne de connexion est le format de chaîne de connexion SQL standard.The format of the connection string is the standard SQL connection string format.

Notes

Utilisez la commande Verify pour vous assurer que l'instance SQL Server spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the SQL Server instance specified in the connection string field can be accessed.

La propriété du séparateur d'imbrication est utilisée pour créer des relations hiérarchiques (sous-documents) lors de l'importation.The nesting separator property is used to create hierarchical relationships (sub-documents) during import. Examinez la requête SQL suivante :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'

Cette requête retourne les résultats (partiels) suivants :Which returns the following (partial) results:

Capture d’écran des résultats de requête SQL

Notez les alias tels que Address.AddressType et Address.Location.StateProvinceName.Note the aliases such as Address.AddressType and Address.Location.StateProvinceName. En spécifiant un séparateur d’imbrication de « . », l’outil d’importation crée les sous-documents Address et Address.Location lors de l’importation.By specifying a nesting separator of '.', the import tool creates Address and Address.Location subdocuments during the import. Voici un exemple de document qui en résulte dans 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" } }

Voici quelques exemples de lignes de commande pour l’importation depuis 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

Importer des fichiers CSV et convertir le format CSV en JSONImport CSV files and convert CSV to JSON

L'option d'importateur source du fichier CSV vous permet d'importer un ou plusieurs fichiers CSV.The CSV file source importer option enables you to import one or more CSV files. Quand vous ajoutez des dossiers qui contiennent des fichiers CSV à importer, vous avez la possibilité d’effectuer une recherche récursive sur les fichiers situés dans des sous-dossiers.When adding folders that have CSV files for import, you have the option of recursively searching for files in subfolders.

Capture d’écran des options sources CSV - CSV vers JSON

De même que pour la source SQL, la propriété du séparateur d'imbrication peut être utilisée pour créer des relations hiérarchiques (sous-documents) lors de l'importation.Similar to the SQL source, the nesting separator property may be used to create hierarchical relationships (sub-documents) during import. Prenez en compte la ligne d'en-tête et les lignes de données du CSV suivant :Consider the following CSV header row and data rows:

Capture d’écran des exemples d’enregistrement CSV - CSV vers JSON

Notez les alias tels que DomainInfo.Domain_Name et RedirectInfo.Redirecting.Note the aliases such as DomainInfo.Domain_Name and RedirectInfo.Redirecting. En spécifiant un séparateur d’imbrication de « . », l’outil d’importation crée les sous-documents DomainInfo et RedirectInfo lors de l’importation.By specifying a nesting separator of '.', the import tool will create DomainInfo and RedirectInfo subdocuments during the import. Voici un exemple de document qui en résulte dans 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" }

L’outil d’importation essaie de déduire les informations de type pour les valeurs sans guillemets dans les fichiers CSV (les valeurs entre guillemets sont toujours traitées comme des chaînes).The import tool tries to infer type information for unquoted values in CSV files (quoted values are always treated as strings). Les types sont identifiés dans l'ordre suivant : nombre, date et heure, valeur booléenne.Types are identified in the following order: number, datetime, boolean.

Deux autres points sont à prendre en considération concernant l'importation CSV :There are two other things to note about CSV import:

  1. Par défaut, les valeurs sans guillemets sont toujours privées de leurs tabulations et espaces, tandis que les valeurs entre guillemets sont conservées telles quelles.By default, unquoted values are always trimmed for tabs and spaces, while quoted values are preserved as-is. Ce comportement peut être remplacé en cochant la case Rogner les valeurs entre guillemets ou à l'aide de l'option de ligne de commande /s.TrimQuoted.This behavior can be overridden with the Trim quoted values checkbox or the /s.TrimQuoted command-line option.
  2. Par défaut, une valeur null sans guillemets est considérée comme une valeur null.By default, an unquoted null is treated as a null value. Ce comportement peut être remplacé (c’est-à-dire, traiter une valeur null sans guillemets comme une chaîne « null ») en cochant la case Traiter les valeurs null sans guillemets comme des chaînes ou à l’aide de l’option de ligne de commande /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.

Voici un exemple de ligne de commande pour une importation 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

Importation depuis le stockage de tables AzureImport from Azure Table storage

L'option d’importateur source de Stockage Table Azure vous permet d’effectuer l’importation à partir d'une table individuelle de Stockage Table Azure.The Azure Table storage source importer option allows you to import from an individual Azure Table storage table. Vous pouvez aussi filtrer les entités de table à importer.Optionally, you can filter the table entities to be imported.

Vous pouvez sortir des données qui ont été importées de Stockage Table Azure vers des tables et des entités Azure Cosmos DB en vue de les utiliser avec l’API Table.You may output data that was imported from Azure Table Storage to Azure Cosmos DB tables and entities for use with the Table API. Les données importées peuvent aussi être sorties vers des collections et des documents pour une utilisation avec l’API SQL.Imported data can also be output to collections and documents for use with the SQL API. Cependant, l’API Table est disponible uniquement en tant que cible dans l’utilitaire de ligne de commande.However, Table API is only available as a target in the command-line utility. Vous ne pouvez pas exporter vers l’API Table à partir de l’interface utilisateur de l’outil de migration de données.You can't export to Table API by using the Data Migration tool user interface. Pour plus d’informations, consultez la section Importer des données à utiliser avec l’API Table Azure Cosmos DB.For more information, see Import data for use with the Azure Cosmos DB Table API.

Capture d’écran des options sources de stockage de tables Azure

Le format de la chaîne de connexion de stockage de tables Azure est :The format of the Azure Table storage connection string is:

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

Notes

Utilisez la commande Verify pour vous assurer que l'instance de stockage de tables Azure spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the Azure Table storage instance specified in the connection string field can be accessed.

Entrez le nom de la table Azure à partir de laquelle effectuer l’importation.Enter the name of the Azure table from to import from. Vous pouvez éventuellement spécifier un filtre.You may optionally specify a filter.

L'option d’importateur source de stockage de tables Azure dispose des options supplémentaires suivantes :The Azure Table storage source importer option has the following additional options:

  1. Inclusion des champs internesInclude Internal Fields
    1. Tous : inclure tous les champs internes (PartitionKey, RowKey et Timestamp)All - Include all internal fields (PartitionKey, RowKey, and Timestamp)
    2. Aucun : exclure tous les champs internesNone - Exclude all internal fields
    3. RowKey : inclure uniquement le champ RowKeyRowKey - Only include the RowKey field
  2. Sélection des colonnesSelect Columns
    1. Les filtres de stockage Table Azure ne prennent pas en charge les projections.Azure Table storage filters don't support projections. Si vous souhaitez importer uniquement des propriétés d'entité de table Azure spécifiques, ajoutez-les à la liste Sélection des colonnes.If you want to only import specific Azure Table entity properties, add them to the Select Columns list. Toutes les autres propriétés d'entité sont ignorées.All other entity properties are ignored.

Voici un exemple de ligne de commande pour effectuer l’importation à partir du Stockage Table Azure :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

Importation à partir d’Amazon DynamoDBImport from Amazon DynamoDB

L’option d’importateur de source Amazon DynamoDB vous permet d’importer à partir d’une seule table Amazon DynamoDB.The Amazon DynamoDB source importer option allows you to import from a single Amazon DynamoDB table. Elle permet de filtrer les entités à importer.It can optionally filter the entities to be imported. Plusieurs modèles sont fournis pour faciliter au maximum la configuration d'une importation.Several templates are provided so that setting up an import is as easy as possible.

Capture d’écran des options sources Amazon DynamoDB - Outils de migration de base de données

Capture d’écran des options sources Amazon DynamoDB - Outils de migration de base de données

Le format de la chaîne de connexion Amazon DynamoDB est :The format of the Amazon DynamoDB connection string is:

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

Notes

Utilisez la commande Verify pour vous assurer que l'instance Amazon DynamoBD spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the Amazon DynamoDB instance specified in the connection string field can be accessed.

Voici un exemple de ligne de commande pour effectuer l’importation à partir d'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

Importer à partir du Stockage Blob AzureImport from Azure Blob storage

Les options d’importateur source du fichier JSON, du fichier d'exportation MongoDB et du fichier CSV vous permettent d'importer un ou plusieurs fichiers à partir du stockage d’objets blob 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. Après avoir spécifié l’URL d’un conteneur d'objets blob et une clé de compte, fournissez une expression régulière pour sélectionner le ou les fichier à importer.After specifying a Blob container URL and Account Key, provide a regular expression to select the file(s) to import.

Capture d’écran des options sources du fichier blob

Voici un exemple de ligne de commande pour importer des fichiers JSON à partir du Stockage Blob Azure :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

Importer à partir d’une collection d’API SQLImport from a SQL API collection

L’option de l’importateur source Azure Cosmos DB vous permet d’importer des données à partir d’un ou de plusieurs conteneurs Azure Cosmos DB et de filtrer éventuellement des documents à l’aide d’une requête.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.

Capture d’écran des options sources d’Azure Cosmos DB

Le format de la chaîne de connexion Azure Cosmos DB est :The format of the Azure Cosmos DB connection string is:

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

Vous pouvez récupérer la chaîne de connexion de compte Azure Cosmos DB à partir de la page Clés du portail Azure, comme décrit dans Gérer les comptes de base de données dans 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. Cependant, le nom de la base de données doit être ajouté à la chaîne de connexion dans le format suivant :However, the name of the database needs to be appended to the connection string in the following format:

Database=<CosmosDB Database>;

Notes

Utilisez la commande Verify pour vous assurer que l’instance Azure Cosmos DB spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Pour effectuer l’importation à partir d’un seul conteneur Azure Cosmos DB, entrez le nom de la collection à partir de laquelle importer les données.To import from a single Azure Cosmos container, enter the name of the collection to import data from. Pour importer à partir de plusieurs conteneurs Azure Cosmos DB, fournissez une expression régulière correspondant à un ou plusieurs noms de collections (par exemple 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). Vous pouvez éventuellement spécifier ou fournir un fichier pour une requête pour à la fois filtrer et mettre en forme les données que vous importez.You may optionally specify, or provide a file for, a query to both filter and shape the data that you're importing.

Notes

Étant donné que le champ de collection accepte les expressions régulières, si vous importez à partir d’une collection unique dont le nom contient des caractères d’expression régulière, ces caractères doivent être placés en conséquence dans une séquence d’échappement.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.

L’option d’importateur source Azure Cosmos DB dispose des options avancées suivantes :The Azure Cosmos DB source importer option has the following advanced options:

  1. Inclure des champs internes : spécifie s’il faut inclure ou non dans l’exportation les propriétés système du document Azure Cosmos DB (par exemple, _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. Nombre de nouvelles tentatives en cas d’échec : spécifie le nombre de nouvelles tentatives de connexion à Azure Cosmos DB en cas d’échecs temporaires (par exemple, une interruption de connectivité réseau).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. Intervalle avant nouvelle tentative : spécifie le délai d’attente entre les nouvelles tentatives de connexion à Azure Cosmos DB en cas d’échecs temporaires (par exemple, une interruption de la connectivité réseau).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. Mode de connexion : cette option indique le mode de connexion à utiliser avec Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Les choix disponibles sont DirectTcp, DirectHttps et la passerelle.The available choices are DirectTcp, DirectHttps, and Gateway. Les modes de connexion directs sont plus rapides, tandis que le mode passerelle est mieux adapté au pare-feu car il utilise uniquement le port 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Capture d’écran des options sources avancées d’Azure Cosmos DB

Conseil

L’outil d’importation utilise le mode de connexion DirectTcp par défaut.The import tool defaults to connection mode DirectTcp. Si vous rencontrez des problèmes liés au pare-feu, passer au mode de connexion passerelle qui ne nécessite que le port 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Voici quelques exemples de lignes de commande pour l’importation à partir d’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

Conseil

L’outil d’importation de données Azure Cosmos DB prend également en charge l’importation de données à partir de l’émulateur Azure Cosmos DB.The Azure Cosmos DB Data Import Tool also supports import of data from the Azure Cosmos DB Emulator. Quand vous importez des données à partir d’un émulateur local, affectez https://localhost:<port> comme point de terminaison.When importing data from a local emulator, set the endpoint to https://localhost:<port>.

Importation à partir de HBaseImport from HBase

L’option d’importateur source HBase vous permet d’importer des données à partir d'une table HBase et de filtrer éventuellement les données.The HBase source importer option allows you to import data from an HBase table and optionally filter the data. Plusieurs modèles sont fournis pour faciliter au maximum la configuration d'une importation.Several templates are provided so that setting up an import is as easy as possible.

Capture d’écran des options sources HBase

Capture d’écran des options sources HBase

Le format de la chaîne de connexion HBase Stargate est :The format of the HBase Stargate connection string is:

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

Notes

Utilisez la commande Verify pour vous assurer que l'instance HBase spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the HBase instance specified in the connection string field can be accessed.

Voici un exemple de ligne de commande pour l’importation à partir de 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

Importer vers l’API SQL (importation en bloc)Import to the SQL API (Bulk Import)

L’importateur en bloc Azure Cosmos DB vous permet d’importer à partir des options sources disponibles, à l’aide d’une procédure Azure Cosmos DB stockée pour plus d’efficacité.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. L’outil prend en charge l’importation dans un conteneur Azure Cosmos monopartition.The tool supports import to one single-partitioned Azure Cosmos container. Il prend aussi en charge l’importation partitionnée par laquelle les données sont partitionnées dans plusieurs conteneurs Azure Cosmos DB monopartition.It also supports sharded import whereby data is partitioned across more than one single-partitioned Azure Cosmos container. Pour plus d’informations sur le partitionnement de données, consultez Partitionnement et mise à l’échelle dans Azure Cosmos DB.For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB. L'outil crée, exécute, puis supprime la procédure stockée de la ou les collections cibles.The tool creates, executes, and then deletes the stored procedure from the target collection(s).

Capture d’écran des options de bloc d’Azure Cosmos DB

Le format de la chaîne de connexion Azure Cosmos DB est :The format of the Azure Cosmos DB connection string is:

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

La chaîne de connexion de compte Azure Cosmos DB peut être récupérée à partir de la page Clés du portail Azure, comme décrit dans Guide pratique pour gérer un compte Azure Cosmos DB, mais le nom de la base de données doit être ajouté à la chaîne de connexion au format suivant :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>;

Notes

Utilisez la commande Verify pour vous assurer que l’instance Azure Cosmos DB spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Pour importer des données dans une seule collection, entrez le nom de la collection cible et cliquez sur le bouton Ajouter.To import to a single collection, enter the name of the collection to import data from and click the Add button. Pour importer dans plusieurs collections, entrez le nom de chaque collection individuellement ou utilisez la syntaxe suivante pour spécifier plusieurs collections : préfixe_collection[index de début - index de fin].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]. Quand vous spécifiez plusieurs collections en utilisant la syntaxe ci-dessus, tenez compte des points suivants :When specifying more than one collection using the aforementioned syntax, keep the following guidelines in mind:

  1. Seuls les modèles de nom de plage de nombres entiers sont pris en charge.Only integer range name patterns are supported. Par exemple, la spécification de collection[0-3] crée les collections suivantes : collection0, collection1, collection2, collection3.For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. Vous pouvez utiliser une syntaxe abrégée : collection[3], qui crée le même jeu de collections que celui mentionné à l'étape 1.You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. Plusieurs substitutions peuvent être fournies.More than one substitution can be provided. Par exemple, collection[0-1] [0-9] génère 20 noms de collection avec des zéros non significatifs (collection01, ..02, ..03).For example, collection[0-1] [0-9] generates 20 collection names with leading zeros (collection01, ..02, ..03).

Une fois que les noms de la collection ont été spécifiés, choisissez le débit souhaité des collections (entre 400 RU et 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). Pour de meilleures performances d’importation, choisissez un débit plus élevé.For best import performance, choose a higher throughput. Pour plus d’informations sur les niveaux de performances, consultez les niveaux de performances d’Azure Cosmos DB.For more information about performance levels, see Performance levels in Azure Cosmos DB.

Notes

Le paramètre de débit de performance s’applique uniquement à la création de collections.The performance throughput setting only applies to collection creation. Si la collection spécifiée existe déjà, son débit n’est pas modifié.If the specified collection already exists, its throughput won't be modified.

Quand vous importez dans plusieurs collections, l’outil d’importation prend en charge le partitionnement basé sur le hachage.When you import to more than one collection, the import tool supports hash-based sharding. Dans ce scénario, spécifiez la propriété de document que vous souhaitez utiliser comme clé de partition.In this scenario, specify the document property you wish to use as the Partition Key. (Si le champ Clé de partition n’est pas renseigné, les documents sont partitionnés de façon aléatoire parmi les collections cibles.)(If Partition Key is left blank, documents are sharded randomly across the target collections.)

Vous pouvez éventuellement spécifier le champ de la source d’importation qui doit être utilisé comme propriété d’ID de document Azure Cosmos DB pendant l’importation.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 les documents ne possèdent pas cette propriété, l’outil d’importation génère un GUID en guise de valeur de la propriété ID.If documents don't have this property, then the import tool generates a GUID as the ID property value.

De nombreuses options avancées sont disponibles lors de l'importation.There are a number of advanced options available during import. Tout d'abord, tandis que l'outil inclut une procédure stockée d’importation en bloc par défaut (BulkInsert.js), vous pouvez choisir d’indiquer votre propre procédure stockée d'importation :First, while the tool includes a default bulk import stored procedure (BulkInsert.js), you may choose to specify your own import stored procedure:

Capture d’écran de l’option sproc d’insertion de bloc Azure Cosmos DB

Par ailleurs, quand vous importez des types de date (par exemple, à partir de SQL Server ou de MongoDB), vous avoir le choix entre trois options d'importation :Additionally, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Capture d’écran des options d’importation de date et d’heure Azure Cosmos DB

  • Chaîne : conserver en tant que valeur de chaîneString: Persist as a string value
  • Epoch : conserver en tant que valeur numérique EpochEpoch: Persist as an Epoch number value
  • Les deux : conserver les chaînes et les valeurs numériques EpochBoth: Persist both string and Epoch number values. Cette option crée un sous-document, par exemple : "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 }

L’importateur en bloc Azure Cosmos DB dispose des options avancées supplémentaires suivantes :The Azure Cosmos DB Bulk importer has the following additional advanced options:

  1. Taille du lot : l’outil adopte par défaut une taille de lot de 50.Batch Size: The tool defaults to a batch size of 50. Si les documents qui doivent être importés sont volumineux, pensez à réduire la taille du lot.If the documents to be imported are large, consider lowering the batch size. À l’inverse, si les documents qui doivent être importés sont peu volumineux, pensez à augmenter la taille du lot.Conversely, if the documents to be imported are small, consider raising the batch size.
  2. Taille de script maximale (octets) : l’outil utilise par défaut une taille de script maximale de 512 Ko.Max Script Size (bytes): The tool defaults to a max script size of 512 KB.
  3. Désactivation de la génération automatique d’ID : si tous les documents à importer contiennent un champ ID, le fait de sélectionner cette option peut accroître les performances.Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. Les documents qui n’ont pas de champ ID unique ne sont pas importés.Documents missing a unique ID field aren't imported.
  4. Mise à jour des documents existants : par défaut, l’outil ne remplace pas les documents existants présentant des conflits d’ID.Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. Le fait de sélectionner cette option permet de remplacer les documents existants dont les ID sont identiques.Selecting this option allows overwriting existing documents with matching IDs. Cette fonctionnalité est utile pour les migrations de données planifiées qui mettent à jour des documents existants.This feature is useful for scheduled data migrations that update existing documents.
  5. Nombre de nouvelles tentatives en cas d’échec : spécifie la fréquence des nouvelles tentatives de connexion à Azure Cosmos DB en cas d’échec temporaire (par exemple, une interruption de la connectivité réseau).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. Intervalle avant nouvelle tentative : spécifie le délai d’attente entre les nouvelles tentatives de connexion à Azure Cosmos DB en cas d’échecs temporaires (par exemple, une interruption de la connectivité réseau).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. Mode de connexion : cette option indique le mode de connexion à utiliser avec Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Les choix disponibles sont DirectTcp, DirectHttps et la passerelle.The available choices are DirectTcp, DirectHttps, and Gateway. Les modes de connexion directs sont plus rapides, tandis que le mode passerelle est mieux adapté au pare-feu car il utilise uniquement le port 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Capture d’écran des options d’importation en bloc avancées d’Azure Cosmos DB

Conseil

L’outil d’importation utilise le mode de connexion DirectTcp par défaut.The import tool defaults to connection mode DirectTcp. Si vous rencontrez des problèmes liés au pare-feu, passer au mode de connexion passerelle qui ne nécessite que le port 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Importer vers l’API SQL (importation d’enregistrement séquentiel)Import to the SQL API (Sequential Record Import)

L’importateur d’enregistrements séquentiel Azure Cosmos DB vous permet d’importer à partir d’une source proposée en option, enregistrement par enregistrement.The Azure Cosmos DB sequential record importer allows you to import from an available source option on a record-by-record basis. Vous pouvez choisir cette option si vous importez vers une collection existante ayant atteint son quota de procédures stockées.You might choose this option if you’re importing to an existing collection that has reached its quota of stored procedures. L’outil prend en charge l’importation dans un seul conteneur (à partition unique ou à plusieurs partitions) Azure Cosmos.The tool supports import to a single (both single-partition and multi-partition) Azure Cosmos container. Il prend aussi en charge l’importation partitionnée par laquelle les données sont partitionnées dans plusieurs conteneurs Azure Cosmos à partition unique ou à plusieurs partitions.It also supports sharded import whereby data is partitioned across more than one single-partition or multi-partition Azure Cosmos container. Pour plus d’informations sur le partitionnement de données, consultez Partitionnement et mise à l’échelle dans Azure Cosmos DB.For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB.

Capture d’écran des options d’importation d’enregistrement séquentiel d’Azure Cosmos DB

Le format de la chaîne de connexion Azure Cosmos DB est :The format of the Azure Cosmos DB connection string is:

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

Vous pouvez récupérer la chaîne de connexion pour le compte Azure Cosmos DB à partir de la page Clés du portail Azure, comme décrit dans Gérer les comptes de base de données dans 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. Cependant, le nom de la base de données doit être ajouté à la chaîne de connexion dans le format suivant :However, the name of the database needs to be appended to the connection string in the following format:

Database=<Azure Cosmos database>;

Notes

Utilisez la commande Verify pour vous assurer que l’instance Azure Cosmos DB spécifiée dans le champ de la chaîne de connexion est accessible.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Pour importer dans seule collection, entrez le nom de la collection dans laquelle les données doivent être importées, puis cliquez sur le bouton Ajouter.To import to a single collection, enter the name of the collection to import data into, and then click the Add button. Pour importer dans plusieurs collections, entrez le nom de chaque collection individuellement.To import to more than one collection, enter each collection name individually. Vous pouvez aussi utiliser la syntaxe suivante pour spécifier plusieurs collections : préfixe_collection[index de début - index de fin].You may also use the following syntax to specify more than one collection: collection_prefix[start index - end index]. Quand vous spécifiez plusieurs collections en utilisant la syntaxe ci-dessus, tenez compte des points suivants :When specifying more than one collection via the aforementioned syntax, keep the following guidelines in mind:

  1. Seuls les modèles de nom de plage de nombres entiers sont pris en charge.Only integer range name patterns are supported. Par exemple, la spécification de collection[0-3] crée les collections suivantes : collection0, collection1, collection2, collection3.For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. Vous pouvez utiliser une syntaxe abrégée : collection[3], qui crée le même jeu de collections que celui mentionné à l'étape 1.You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. Plusieurs substitutions peuvent être fournies.More than one substitution can be provided. Par exemple, collection[0-1] [0-9] crée 20 noms de collection avec des zéros non significatifs (collection01, ..02, ..03).For example, collection[0-1] [0-9] creates 20 collection names with leading zeros (collection01, ..02, ..03).

Une fois que les noms de la collection ont été spécifiés, choisissez le débit souhaité des collections (entre 400 RU et 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). Pour de meilleures performances d’importation, choisissez un débit plus élevé.For best import performance, choose a higher throughput. Pour plus d’informations sur les niveaux de performances, consultez les niveaux de performances d’Azure Cosmos DB.For more information about performance levels, see Performance levels in Azure Cosmos DB. Les importations dans des collections avec un débit > 10 000 RU nécessitent une clé de partition.Any import to collections with throughput >10,000 RUs require a partition key. Si vous choisissez d’avoir plus de 250 000 RU, vous devez envoyer une demande d’augmentation de votre compte dans le portail.If you choose to have more than 250,000 RUs, you need to file a request in the portal to have your account increased.

Notes

Le paramètre de débit s’applique uniquement à la création de collections ou de bases de données.The throughput setting only applies to collection or database creation. Si la collection spécifiée existe déjà, son débit n’est pas modifié.If the specified collection already exists, its throughput won't be modified.

Quand vous importez dans plusieurs collections, l’outil d’importation prend en charge le partitionnement basé sur le hachage.When importing to more than one collection, the import tool supports hash-based sharding. Dans ce scénario, spécifiez la propriété de document que vous souhaitez utiliser comme clé de partition.In this scenario, specify the document property you wish to use as the Partition Key. (Si le champ Clé de partition n’est pas renseigné, les documents sont partitionnés de façon aléatoire parmi les collections cibles.)(If Partition Key is left blank, documents are sharded randomly across the target collections.)

Vous pouvez éventuellement spécifier le champ de la source d’importation qui doit être utilisé comme propriété d’ID de document Azure Cosmos DB pendant l’importation.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 les documents ne possèdent pas cette propriété, l’outil d’importation génère un GUID en guise de valeur de la propriété ID.)(If documents don't have this property, then the import tool generates a GUID as the ID property value.)

De nombreuses options avancées sont disponibles lors de l'importation.There are a number of advanced options available during import. Tout d’abord, quand vous importez des types de date (par exemple, à partir de SQL Server ou de MongoDB), vous avez le choix entre trois options d'importation :First, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Capture d’écran des options d’importation de date et d’heure Azure Cosmos DB

  • Chaîne : conserver en tant que valeur de chaîneString: Persist as a string value
  • Epoch : conserver en tant que valeur numérique EpochEpoch: Persist as an Epoch number value
  • Les deux : conserver les chaînes et les valeurs numériques EpochBoth: Persist both string and Epoch number values. Cette option crée un sous-document, par exemple : "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 }

L’importateur d’enregistrement séquentiel Azure Cosmos DB dispose des options avancées supplémentaires suivantes :The Azure Cosmos DB - Sequential record importer has the following additional advanced options:

  1. Nombre de demandes parallèles : l’outil utilise par défaut deux demandes parallèles.Number of Parallel Requests: The tool defaults to two parallel requests. Si les documents qui doivent être importés sont peu volumineux, pensez à augmenter le nombre de demandes parallèles.If the documents to be imported are small, consider raising the number of parallel requests. Si ce nombre est trop élevé, l’importation peut rencontrer une limitation.If this number is raised too much, the import may experience rate limiting.
  2. Désactivation de la génération automatique d’ID : si tous les documents à importer contiennent un champ ID, le fait de sélectionner cette option peut accroître les performances.Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. Les documents qui n’ont pas de champ ID unique ne sont pas importés.Documents missing a unique ID field aren't imported.
  3. Mise à jour des documents existants : par défaut, l’outil ne remplace pas les documents existants présentant des conflits d’ID.Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. Le fait de sélectionner cette option permet de remplacer les documents existants dont les ID sont identiques.Selecting this option allows overwriting existing documents with matching IDs. Cette fonctionnalité est utile pour les migrations de données planifiées qui mettent à jour des documents existants.This feature is useful for scheduled data migrations that update existing documents.
  4. Nombre de nouvelles tentatives en cas d’échec : spécifie la fréquence des nouvelles tentatives de connexion à Azure Cosmos DB en cas d’échec temporaire (par exemple, une interruption de la connectivité réseau).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. Intervalle avant nouvelle tentative : spécifie le délai d’attente entre les nouvelles tentatives de connexion à Azure Cosmos DB en cas d’échec temporaire (par exemple, une interruption de la connectivité réseau).Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  6. Mode de connexion : cette option indique le mode de connexion à utiliser avec Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Les choix disponibles sont DirectTcp, DirectHttps et la passerelle.The available choices are DirectTcp, DirectHttps, and Gateway. Les modes de connexion directs sont plus rapides, tandis que le mode passerelle est mieux adapté au pare-feu car il utilise uniquement le port 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Capture d’écran des options d’importation d’enregistrement séquentiel avancées d’Azure Cosmos DB

Conseil

L’outil d’importation utilise le mode de connexion DirectTcp par défaut.The import tool defaults to connection mode DirectTcp. Si vous rencontrez des problèmes liés au pare-feu, passer au mode de connexion passerelle qui ne nécessite que le port 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Spécifier une stratégie d’indexationSpecify an indexing policy

Quand vous autorisez l’outil de migration à créer des collections d’API SQL Azure Cosmos DB pendant l’importation, vous pouvez spécifier la stratégie d’indexation des collections.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. Dans la section des options d’importation en bloc avancées Azure Cosmos DB et des options d’enregistrement séquentiel Azure Cosmos DB, accédez à la section de la stratégie de l’indexation.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.

Capture d’écran des options de stratégie d’indexation avancées d’Azure Cosmos DB

À l'aide de l’option de stratégie d'indexation avancée, vous pouvez sélectionner un fichier de stratégie d'indexation, entrer manuellement une stratégie d'indexation ou en sélectionner une parmi les différents modèles proposés par défaut (en cliquant avec le bouton droit dans la zone de texte de stratégie d'indexation).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).

L'outil fournit les modèles de stratégie suivants :The policy templates the tool provides are:

  • Par défaut.Default. Cette stratégie est à privilégier quand vous effectuez des requêtes d’égalité sur des chaînes.This policy is best when you perform equality queries against strings. Elle fonctionne aussi si vous utilisez des requêtes ORDER BY, de plage de données et d’égalité pour les nombres.It also works if you use ORDER BY, range, and equality queries for numbers. Cette stratégie dispose d’une surcharge de stockage d'index inférieure à Plage.This policy has a lower index storage overhead than Range.
  • Plage.Range. Cette stratégie est préférable quand vous utilisez des requêtes ORDER BY, de plage de données et d’égalité sur des nombres et des chaînes.This policy is best when you use ORDER BY, range, and equality queries on both numbers and strings. Cette stratégie dispose d’une surcharge de stockage d'index supérieure à Par défaut ou Hachage.This policy has a higher index storage overhead than Default or Hash.

Capture d’écran des options de stratégie d’indexation avancées d’Azure Cosmos DB

Notes

Si vous ne spécifiez pas de stratégie d’indexation, la stratégie par défaut est appliquée.If you don't specify an indexing policy, then the default policy is applied. Pour plus d’informations sur les stratégies d’indexation, consultez Stratégies d’indexation d’Azure Cosmos DB.For more information about indexing policies, see Azure Cosmos DB indexing policies.

Exportation vers un fichier JSONExport to JSON file

L’exportateur JSON Azure Cosmos DB vous permet d’exporter n’importe quelle source parmi celles proposées en option vers un fichier JSON qui contient un tableau de documents 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. L’outil gère l’exportation automatiquement.The tool handles the export for you. Vous pouvez aussi choisir d’afficher la commande de migration résultante et d’exécuter la commande par vous-même.Alternatively, you can choose to view the resulting migration command and run the command yourself. Le fichier JSON résultant peut être stocké localement ou dans le stockage d’objets blob Azure.The resulting JSON file may be stored locally or in Azure Blob storage.

Capture d’écran des options d’exportation de fichier local JSON Azure Cosmos DB

Capture d’écran des options d’exportation du stockage blob Azure JSON Azure Cosmos DB

Vous pouvez éventuellement choisir d’agrémenter le JSON obtenu.You may optionally choose to prettify the resulting JSON. Cette action a pour effet d’accroître la taille du document obtenu tout en rendant le contenu plus lisible.This action will increase the size of the resulting document while making the contents more human readable.

  • Exportation JSON standardStandard 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"}]}]
    
  • Exportation JSON agrémentéePrettified 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"
        }
      ]
      }]
    

Voici un exemple de ligne de commande pour exporter le fichier JSON vers le stockage Blob Azure :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

Configuration avancéeAdvanced configuration

Dans l'écran Configuration avancée, spécifiez l'emplacement du fichier journal dans lequel écrire toutes les erreurs.In the Advanced configuration screen, specify the location of the log file to which you would like any errors written. Les règles suivantes s'appliquent à cette page :The following rules apply to this page:

  1. Si un nom de fichier n’est pas fourni, toutes les erreurs sont retournées dans la page Résultats.If a file name isn't provided, then all errors are returned on the Results page.

  2. Si un nom de fichier est fourni sans répertoire, le fichier est créé (ou remplacé) dans le répertoire de l'environnement actuel.If a file name is provided without a directory, then the file is created (or overwritten) in the current environment directory.

  3. Si vous sélectionnez un fichier existant, il est remplacé ; il n’existe pas d’option d’ajout.If you select an existing file, then the file is overwritten, there's no append option.

  4. Choisissez ensuite si vous souhaitez consigner tous les messages d’erreur, uniquement les messages critiques, ou aucun message d'erreur.Then, choose whether to log all, critical, or no error messages. Enfin, indiquez la fréquence de mise à jour du message de progression du transfert qui s’affiche à l’écran.Finally, decide how frequently the on-screen transfer message is updated with its progress.

    Écran de configuration des paramètres avancés

Confirmation des paramètres d'importation et affichage de la ligne de commandeConfirm import settings and view command line

  1. Après avoir spécifié les informations de la source et de la cible ainsi que la configuration avancée, vérifiez le récapitulatif de la migration et affichez ou copiez la commande de migration résultante, si vous le souhaitez.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. (La copie de la commande est utile pour automatiser les opérations d’importation.)(Copying the command is useful to automate import operations.)

    Capture d'écran de l'écran de résumé

    Capture d'écran de l'écran de résumé

  2. Une fois que vous êtes satisfait de vos options sources et cibles, cliquez sur Importer.Once you’re satisfied with your source and target options, click Import. Les informations concernant le temps écoulé, la quantité transférée et les échecs (si vous n'avez pas fourni de nom de fichier dans la configuration avancée) sont mises à jour pendant le processus d'importation.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. Une fois l’importation terminée, vous pouvez exporter les résultats (par exemple, pour gérer les échecs d’importation éventuels).Once complete, you can export the results (for example, to deal with any import failures).

    Capture d’écran des options d’exportation JSON Azure Cosmos DB

  3. Vous pouvez aussi lancer une nouvelle importation en réinitialisant toutes les valeurs ou en conservant les paramètres existants.You may also start a new import by either resetting all values or keeping the existing settings. (Par exemple, vous pouvez choisir de conserver les informations de chaîne de connexion, le choix de la source et de la cible, etc.)(For example, you may choose to keep connection string information, source and target choice, and more.)

    Capture d’écran des options d’exportation JSON Azure Cosmos DB

Étapes suivantesNext steps

Dans ce tutoriel, vous avez effectué les tâches suivantes :In this tutorial, you've done the following tasks:

  • Installation de l’outil de migration de donnéesInstalled the Data Migration tool
  • Importation de données à partir de différentes sources de donnéesImported data from different data sources
  • Exportation de données à partir d’Azure Cosmos DB vers JSONExported from Azure Cosmos DB to JSON

Vous pouvez maintenant passer à l’étape suivante du didacticiel et découvrir comment interroger les données à l’aide d’Azure Cosmos DB.You can now proceed to the next tutorial and learn how to query data using Azure Cosmos DB.