Partager via


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

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.

  1. Dans votre navigateur, accédez à la section Versions du dépôt : azurecosmosdb/data-migration-desktop-tool/releases.

  2. 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.

  3. Extrayez les fichiers à un emplacement d’installation sur votre ordinateur local.

  4. (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.

  1. Ouvrez un nouveau terminal. Si ce n’est pas déjà fait, connectez-vous au portail Azure.

  2. 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>"
    
  3. Créez une base de données à l’aide de az cosmosdb sql database create. Nommez la nouvelle base de données cosmicworks 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
    
  4. Utilisez az cosmosdb sql container create pour créer un conteneur nommé products dans la base de données cosmicworks. 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"
    
  5. 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
    
  6. 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éé.

  1. Accédez à un répertoire vide sur votre ordinateur local. Dans ce répertoire, créez un fichier nommé migrationsettings.json.

  2. Dans le fichier JSON, créez un objet JSON vide :

    {}
    
  3. Créez une propriété nommée Source avec la valeur json. Créez une autre propriété nommée SourceSettings dont la valeur est un objet vide.

    {
      "Source": "json",
      "SourceSettings": {}
    }
    
  4. Dans l’objet SourceSettings, créez une propriété nommée FilePath 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"
      }
    }
    
  5. Créez une propriété nommée Sink dont la valeur est cosmos-nosql. Créez également une propriété nommée SinkSettings 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": {
      }
    }
    
  6. Dans SinkSettings, créez une propriété nommée ConnectionString 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>"
      }
    }
    
  7. Ajoutez les propriétés Database, Container et PartitionKeyPath dont les valeurs respectives sont cosmicworks, productset /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"
      }
    }
    
  8. Enregistrez le fichier migrationsettings.json.

  9. Ouvrez un nouveau terminal et accédez au répertoire contenant votre fichier migrationsettings.json.

  10. 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écutable dmt.

  11. 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