Passer au contenu

Comment utiliser l’application par lot AWS DMS pour améliorer les performances de réplication CDC ?

Lecture de 4 minute(s)
0

Je souhaite améliorer les performances de réplication de la capture des données modifiées (CDC) lors de mon chargement complet et de la tâche CDC AWS Database Migration Service (AWS DMS). La latence source n'est pas élevée, mais la latence cible est élevée ou augmente.

Brève description

Par défaut, AWS DMS utilise l'application transactionnelle pour répliquer les données pendant la phase CDC. Si votre tâche capture un grand nombre de transactions depuis la source et entraîne une latence cible, vous pouvez activer le paramètre d'application par lot.

Remarque : La cible Amazon Redshift utilise l'application par lot par défaut. La cible Amazon Simple Storage Service (Amazon S3) doit utiliser l'application transactionnelle.

L'application par lot ne fonctionne que sur les tables dotées d'une clé primaire ou d'un index unique. Pour les tables sans clé primaire ni index unique, l'application en bloc applique uniquement l'insertion en mode bloc, puis effectue les mises à jour et les suppressions une par une. Si la table utilise une clé primaire ou un index unique mais passe en mode un par un, consultez la section Comment puis-je résoudre les problèmes pour lesquels Amazon Redshift est passé en mode un par un ?

Lorsque vous incluez des colonnes LOB (Large Binary Object) dans la réplication, vous ne pouvez utiliser BatchApplyEnabled qu'en mode LOB limité. Pour en savoir plus, consultez la section Paramètres des tâches de métadonnées cible.

Remarque : Si vous définissez BatchApplyEnabled sur true et que votre cible inclut une contrainte unique, AWS DMS génère un message d'erreur.

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

BatchApplySetting est désactivé par défaut. Pour activer ce paramètre, utilisez l'interface de ligne de commande AWS ou la console AWS DMS. Avant d'activer l'application par lot, créez un utilisateur IAM disposant d’un accès par programmation.

Utiliser l'AWS CLI pour activer l'application par lot

Procédez comme suit :

  1. Ouvrez le système sur lequel vous utilisez l'AWS CLI.
  2. Exécutez la commande configure pour ouvrir l'invite de l'AWS CLI.
  3. Saisissez l'ID de votre clé d'accès AWS.
  4. Saisissez votre ID de clé secrète AWS.
  5. Saisissez la région AWS de vos ressources AWS DMS.
  6. Saisissez le format de sortie.
  7. Vérifiez que la tâche est à l'état arrêté.
  8. Exécutez la commande modify-replication-task avec le paramètre d’application par lot suivant :
    aws dms modify-replication-task --replication-task-arn arn:aws:dms:region:123456789123:task:4VUCZ6ROH4ZYRIA25M3SE6NXCM --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"
    Remarque : Remplacez replication-task-arn par votre Amazon Resource Name (ARN) et region par votre région.
  9. Ouvrez la console AWS DMS.
  10. Dans le volet de navigation, sous Migrer ou répliquer, sélectionnez Tâches.
  11. Sélectionnez votre tâche, puis choisissez Paramètres de tâche (JSON).
  12. Vérifiez que BatchApplyEnabled est défini sur activé.

Utiliser la console AWS DMS pour activer l'application par lot

Procédez comme suit :

  1. Ouvrez la console AWS DMS.
  2. Dans le volet de navigation, sous Migrer ou répliquer, sélectionnez Tâches.
  3. Sélectionnez votre tâche, puis choisissez Modifier.
  4. Dans la section Paramètres de tâche, choisissez Éditeur JSON.
  5. Sous TargetMetadata, remplacez BatchApplyEnabled sur true.
  6. Sélectionnez Enregistrer.

Résoudre les problèmes liés à un CDCLatencyTarget élevé après avoir exécuté une tâche en mode batch

Si la valeur de CDCLatencyTarget est élevée après que vous avez exécuté la tâche en mode batch, vous risquez de rencontrer une latence pour les raisons suivantes :

  • Vous avez une transaction de longue durée sur la cible car il n'y a pas d'index primaire et secondaire.
  • La disponibilité des ressources est insuffisante pour traiter la charge de travail dans les délais prévus.
  • Vous êtes confronté à un conflit de ressources élevé sur votre instance de réplication AWS DMS.

Pour résoudre les problèmes de latence élevée, consultez la section Résolution de problèmes de latence dans AWS Database Migration Service.

Informations connexes

Surveillance des tâches AWS DMS

Modification des paramètres de réglage du traitement

AWS OFFICIELA mis à jour il y a 6 mois