Travaux de copie dans Azure Cosmos DB (préversion)
Vous pouvez effectuer une copie de données dans Azure Cosmos DB à l’aide de travaux de copie de conteneur.
Vous devrez peut-être copier des données depuis votre compte Azure Cosmos DB si vous souhaitez mettre en place l’un des scénarios suivants :
- Copier tous les éléments d’un conteneur vers un autre.
- Modifier la granularité à laquelle le débit est approvisionné, de la base de données au conteneur et vice versa.
- Modifier la clé de partition d’un conteneur.
- Mettre à jour les clés uniques d’un conteneur.
- Renommez un conteneur ou une base de données.
- Changez le mode de capacité d’un compte de serverless à provisionné ou inversement.
- Adoptez de nouvelles fonctionnalités qui ne sont prises en charge que pour les nouveaux conteneurs, par exemple les clés de partition hiérarchiques.
Les travaux de copie peuvent être créés et gérés à l’aide de commandes Azure CLI.
Démarrage
Pour commencer à utiliser la copie de conteneur en ligne pour les comptes d’API Azure Cosmos DB for NoSQL, inscrivez-vous à l’indicateur de fonctionnalité en préversion Copie de conteneur en ligne (NoSQL) dans Fonctionnalités en préversion dans le portail Azure. Une fois l’inscription terminée, l’aperçu est effectif pour tous les comptes API NoSQL dans l’abonnement.
Prérequis
- Activez la sauvegarde continue sur le compte Azure Cosmos DB source.
- Inscrivez-vous à la fonctionnalité en préversion du mode de flux de modification Toutes les versions et supprimer sur l’abonnement du compte source.
Important
Toutes les opérations d’écriture dans le conteneur source sont facturées deux unités de requête pour conserver les versions précédentes et actuelles des modifications apportées aux éléments du conteneur. Cette augmentation des frais de RU est susceptible de changer à l’avenir.
Copier les données d’un conteneur
- Créez le conteneur Azure Cosmos DB cible à l’aide des paramètres que vous souhaitez utiliser (clé de partition, granularité du débit, unités de requête, clé unique, etc.).
- Créez le travail de copie de conteneur.
- Surveiller la progression du travail de copie.
- Une fois que tous les documents ont été copiés, arrêtez les mises à jour sur le conteneur source, puis appelez l’API d’achèvement pour marquer le travail comme terminé.
- Reprenez les opérations en pointant correctement l’application ou le client vers le conteneur source ou cible prévu.
Comment la copie de conteneur fonctionne-t-elle ?
- La plateforme alloue des instances de calcul côté serveur pour le compte Azure Cosmos DB de destination pour exécuter les travaux de copie de conteneur.
- Un travail unique est exécuté dans toutes les instances à tout moment.
- Les travaux de copie en ligne utilisent le mode de flux de modification Toutes les versions et supprimer pour copier les données et répliquer les modifications incrémentielles du conteneur source vers le conteneur de destination.
- Une fois le travail terminé, la plateforme désalloue ces instances après 15 minutes d’inactivité.
Vous pouvez effectuer des travaux de copie de collection hors connexion pour copier des données dans le même compte Azure Cosmos DB pour Mongo DB.
Copier les données d’une collection
- Créez la collection Azure Cosmos DB cible à l’aide des paramètres que vous souhaitez utiliser (clé de partition, granularité du débit, unités de requête, clé unique, etc.).
- Arrêtez les opérations sur la collection source en suspendant les instances d’application ou les clients qui s’y connectent.
- Créer le travail de copie.
- Suivez la progression du travail de copie et attendez qu’il soit terminé.
- Reprenez les opérations en pointant correctement l’application ou le client vers la collection source ou cible prévue.
Remarque
Nous vous recommandons vivement d’arrêter d’effectuer toute opération sur la collection source avant de commencer le travail de copie de collection hors ligne. Les suppressions et les mises à jour d’éléments qui sont effectuées sur la collection source après le début du travail de copie risquent de ne pas être capturées. Si vous continuez à effectuer des opérations sur la collection source pendant que le travail de copie est en cours, vous risquez d’avoir des données dupliquées ou manquantes sur la collection cible.
Fonctionnement de la copie de collection
- La plateforme alloue des instances de calcul côté serveur pour le compte Azure Cosmos DB de destination.
- Les instances sont allouées quand un ou plusieurs travaux de copie de collection sont créés dans le compte.
- Les travaux de copie s’exécutent sur ces instances.
- Un travail unique est exécuté dans toutes les instances à tout moment.
- Les instances sont partagées par tous les travaux de copie qui s’exécutent dans le même compte.
- Les travaux de copie hors connexion utilisent le flux de modification pour copier les données et répliquer les modifications incrémentielles de la collection source vers la collection de destination.
- La plateforme peut libérer les instances si elles sont inactives pendant plus de 15 minutes.
Vous pouvez effectuer une copie de table hors ligne pour copier des données d’une table vers une autre table dans le même compte Azure Cosmos DB for Apache Cassandra.
Copier les données d’une table
- Créez la table Azure Cosmos DB cible à l’aide des paramètres que vous souhaitez utiliser (clé de partition, granularité du débit, unités de requête, clé unique, etc.).
- Arrêtez les opérations sur la table source en suspendant les instances d’application ou les clients qui s’y connectent.
- Créer le travail de copie.
- Suivez la progression du travail de copie et attendez qu’il soit terminé.
- Reprenez les opérations en pointant correctement l’application ou le client vers la table source ou cible prévue.
Remarque
Nous vous recommandons vivement d’arrêter d’effectuer toute opération sur le table source avant de commencer le travail de copie de table hors ligne. Les suppressions et les mises à jour d’éléments qui sont effectuées sur la table source après le début du travail de copie risquent de ne pas être capturées. Si vous continuez à effectuer des opérations sur la table source pendant que le travail de copie est en cours, vous risquez d’avoir des données dupliquées ou manquantes sur la table cible.
Fonctionnement de la copie de table
- La plateforme alloue des instances de calcul côté serveur pour le compte Azure Cosmos DB de destination.
- Les instances sont allouées quand un ou plusieurs travaux de copie sont créés dans le compte.
- Les travaux de copie s’exécutent sur ces instances.
- Un travail unique est exécuté dans toutes les instances à tout moment.
- Les instances sont partagées par tous les travaux de copie qui s’exécutent dans le même compte.
- Les travaux de copie hors connexion utilisent le flux de modification pour copier les données et répliquer les modifications incrémentielles de la table source vers la table de destination.
- La plateforme peut libérer les instances si elles sont inactives pendant plus de 15 minutes.
Facteurs qui affectent la vitesse du travail de copie
Le taux de progression du travail de copie de conteneur est déterminé par les facteurs suivants :
Le paramètre de débit du conteneur ou de la base de données source.
Le paramètre de débit du conteneur ou de la base de données cible.
Conseil
Définissez le débit du conteneur cible sur au moins deux fois le débit du conteneur source.
Instances de calcul côté serveur qui sont allouées au compte Azure Cosmos DB pour effectuer le transfert de données.
Important
La référence SKU par défaut offre deux instances côté serveur de 16 Go, comportant quatre processeurs virtuels par compte.
Limites
Critères d’éligibilité à la préversion
Les travaux de copie de conteneur ne fonctionnent pas avec les comptes dont les fonctionnalités suivantes sont activées. Désactivez ces fonctionnalités avant d’exécuter des travaux de copie de conteneur :
Configurations de compte
Le paramètre Durée de vie (TTL) n’est pas ajusté dans le conteneur de destination. Par conséquent, si un document n’a pas expiré dans le conteneur source, il démarre à nouveau son compte à rebours dans le conteneur de destination.
FAQ
Existe-t-il un contrat de niveau de service pour les travaux de copie de conteneur ?
Les travaux de copie de conteneur sont actuellement pris en charge dans la mesure du possible. Nous ne fournissons aucune garantie de contrat de niveau de service (SLA) concernant le temps nécessaire à l’achèvement des travaux.
Puis-je créer plusieurs travaux de copie de conteneur dans un compte ?
Oui, vous pouvez créer plusieurs travaux dans le même compte. Les travaux s’exécutent consécutivement. Vous pouvez afficher la liste de tous les travaux qui sont créés au sein d’un compte et en suivre la progression.
Puis-je copier l’intégralité d’une base de données dans le compte Azure Cosmos DB ?
Vous devez créer un travail pour chaque conteneur de la base de données.
Je dispose d’un compte Azure Cosmos DB couvrant plusieurs régions. Dans quelle région le travail de copie de conteneur s’exécute-t-il ?
Le travail de copie de conteneur s’exécute dans la région d’écriture. Dans un compte configuré avec des écritures multi-régionales, le travail s’exécute dans l’une des régions de la liste des régions d’écriture.
Que se passe-t-il pour les travaux de copie de conteneur lorsque la région d’écriture du compte change ?
La région d’écriture du compte peut changer dans le cas rare d’une panne de région ou en raison d’un basculement manuel. Dans ce scénario, les travaux de copie de conteneur incomplets qui ont été créés dans le compte échouent. Vous devrez recréer ces travaux ayant échoué. Les travaux recréés s’exécutent ensuite dans la nouvelle région d’écriture (actuelle).
Régions prises en charge
La copie de conteneur est actuellement prise en charge dans les régions suivantes :
Amérique | Europe et Afrique | Asie-Pacifique |
---|---|---|
Brésil Sud | France Centre | Centre de l’Australie |
Centre du Canada | France Sud | Centre de l’Australie 2 |
Est du Canada | Allemagne Nord | Australie Est |
USA Centre | Allemagne Centre-Ouest | Inde centrale |
EUAP USA Centre | Europe Nord | Japon Est |
USA Est | Norvège Est | Centre de la Corée |
USA Est 2 | Norvège Ouest | Asie Sud-Est |
USA Est 2 (EUAP) | Suisse Nord | Émirats arabes unis Centre |
Centre-Nord des États-Unis | Suisse Ouest | Inde Ouest |
États-Unis - partie centrale méridionale | Sud du Royaume-Uni | Asie Est |
Centre-USA Ouest | Ouest du Royaume-Uni | Malaisie Sud |
USA Ouest | Europe Ouest | OuJapon Est |
USA Ouest 2 | Israël Central | Sud-Australie Est |
Non pris en charge | Afrique du Sud Nord | Non pris en charge |
Problèmes connus et courants
Erreur : la ressource de propriétaire n’existe pas.
Si la création du travail échoue et affiche l’erreur La ressource propriétaire n’existe pas (code d’erreur 404), soit le conteneur cible n’a pas encore été créé, soit le nom du conteneur utilisé pour créer le travail ne correspond pas à un nom de conteneur réel.
Assurez-vous que le conteneur cible est créé avant d’exécuter le travail et assurez-vous que le nom du conteneur dans le travail correspond à un nom de conteneur réel.
"code": "404", "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
Erreur - La requête n’est pas autorisée.
Si la requête échoue et affiche l’erreur Non autorisé (code d’erreur 401), l’autorisation locale peut être désactivée.
Les travaux de copie de conteneur utilisent des clés primaires pour s’authentifier. Si l’autorisation locale est désactivée, la création du travail échoue. L’autorisation locale doit être activée pour que les travaux de copie de conteneur fonctionnent.
"code": "401", "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
Erreur : Erreur lors de l’obtention de ressources pour le travail.
Cette erreur peut se produire en raison de problèmes internes au serveur. Pour résoudre ce problème, contactez le Support Microsoft en ouvrant une Nouvelle demande de support dans le portail Azure. Pour Type de problème, sélectionnez Migration des données. Pour Sous-type de problème, sélectionnez Copie de conteneur intra-compte.
"code": "500" "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Étapes suivantes
- Découvrez comment créer, surveiller et gérer des travaux de copie de conteneur dans un compte Azure Cosmos DB à l’aide de commandes CLI.