Migrer des données vers Azure Cosmos DB à l’aide de l’outil de migration des données de bureau
S’APPLIQUE À : NoSQL MongoDB Table
L’outil de migration de données de bureau Azure Cosmos DB est une application en ligne de commande open source permettant d’importer ou d’exporter des données à partir d’Azure Cosmos DB. L’outil peut migrer des données vers et à partir de nombreuses sources et récepteurs, y compris, mais sans s’y limiter :
- Azure Cosmos DB pour NoSQL
- Azure Cosmos DB for MongoDB
- Azure Cosmos DB for Table
- Stockage Table Azure
- JSON
- MongoDB
- SQL Server
Important
Pour ce guide, vous allez effectuer une migration des données de JSON vers Azure Cosmos DB for NoSQL.
Prérequis
- Un compte Azure Cosmos DB for NoSQL existant.
- Si vous n’avez pas d’abonnement Azure, créez-en un.
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Vous pouvez également essayer Azure Cosmos DB gratuitement avant de vous engager.
- La dernière version d’Azure CLI.
- .NET 6.0 ou version ultérieure.
Installer l’outil de migration des données de bureau
Tout d’abord, installez la dernière version de l’outil de migration de données de bureau à partir du dépôt GitHub.
Notes
L’outil de migration de données de bureau nécessite .NET 6.0 ou version ultérieure sur votre ordinateur local.
Dans votre navigateur, accédez à la section Versions du dépôt : azurecosmosdb/data-migration-desktop-tool/releases.
Téléchargez le dernier dossier compressé pour votre plateforme. Il existe des dossiers compressés pour les plateformes win-x64, mac-x64 et linux-x64.
Extrayez les fichiers à un emplacement d’installation sur votre ordinateur local.
(Facultatif) Ajoutez l’outil de migration de données de bureau à la variable d’environnement
PATH
de votre ordinateur local.
Préparer votre cible de migration
Ensuite, créez une base de données et un conteneur cibles sur le compte Azure Cosmos DB for NoSQL.
Ouvrez un nouveau terminal. Si ce n’est pas déjà fait, connectez-vous au portail Azure.
Créez des variables d’interpréteur de commandes pour le nom et le groupe de ressources du compte Azure Cosmos DB.
# Variable for Azure Cosmos DB account name accountName="<name-of-existing-account>" # Variable for resource group name resourceGroupName="<name-of-existing-resource-group>"
Créez une base de données à l’aide de
az cosmosdb sql database create
. Nommez la nouvelle base de donnéescosmicworks
et configurez la base de données avec un débit partagé de 400 RU/s.az cosmosdb sql database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name cosmicworks \ --throughput 400
Utilisez
az cosmosdb sql container create
pour créer un conteneur nomméproducts
dans la base de donnéescosmicworks
. Définissez le chemin de la clé de partition du nouveau conteneur sur/category
.az cosmosdb sql container create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name cosmicworks \ --name products \ --partition-key-path "/category"
Recherchez la chaîne de connexion principale dans la liste des clés du compte avec la commande
az cosmosdb keys list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type connection-strings
Copiez la valeur Chaîne de connexion primaire. Vous utiliserez ces informations d’identification ultérieurement lors de la migration de données avec l’outil.
Effectuer une opération de migration
À présent, migrez les données d’un tableau JSON vers le conteneur Azure Cosmos DB for NoSQL nouvellement créé.
Accédez à un répertoire vide sur votre ordinateur local. Dans ce répertoire, créez un fichier nommé migrationsettings.json.
Dans le fichier JSON, créez un objet JSON vide :
{}
Créez une propriété nommée
Source
avec la valeurjson
. Créez une autre propriété nomméeSourceSettings
dont la valeur est un objet vide.{ "Source": "json", "SourceSettings": {} }
Dans l’objet
SourceSettings
, créez une propriété nomméeFilePath
dont la valeur est définie sur cet URI : https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" } }
Créez une propriété nommée
Sink
dont la valeur estcosmos-nosql
. Créez également une propriété nomméeSinkSettings
avec un objet vide.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { } }
Dans
SinkSettings
, créez une propriété nomméeConnectionString
avec la chaîne de connexion principale que vous avez enregistrée précédemment comme valeur dans ce guide.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { "ConnectionString": "<connection-string-for-existing-account>" } }
Ajoutez les propriétés
Database
,Container
etPartitionKeyPath
dont les valeurs respectives sontcosmicworks
,products
et/category
.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { "ConnectionString": "<connection-string-for-existing-account>", "Database": "cosmicworks", "Container": "products", "PartitionKeyPath": "/category" } }
Enregistrez le fichier migrationsettings.json.
Ouvrez un nouveau terminal et accédez au répertoire contenant votre fichier migrationsettings.json.
Exécutez l’outil de migration des données de bureau à l’aide de la commande
dmt
.dmt
Notes
Si vous n’avez pas ajouté le chemin d’installation à votre variable d’environnement
PATH
, vous devrez peut-être spécifier le chemin d’accès complet à l’exécutabledmt
.L’outil génère désormais les sources et les récepteurs utilisés par la migration.
Using JSON Source Using Cosmos-nosql Sink