View a markdown version of this page

Manuel de migration vers Amazon DocumentDB - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Manuel de migration vers Amazon DocumentDB

Ce runbook fournit un guide complet pour la migration d'une base de données MongoDB vers Amazon DocumentDB à l'aide AWS Database Migration Service de (DMS). Il est conçu pour aider les administrateurs de bases de données, les ingénieurs cloud et les développeurs tout au long du processus de migration de bout en bout, de la découverte initiale à la validation après la migration.

Compte tenu des différences d'implémentation et de fonctionnalités prises en charge entre MongoDB et Amazon DocumentDB, ce runbook met l'accent sur une approche structurée et systématique. Il présente les principales évaluations préalables à la migration, met en lumière les considérations de compatibilité et détaille les tâches clés requises pour garantir une migration réussie avec un minimum de perturbations.

Le runbook est organisé selon les rubriques suivantes :

  • Compatibilité— Découvrez les fonctionnalités et les types de données MongoDB pris en charge dans Amazon DocumentDB et identifiez les incompatibilités potentielles.

  • Découverte des charges de travail— Analysez les charges de travail MongoDB existantes, notamment les read/write modèles, les volumes de données et les données de référence en matière de performances.

  • Migration des index— Analysez les stratégies d'extraction et de transformation des index MongoDB pour des performances optimales dans Amazon DocumentDB.

  • Migration d'utilisateur— Décrivez l'approche de migration des utilisateurs, des rôles et des contrôles d'accès de la base de données vers Amazon DocumentDB.

  • Migrations des données— Couvrir les différentes méthodes utilisées pour la migration des données AWS DMS, y compris la capture des données à chargement complet et à modification (CDC).

  • Contrôle— Détaillez les différentes approches de surveillance lors de la migration à l'aide de DMS ou d'outils natifs.

  • Validation— Fournir des procédures pour les contrôles d'intégrité des données, la validation fonctionnelle et la comparaison des performances après la migration.

En suivant les instructions de ce manuel, les équipes peuvent garantir une transition fluide, sécurisée et efficace vers Amazon DocumentDB, tout en préservant les fonctionnalités de l'application et en minimisant les risques.

Compatibilité

Lors de la migration de MongoDB vers Amazon DocumentDB, une évaluation initiale approfondie et un contrôle de compatibilité des fonctionnalités sont essentiels pour une migration réussie. Ce processus commence par un inventaire complet de vos fonctionnalités MongoDB, y compris les opérateurs de pipeline d'agrégation, les modèles de requêtes, les index et les modèles de données.

Amazon DocumentDB étant compatible avec les API MongoDB 3.6, 4.0, 5.0 et 8.0, les applications utilisant de nouvelles MongoDB-specific fonctionnalités peuvent nécessiter une refactorisation. Les domaines critiques à évaluer incluent les mécanismes de partitionnement (Amazon DocumentDB utilise une approche différente), les implémentations de transactions, la fonctionnalité des flux de modifications et les types d'index (en particulier les index fragmentés et partiels).

Les caractéristiques de performances diffèrent également, Amazon DocumentDB étant optimisé pour les charges de travail d'entreprise avec des performances prévisibles. Les tests doivent impliquer l'exécution de charges de travail représentatives sur les deux systèmes afin d'identifier les modèles de requêtes susceptibles de nécessiter une optimisation.

Le suivi des plans d'exécution afin de détecter d'éventuels écarts de performance est important pendant la phase d'évaluation. Cela permet de créer une feuille de route de migration claire, d'identifier les modifications nécessaires aux applications et d'établir des délais réalistes pour une transition en douceur.

Compatibilité des fonctionnalités de base

Support complet des fonctionnalités

  • Opérations CRUD  : bénéficiez d'une prise en charge complète de toutes les opérations de base de création, de lecture, de mise à jour et de suppression, y compris les opérateurs de requêtes et de requêtes, ce qui garantit une compatibilité parfaite entre les applications.

  • Fonctionnalités d'indexation étendues  : tirez parti de la prise en charge complète des index à champ unique, composés, TTL, partiels, épars et 2dsphere, afin d'optimiser les performances de vos requêtes et les index de texte (version 5) pour les recherches basées sur du texte.

  • Enterprise-grade réplication  : profitez d'un mécanisme de basculement automatique robuste avec des répliques en lecture pour une haute disponibilité supérieure sans frais opérationnels.

  • Solutions de sauvegarde avancées — Ayez l'esprit tranquille grâce à un système de sauvegarde automatique avec Point-in-Time restauration (PITR) et des instantanés manuels à la demande pour la protection des données.

Amélioré AWS-fonctionnalités intégrées

  • Agrégation rationalisée  : tirez parti des étapes d'agrégation les plus couramment utilisées ($match,, $group $sort$project, etc.) avec des performances optimisées pour les charges de travail de l'entreprise.

  • Prise en charge des transactions  : implémentez des transactions multi-documents et multi-collections, parfaitement adaptées à la plupart des besoins des applications métier.

  • Real-time suivi des données  : activez les flux de modifications à l'aide d'une simple commande et augmentez la période de rétention des flux de modifications grâce à un simple réglage de groupe de paramètres pour une surveillance en temps réel des modifications des données.

  • Location-based services — Implémentez des applications géospatiales prenant en charge les index des $geoNear opérateurs et 2dsphere.

  • Fonctionnalités de recherche de texte  : utilisez la fonctionnalité de recherche de texte intégrée pour répondre aux besoins de découverte de contenu.

Avantages de l'architecture moderne

  • Cloud-native conception  : profitez d'une architecture AWS optimisée qui remplace les fonctionnalités existantes, telles que MapReduce des opérations de pipeline d'agrégation plus efficaces.

  • Sécurité renforcée  : profitez de l'authentification par X.509 certificat Gestion des identités et des accès AWS (IAM), SCRAM-SHA-1 SCRAM-SHA-256, et de l'authentification par mot de passe.

  • Performances prévisibles  : bénéficiez de performances constantes optimisées spécifiquement pour les charges de travail des entreprises.

Pour une présentation complète des fonctionnalités d'Amazon DocumentDB, reportez-vous au API, opérations et types de données MongoDB pris en charge dans Amazon DocumentDB et Différences fonctionnelles : Amazon DocumentDB et MongoDB pour optimiser le potentiel de votre base de données.

Amazon DocumentDB ne prend pas en charge tous les index proposés par MongoDB. Nous fournissons un outil d'indexation gratuit pour vérifier la compatibilité. Exécutez l'outil d'indexation pour évaluer l'incompatibilité et planifier des solutions de contournement en conséquence.

Outil d'évaluation de la compatibilité Amazon DocumentDB

L'outil de compatibilité entre MongoDB et Amazon DocumentDB est un utilitaire open source disponible sur GitHub qui permet d'évaluer la compatibilité de la charge de travail de MongoDB avec Amazon DocumentDB en analysant les journaux MongoDB ou le code source de l'application.

Fonctions principales

  • Identifie les modèles d'utilisation de l'API MongoDB dans votre charge de travail

  • Signale les problèmes de compatibilité potentiels avant la migration

  • Génère des rapports de compatibilité détaillés avec des recommandations

  • Disponible en tant qu'utilitaire autonome pouvant être exécuté localement

Méthodes d'évaluation

Log-based évaluation

  • Avantages :

    • Capture le comportement d'exécution réel et les modèles de requête

    • Identifie les fréquences d'utilisation et les caractéristiques de performance dans le monde réel

    • Détecte les requêtes dynamiques qui peuvent ne pas être visibles dans le code source

    • Aucun accès au code source de l'application n'est requis

  • Inconvénients :

    • Nécessite l'accès aux journaux MongoDB avec le profilage activé

    • Capture uniquement les opérations qui ont eu lieu pendant la période de journalisation

    • Peut manquer des fonctionnalités rarement utilisées ou des charges de travail saisonnières

Analyse du code source

  • Avantages :

    • Couverture complète de toutes les opérations MongoDB potentielles dans la base de code

    • Peut identifier les problèmes liés à des chemins de code rarement exécutés

    • Détecte la logique côté client susceptible d'être affectée par les différences entre Amazon DocumentDB

    • Il n'est pas nécessaire d'exécuter l'application pour effectuer l'évaluation

  • Inconvénients :

    • Peut signaler le code qui existe mais qui n'est jamais exécuté en production

    • Nécessite l'accès au code source complet de l'application

    • Capacité limitée à analyser des requêtes construites dynamiquement

Pour de meilleurs résultats, utilisez les deux méthodes d'évaluation dans la mesure du possible afin d'obtenir une image complète des problèmes de compatibilité avant la migration.

Découverte des charges de travail

La migration de MongoDB vers Amazon DocumentDB nécessite une compréhension approfondie de la charge de travail de base de données existante. La découverte de la charge de travail consiste à analyser les modèles d'utilisation de votre base de données, les structures de données, les performances des requêtes et les dépendances opérationnelles afin de garantir une transition fluide avec un minimum de perturbations. Cette section décrit les principales étapes de la découverte de la charge de travail afin de faciliter une migration efficace de MongoDB vers Amazon DocumentDB.

Évaluation du déploiement actuel de MongoDB

Avant la migration, il est essentiel d'évaluer l'environnement MongoDB actuel, notamment :

  • Architecture de cluster  : identifiez le nombre de nœuds, de jeux de répliques et de configurations de partitionnement. Lors de la migration de MongoDB vers Amazon DocumentDB, il est important de comprendre votre configuration de partitionnement MongoDB car Amazon DocumentDB ne prend pas en charge le partitionnement contrôlé par l'utilisateur. Les applications conçues pour un environnement MongoDB fragmenté nécessiteront des modifications architecturales, car Amazon DocumentDB utilise une approche de mise à l'échelle différente avec son architecture basée sur le stockage. Vous devrez adapter votre stratégie de distribution des données et éventuellement consolider les collections fragmentées lorsque vous passerez à Amazon DocumentDB.

  • Volume de stockage et de données  : mesurez la taille totale des données et la taille de l'index de votre cluster. Complétez cela avec l'outil de révision Oplog pour comprendre les modèles d'écriture et la vitesse de croissance des données. Pour plus d'informations sur le dimensionnement de votre cluster, consultezDimensionnement de l'instance.

  • Modèles de charge de travail  : analysez le débit de lecture et d'écriture, la fréquence d'exécution des requêtes et l'efficacité de l'indexation.

  • Dépendances opérationnelles  : documentez toutes les applications, services et intégrations s'appuyant sur MongoDB.

Identifier les différences entre les modèles de données

Bien qu'Amazon DocumentDB le soit MongoDB-compatible, il existe des différences dans les fonctionnalités prises en charge, telles que :

  • Transactions  : Amazon DocumentDB prend en charge les transactions ACID, mais avec certaines d'entre ellesLimitations.

  • Conception de schémas  : assurez-vous que les structures des documents, les documents intégrés et les références sont conformes aux meilleures pratiques d'Amazon DocumentDB.

Analyse des requêtes et des performances

Comprendre le comportement des requêtes permet d'optimiser les performances de migration et de post-migration. Les principaux domaines à analyser sont les suivants :

  • Requêtes lentes  : identifiez les requêtes dont le temps d'exécution est élevé à l'aide des outils de profilage de MongoDB.

  • Modèles de requêtes  : classez les types de requêtes courants, y compris les opérations CRUD et les agrégations.

  • Utilisation des index  : déterminez si les index sont utilisés efficacement ou s'ils doivent être optimisés dans Amazon DocumentDB. Pour évaluer l'utilisation des index et optimiser les performances dans Amazon DocumentDB, utilisez l'étape du pipeline d'$indexStatsagrégation associée à la explain() méthode pour vos requêtes critiques. Commencez par courir db.collection.aggregate([{$indexStats{}}]) pour identifier les index utilisés. Vous pouvez effectuer une analyse plus détaillée en exécutant les requêtes les plus fréquentes avecexplainPlan.

  • Concurrence et répartition de la charge de travail  : évaluez les ratios de lecture et d'écriture, le regroupement des connexions et les goulots d'étranglement en termes de performances.

Révision de la sécurité et du contrôle d'accès

Authentification et autorisation

  • MongoDB RBAC vers Amazon DocumentDB IAM et RBAC  : associez les utilisateurs et les rôles du contrôle d'accès basé sur les rôles de MongoDB aux politiques Gestion des identités et des accès AWS (IAM) et aux utilisateurs d'authentification Amazon DocumentDB SCRAM.

  • Stratégie de migration des utilisateurs  : planifiez la migration des utilisateurs de la base de données, des rôles personnalisés et des privilèges vers les mécanismes d'authentification pris en charge par Amazon DocumentDB.

  • Différences de privilèges  : identifiez les privilèges de MongoDB sans équivalents directs à Amazon DocumentDB (par exemple, les rôles d'administration du cluster).

  • Authentification des applications  : mettez à jour les chaînes de connexion et la gestion des informations d'identification pour les politiques de mots de passe d'Amazon DocumentDB. Vous pouvez utiliser le gestionnaire de secrets pour stocker vos informations d'identification et alterner les mots de passe.

  • Gestion des comptes de service  : établissez des processus pour gérer les informations d'identification des comptes de service dans AWS Secrets Manager.

  • Mise en œuvre du principe du moindre privilège  : passez en revue et affinez les contrôles d'accès afin de mettre en œuvre les principes du moindre privilège dans le nouvel environnement.

Chiffrement

Assurez-vous que le chiffrement au repos et en transit est conforme aux exigences de conformité.

Configuration réseau

Planifiez la configuration du Virtual Private Cloud (VPC) et les règles des groupes de sécurité.

Considérations relatives au fonctionnement et à la surveillance

Pour maintenir la fiabilité du système, la découverte de la charge de travail doit également inclure :

  • Stratégie de sauvegarde et de restauration  : évaluez les méthodes de sauvegarde existantes et les fonctionnalités de sauvegarde d'Amazon DocumentDB.

  • AWS Backup intégration  : tirez parti de AWS Backup la gestion centralisée des sauvegardes pour tous les AWS services, notamment Amazon DocumentDB.

  • CloudWatch métriques  : associez les mesures de surveillance de MongoDB aux métriques d'Amazon DocumentDB CloudWatch pour le processeur, la mémoire, les connexions et le stockage.

  • Performances Insights  : implémentez Amazon DocumentDB Performance Insights pour visualiser la charge de la base de données et analyser les problèmes de performances grâce à des analyses de requêtes détaillées.

  • Profileur  : configurez le profileur Amazon DocumentDB pour capturer les opérations lentes (similaire au profileur de MongoDB mais avec les paramètres Amazon). DocumentDB-specific

    • Activez via des groupes de paramètres avec des seuils appropriés.

    • Analysez les données du profileur pour identifier les opportunités d'optimisation

  • CloudWatch Événements  : configurez la surveillance pilotée par les événements pour les événements du cluster Amazon DocumentDB.

    • Configurez les notifications pour les événements de sauvegarde, les fenêtres de maintenance et les basculements.

    • Intégrez Amazon SNS pour les alertes et les réponses AWS Lambda automatisées.

  • Journalisation des audits  : planifiez la configuration de la journalisation des audits pour suivre l'activité des utilisateurs et les événements liés à la sécurité.

  • Surveillance améliorée — Activez une surveillance améliorée des OS-level mesures granulaires à des intervalles d'une seconde.

Migration des index

La migration de MongoDB vers Amazon DocumentDB implique de transférer non seulement des données, mais également des index afin de maintenir les performances des requêtes et d'optimiser les opérations de base de données. Cette section décrit le processus détaillé étape par étape pour migrer les index de MongoDB vers Amazon DocumentDB tout en garantissant la compatibilité et l'efficacité.

Utilisation de l'outil d'indexation Amazon DocumentDB

Cloner l'outil d'index

git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/index-tool
pip install -r requirements.txt

Exporter des index depuis MongoDB (en cas de migration depuis MongoDB)

python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir mongodb_index_export --uri 'mongodb://localhost:27017'

Exporter des index depuis Amazon DocumentDB (en cas de migration depuis Amazon DocumentDB)

python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir docdb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'

Importer des index

python3 migrationtools/documentdb_index_tool.py --restore-indexes --skip-incompatible --dir mongodb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'

Vérifier les index

python3 migrationtools/documentdb_index_tool.py --show-issues --dir mongodb_index_export

Migration d'utilisateur

La migration des utilisateurs de MongoDB vers Amazon DocumentDB est essentielle pour maintenir le contrôle d'accès, l'authentification et la sécurité des bases de données. Cette section décrit les étapes détaillées à suivre pour réussir la migration des utilisateurs de MongoDB tout en préservant leurs rôles et leurs autorisations à l'aide de l'outil d'exportation utilisateur Amazon DocumentDB.

Utilisation de l'outil d'exportation des utilisateurs d'Amazon DocumentDB

Les utilisateurs et les rôles sont Export Users tool exportés depuis MongoDB ou Amazon DocumentDB vers JavaScript des fichiers, qui peuvent ensuite être utilisés pour les recréer dans un autre cluster.

Conditions préalables

# Clone the repository git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/export-users
# Install required dependencies pip install pymongo

Étape 1 : Exporter les utilisateurs et les rôles

# Export users and roles to JavaScript files python3 docdbExportUsers.py \ --users-file mongodb-users.js \ --roles-file mongodb-roles.js \ --uri "mongodb://admin:password@source-host:27017/"

Étape 2 : Modifier le fichier des utilisateurs

// Example of how to update the users.js file // Find each user creation statement and add the password db.getSiblingDB("admin").createUser({ user: "appuser", // Add password here pwd: "newpassword", roles: [ { role: "readWrite", db: "mydb" } ] })

Étape 3 : Restaurer les rôles personnalisés dans Amazon DocumentDB

# Import roles first mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-roles.js

Étape 4 : Restaurer les utilisateurs dans Amazon DocumentDB

# Import users after roles are created mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-users.js

Remarques importantes

  • Les mots de passe ne sont pas exportés pour des raisons de sécurité et doivent être ajoutés manuellement au fichier users.js.

  • Les rôles doivent être importés avant les utilisateurs pour garantir une attribution correcte des rôles.

  • L'outil génère JavaScript des fichiers qui peuvent être exécutés directement avec le shell Mongo.

  • Les rôles personnalisés et leurs privilèges sont préservés pendant la migration.

  • Cette approche permet de vérifier et de modifier les autorisations des utilisateurs avant l'importation.

Cette méthode fournit une approche sécurisée et flexible pour la migration des utilisateurs et des rôles de MongoDB vers Amazon DocumentDB tout en permettant de réinitialiser les mots de passe pendant le processus de migration.

Migrations des données

Migration en ligne

Cette section décrit les étapes détaillées à suivre pour effectuer une migration en ligne de MongoDB vers Amazon DocumentDB afin de minimiser les temps d'arrêt et de garantir une réplication continue. AWS DMS Pour commencer, vous devez configurer un cluster Amazon DocumentDB comme cible et vous assurer que votre instance MongoDB est correctement configurée en tant que source, ce qui nécessite généralement le mode jeu de répliques pour la capture des données de modification. Ensuite, vous créez une instance de réplication DMS et définissez les points de terminaison source et cible avec les informations de connexion nécessaires. Après avoir validé les points de terminaison, vous configurez et lancez une tâche de migration qui peut inclure le chargement complet des données, la réplication continue, ou les deux.

Configurer la cible (Amazon DocumentDB)

Note

Si vous avez déjà configuré un cluster Amazon DocumentDB vers lequel effectuer la migration, vous pouvez ignorer cette étape.

Création d'un groupe de paramètres personnalisé

Consultez nos Console de gestion AWS AWS CLI procédures dansCréation de groupes de paramètres de cluster Amazon DocumentDB.

Création d'un cluster Amazon DocumentDB

Note

Bien que ce guide propose d'autres procédures pour créer un cluster Amazon DocumentDB, les étapes de cette section s'appliquent spécifiquement à la tâche de migration de grandes quantités de données vers un nouveau cluster.

  1. Connectez-vous au et ouvrez Console de gestion AWS la console Amazon DocumentDB à https://console.aws.amazon.com/docdb l'adresse.

  2. Dans le panneau de navigation, choisissez Clusters.

    Astuce

    Si vous ne voyez pas le volet de navigation sur le côté gauche de votre écran, choisissez l'icône de menu (Menu button.) dans le coin supérieur gauche de la page.

  3. Sur la console de gestion Amazon DocumentDB, sous Clusters, choisissez Créer.

  4. Sur la page Créer un cluster Amazon DocumentDB, dans la section Type de cluster, choisissez Instance-based cluster (il s'agit de l'option par défaut).

  5. Dans la section Configuration du cluster :

    • Pour Identifiant de cluster, entrez un nom unique, tel quemydocdbcluster. Notez que la console remplacera tous les noms de cluster en minuscules, quelle que soit la manière dont ils sont saisis.

    • Pour la version Engine, choisissez 5.0.0.

  6. Dans la section Configuration du stockage en cluster, laissez le paramètre Amazon DocumentDB Standard tel quel (il s'agit de l'option par défaut).

  7. Dans la section Configuration de l'instance :

    • Pour la classe d'instance de base de données, choisissez Classes optimisées pour la mémoire (incluez les classes r) (par défaut).

    • Pour Classe d'instance, choisissez une classe d'instance en fonction de la charge de travail. Par exemple :

      • db.r6g.large : pour les petites charges de travail

      • db.r6g.4xlarge : pour les charges de travail plus importantes

      Il est recommandé de choisir une instance aussi grande que possible pour obtenir un débit à pleine charge optimal, puis de réduire la taille une fois la migration terminée.

    • Pour Nombre d'instances, choisissez 1 instance. Le choix d'une instance permet de minimiser les coûts. Passez à trois instances pour bénéficier d'une haute disponibilité une fois la migration complète terminée.

  8. Dans la section Authentification, entrez un nom d'utilisateur pour l'utilisateur principal, puis choisissez Autogéré. Saisissez un mot de passe, puis confirmez-le.

  9. Dans la section Paramètres réseau, choisissez un VPC et un groupe de sous-réseaux, puis configurez le groupe de sécurité VPC. Assurez-vous que votre groupe de sécurité Amazon DocumentDB autorise les connexions entrantes depuis le groupe de sécurité de l'instance DMS en mettant à jour les règles entrantes.

  10. Dans la Encryption-at-rest section, activez le chiffrement (recommandé) et choisissez ou saisissez une clé KMS.

  11. Dans la section Sauvegarde, définissez la période de conservation des sauvegardes (1 à 35 jours).

  12. Vérifiez votre configuration et choisissez Créer un cluster.

    Le temps de déploiement prend généralement entre 10 et 15 minutes,

Configuration de la source

MongoDB et Amazon DocumentDB peuvent tous deux servir de sources de migration, selon votre scénario :

  • MongoDB en tant que source  : courant lors de la migration d'une base de données MongoDB locale ou autogérée vers une base de données Amazon DocumentDB ou d'autres services de base de données. AWS Nécessite une exécution en mode jeu de répliques avec un oplog de taille adéquate (assurez-vous qu'il est dimensionné pour contenir toutes les opérations pendant le chargement complet) pour permettre la capture des données de modification pendant la migration.

  • Amazon DocumentDB comme source  : généralement utilisé pour la réplication entre régions, les mises à niveau de version ou la migration vers d'autres services de base de données tels que MongoDB Atlas. Nécessite Activer les flux de modifications de définir le change_stream_log_retention_duration paramètre dans le groupe de paramètres du cluster pour capturer les modifications en cours pendant la migration. Assurez-vous que votre change_stream_log_retention_duration réglage est suffisamment grand pour couvrir le temps nécessaire pour terminer le chargement complet.

Avant de commencer la migration, configurez votre source pour autoriser AWS DMS l'accès.

Créez un utilisateur MongoDB avec les autorisations appropriées :

db.createUser({ user: "dmsUser", pwd: "yourSecurePassword", roles: [{ role: "readAnyDatabase", db: "admin" }] })

Configurez le réseau et l'authentification.

Lors de la configuration de la connectivité réseau pour la migration de MongoDB vers DMS :

EC2-hosted Source de MongoDB

  • Modifiez le groupe de sécurité EC2 pour autoriser le trafic entrant en provenance du groupe de sécurité de l'instance de réplication DMS.

  • Ajoutez une règle pour le port TCP 27017 (ou votre port MongoDB personnalisé).

  • Utilisez l'ID de groupe de sécurité de l'instance de réplication DMS comme source pour un contrôle d'accès précis.

  • Assurez-vous que le sous-réseau de l'instance EC2 possède une route vers le sous-réseau de l'instance de réplication DMS.

On-premises Source de MongoDB

  • Configurez votre pare-feu pour autoriser les connexions entrantes provenant des adresses IP publiques de l'instance de réplication DMS.

  • Si vous utilisez Direct Connect un VPN, assurez-vous que le routage entre votre réseau et le VPC contenant l'instance DMS est correct.

  • Testez la connectivité à l'aide des commandes telnet ou nc depuis le sous-réseau DMS vers votre serveur MongoDB.

Source de l'Atlas MongoDB

  • Ajoutez les adresses IP d'une instance de réplication DMS à la liste d'adresses IP autorisées de MongoDB Atlas.

  • Configurez le peering VPC entre AWS VPC et MongoDB Atlas VPC si Atlas est en cours d'exécution sur. AWS

  • Configurez AWS PrivateLink la connectivité privée (niveau Enterprise), si vous utilisez un autre fournisseur de cloud.

  • Créez un utilisateur dédié avec read/write les autorisations appropriées.

  • Utilisez une chaîne de connexion MongoDB Atlas avec le mode SSL réglé sur « verify-full ».

  • Assurez-vous que la taille du journal est suffisante pour la durée de la migration.

Source d'Amazon DocumentDB

Configurez votre groupe de sécurité Amazon DocumentDB source pour autoriser le trafic entrant en provenance du groupe de sécurité de l'instance de réplication DMS.

Création d'une instance de réplication DMS

Utilisez DMS Buddy pour provisionner votre infrastructure DMS. Il crée une infrastructure de migration optimale avec des paramètres DMS et des tailles d'instance optimaux.

Si vous préférez configurer manuellement, procédez comme suit :

  1. Ouvrez la console AWS DMS et choisissez Créer une instance de réplication.

  2. Entrez les détails de l'instance de réplication :

    • Nom de l'instance  : choisissez un nom unique.

    • Classe d'instance  : sélectionnez en fonction de la charge de travail. Exemple : dms.r5.large (petites charges de travail), dms.r5.4xlarge (charges de travail importantes).

    • Version du moteur  : 3.5.4

    • Stockage alloué  : la valeur par défaut est de 100 Go (augmentez si nécessaire). Ceci est déterminé par la taille du document updates/second et la durée de chargement complet.

    • Multi-AZ Déploiement  : activez la haute disponibilité, si nécessaire.

    • Choisissez le même VPC qu'Amazon DocumentDB.

    • Assurez-vous que les groupes de sécurité autorisent le trafic entrant provenant de la source et d'Amazon DocumentDB.

  3. Choisissez Créer une instance de réplication et attendez que le statut soit disponible.

Création de points de terminaison DMS

Création d'un point de terminaison source

Pour une source MongoDB

  1. Dans la console DMS, dans le volet de navigation, choisissez Migrer ou répliquer, puis choisissez Endpoints.

  2. Choisissez Créer un point de terminaison.

  3. Sur la page Créer un point de terminaison, choisissez Point de terminaison source.

  4. Dans la section Configuration des terminaux :

    • Entrez un identifiant de point de terminaison unique et significatif (par exemple, « mongodb-source »).

    • Choisissez MongoDB comme moteur source.

    • Pour Accès à la base de données du point de terminaison, choisissez Renseignez les informations d’accès manuellement.

    • Dans le champ Nom du serveur, entrez votreMongoDB server DNS name/IP address.

    • Pour Port, entrez 27017 (port MongoDB par défaut).

    • Pour le mode Authentification, choisissez le mode approprié pour votre application (password/SSL) (par défaut, le gestionnaire de secrets est le gestionnaire de secrets).

    • Si le mode d'authentification est Mot de passe, indiquez :

      • Nom d'utilisateur et mot de passe  : entrez les informations d'identification MongoDB.

      • Nom de la base de données  : nom de votre base de données source.

      • Mécanisme d'authentification  : SCRAM-SHA-1 (par défaut) ou mécanisme approprié

  5. Pour le mode Métadonnées, conservez le paramètre par défaut du document.

  6. Attributs de connexion supplémentaires :

    • AuthSource=Admin (si la base de données d'authentification est différente)

    • ReplicaSet= <your-replica-set-name>(obligatoire pour le CDC)

Pour une source Amazon DocumentDB

  1. Dans la console DMS, dans le volet de navigation, choisissez Migrer ou répliquer, puis choisissez Endpoints.

  2. Choisissez Créer un point de terminaison.

  3. Sur la page Créer un point de terminaison, choisissez Point de terminaison source.

  4. Dans la section Configuration des terminaux :

    • Entrez un identifiant de point de terminaison unique et significatif (par exemple, « docdb-source »).

    • Choisissez Amazon DocumentDB comme moteur source.

    • Pour Accès à la base de données du point de terminaison, choisissez Renseignez les informations d’accès manuellement.

    • Dans le champ Nom du serveur, entrez votresource Amazon DocumentDB cluster endpoint.

    • Pour Port, entrez 27017 (port Amazon DocumentDB par défaut).

    • Pour le mode SSL, choisissez verify-full (recommandé pour Amazon DocumentDB).

    • Pour le certificat CA, choisissez le certificat CA racine Amazon RDS.

    • Pour le mode Authentification, choisissez le mode approprié pour votre application (password/SSL) (par défaut, le gestionnaire de secrets est le gestionnaire de secrets).

    • Si le mode d'authentification est Mot de passe, indiquez :

      • Nom d'utilisateur et mot de passe  : entrez les informations d'identification Amazon DocumentDB.

      • Nom de la base de données  : nom de votre base de données source.

      • Mécanisme d'authentification  : SCRAM-SHA-1 (par défaut) ou mécanisme approprié

  5. Pour le mode Métadonnées, conservez le paramètre par défaut du document.

Création d'un point de terminaison cible (Amazon DocumentDB)
  1. Dans la console DMS, dans le volet de navigation, choisissez Migrer ou répliquer, puis choisissez Endpoints.

  2. Choisissez Créer un point de terminaison.

  3. Sur la page Créer un point de terminaison, choisissez le point de terminaison cible.

  4. Dans la section Configuration des terminaux :

    • Entrez un identifiant de point de terminaison unique et significatif (par exemple, « docdb-target »).

    • Choisissez Amazon DocumentDB comme moteur cible.

    • Pour accéder à la base de données des terminaux, choisissez la méthode que vous souhaitez utiliser pour authentifier l'accès à la base de données :

      • Si vous choisissez AWS Secrets Manager, choisissez le secret dans lequel vous stockez vos informations d'identification Amazon DocumentDB dans le champ Secret.

      • Si vous choisissez Fournir les informations d'accès manuellement  :

        • Dans le champ Nom du serveur, entrez votretarget Amazon DocumentDB cluster endpoint.

        • Pour Port, entrez 27017 (port Amazon DocumentDB par défaut).

        • Pour le mode SSL, choisissez verify-full (recommandé pour Amazon DocumentDB).

        • Pour le certificat CA, téléchargez et spécifiez le bundle de certificats CA pour la vérification SSL.

        • Pour le mode Authentification, choisissez le mode approprié pour votre application (password/SSL) (par défaut, le gestionnaire de secrets est le gestionnaire de secrets).

        • Si le mode d'authentification est Mot de passe, indiquez :

          • Nom d'utilisateur et mot de passe  : entrez les informations d'identification Amazon DocumentDB.

          • Nom de la base de données  : nom de votre base de données source.

          • Mécanisme d'authentification  : SCRAM-SHA-1 (par défaut) ou mécanisme approprié

  5. Pour le mode Métadonnées, conservez le paramètre par défaut du document.

Créer une tâche de réplication

  1. Dans la console DMS, dans le volet de navigation, choisissez Migrer ou répliquer, puis choisissez Tâches.

  2. Choisissez Créer tâche.

  3. Sur la page Créer une tâche, dans la section Configuration de la tâche :

    • Entrez un identifiant de tâche unique et significatif (par exemple, « mongodb-docdb-replication »).

    • Choisissez le point de terminaison source que vous avez créé précédemment dans le menu déroulant Point de terminaison de la base de données source.

    • Choisissez le point de terminaison cible que vous avez créé précédemment dans le menu déroulant Point de terminaison de la base de données cible.

    • Pour Type de tâche, choisissez Migrer et répliquer.

  4. Dans la section Paramètres :

    • Pour le mode de préparation de la table cible, conservez le paramètre par défaut.

    • Pour Arrêter la tâche une fois le chargement complet terminé, conservez le paramètre par défaut.

    • Pour les paramètres de colonne LOB, laissez le réglage du mode LOB limité tel quel.

    • Pour la validation des données, laissez le paramètre par défaut Désactiver.

    • Pour les journaux de tâches, cochez la case Activer CloudWatch les journaux.

    • Pour Batch-optimized Appliquer, laissez le paramètre par défaut décoché (désactivé).

  5. De retour en haut de la section Paramètres des tâches, en mode édition, choisissez l'éditeur JSON et définissez les attributs suivants :

    { "TargetMetadata": { "ParallelApplyThreads": 5 }, "FullLoadSettings": { "MaxFullLoadSubTasks": 16 } }
  6. Dans la section Mappages de tables, ajoutez une nouvelle règle de sélection :

    • Dans le champ Nom du schéma, ajoutez la base de données source à migrer. Utilisez % pour spécifier plusieurs bases de données.

    • Dans le champ Nom de la table de schéma, ajoutez la collection source à migrer. Utilisez % pour spécifier plusieurs collections.

    • Pour Action, laissez le paramètre par défaut Inclure

  7. Pour les collections volumineuses (plus de 100 Go), ajoutez la règle de configuration des tables :

    • Dans le champ Nom du schéma, ajoutez la base de données source à migrer. Utilisez % pour spécifier plusieurs bases de données.

    • Dans le champ Nom de la table de schéma, ajoutez la collection source à migrer. Utilisez % pour spécifier plusieurs collections.

    • Dans le champ Nombre de partitions, entrez 16 (doit être inférieur àMaxFullLoadSubTask).

  8. Dans la section Évaluation de la prémigration, assurez-vous qu'elle est désactivée.

Migration hors ligne

Cette section décrit la procédure à suivre pour effectuer une migration hors ligne depuis une instance MongoDB autogérée vers Amazon DocumentDB à l'aide des outils natifs de MongoDB : et. mongodump mongorestore

Conditions préalables

Exigences relatives à Source MongoDB

  • Accès à l'instance MongoDB source avec les autorisations appropriées.

  • Installermongodump. si nécessaire (il est installé lors d'une installation de MongoDB).

  • Assurez-vous qu'il y a suffisamment d'espace disque pour les fichiers de vidage.

Configuration requise pour Target Amazon DocumentDB

  • Assurez-vous de disposer d'un cluster Amazon DocumentDB provisionné.

  • Assurez-vous qu'il existe une instance EC2 dans le même VPC qu'Amazon DocumentDB pour faciliter la migration.

  • La connectivité réseau doit être disponible entre votre environnement source et Amazon DocumentDB.

  • mongorestore doit être installé sur l'instance EC2 de migration.

  • Les autorisations IAM appropriées doivent être configurées pour accéder à Amazon DocumentDB,

Exigences générales

  • AWS CLI doit être configuré (si vous utilisez AWS des services pour le stockage intermédiaire)

  • Une bande passante suffisante doit être disponible pour le transfert de données.

  • La fenêtre d'indisponibilité doit être approuvée (si vous effectuez une migration dynamique, envisagez d'autres approches)

Préparer un cluster Amazon DocumentDB

Créez un cluster Amazon DocumentDB dans AWS :

  • Adaptez une taille d'instance en fonction de votre charge de travail.

  • Configurez un VPC, des sous-réseaux et des groupes de sécurité.

  • Activez les paramètres nécessaires via des groupes de paramètres.

Effectuez le vidage des données (mongodump)

Choisissez l'une des options suivantes pour créer un fichier de vidage :

  • Option 1 : Basique

    mongodump -- uri="mongodb://<source_user>:<source_password>@<source_host>:<source_port>/<database>" -- out=/path/to/dump
  • Option 2 : amélioration du contrôle et des performances

    mongodump \ --uri="mongodb://<source_user>:<source_password>@<sourcehost>:<source_port>" \ --out=/path/to/dump \ --gzip \# Compress output --numParallelCollections=4 \# Parallel collections dump --ssl \# If using SSL --authenticationDatabase=admin \ # If auth is required --readPreference=secondaryPreferred # If replica set
  • Option 3 : bases de données volumineuses

    mongodump \ --host=<source_host> \ --port=<source_port> \ --username=<source_user> \ --password=<source_password> \ --db=<specific_db> \# Only dump specific DB --collection=<specific_collection> \ # Only dump specific collection --query='{ "date": { "$gt": "2020-01-01" } }' \ # Filter documents --archive=/path/to/archive.gz \# Single archive output --gzip \ --ssl

Transférer les fichiers de vidage vers l'environnement de restauration

Choisissez une méthode appropriée en fonction de la taille de votre décharge :

  • Petit  : copiez directement sur votre machine de migration (instance EC2 que vous avez créée précédemment) :

    scp -r /path/to/dump user@migration-machine:/path/to/restore
  • Moyen  : utilisez Amazon S3 comme stockage intermédiaire :

    aws s3 cp --recursive /path/to/dump s3://your-bucket/mongodb-dump/
  • Grande  : pour les bases de données très volumineuses, envisagez AWS DataSync un transfert physique.

Restaurer les données sur Amazon DocumentDB (mongorestore)

Avant de démarrer le processus de restauration, créez les index dans Amazon DocumentDB. Vous pouvez utiliser l'outil Amazon DocumentDB Index pour exporter et importer des index.

Choisissez l'une des options suivantes pour restaurer les données :

  • Option 1 : restauration de base

    mongorestore --uri="mongodb://<docdb_user>:<docdb_password>@<docdb_endpoint>:27017" /path/to/dump
  • Option 2 : amélioration du contrôle et des performances

    mongorestore \ --uri="mongodb://<docdb_user>:<docdb_password>@<docdb_endpoint>:27017" \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ # DocumentDB CA cert --gzip \# If dumped with gzip --numParallelCollections=4 \# Parallel restoration --numInsertionWorkersPerCollection=4 \# Parallel documents insertion --noIndexRestore \# skip indexes as they are pre-created /path/to/dump
  • Option 3 : bases de données volumineuses ou contrôles spécifiques

    mongorestore \ --host=<docdb_endpoint> \ --port=27017 \ --username=<docdb_user> \ --password=<docdb_password> \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ --archive=/path/to/archive.gz \# If using archive format --gzip \ --nsInclude="db1.*" \# Only restore specific namespaces --nsExclude="db1.sensitive_data" \ # Exclude specific collections if needed --noIndexRestore \# skip indexes as they are pre-created --writeConcern="{w: 'majority'}" # Ensure write durability

Contrôle

Cette section fournit un processus de surveillance détaillé permettant de suivre la progression, les performances et l'état d'une migration en cours depuis :

MongoDB vers Amazon DocumentDB

or

Amazon DocumentDB vers Amazon DocumentDB

Les étapes de surveillance s'appliquent quelle que soit la méthode de migration (AWS DMS mongodump/mongorestore, ou autres outils).

AWS DMS Surveillance de la migration (le cas échéant)

Surveillez les CloudWatch indicateurs clés suivants :

Métriques de la phase de pleine charge

  • FullLoadThroughputBandwidthTarget— Bande passante réseau (KB/second) pendant le chargement complet

  • FullLoadThroughputRowsTarget— Nombre de personnes rows/documents chargées par seconde

  • FullLoadThroughputTablesTarget— Nombre de tâches tables/collections terminées par minute

  • FullLoadProgressPercent— Pourcentage de chargement complet terminé

  • TablesLoaded— Nombre de fichiers chargés tables/collections avec succès

  • TablesLoading— Nombre de fichiers tables/collections en cours de chargement

  • TablesQueued— Nombre de tables/collections personnes en attente de chargement

  • TablesErrored— Numéro dont le chargement tables/collections n'a pas pu être effectué

Métriques de phase du CDC

  • CDCLatencyTarget— Délai (secondes) entre le changement de source et l'application cible

  • CDCLatencySource— Délai (secondes) entre le changement de source et sa lecture par le DMS

  • CDCThroughputRowsTarget— Lignes par seconde appliquées pendant la réplication en cours

  • CDCThroughputBandwidthTarget— Bande passante réseau (KB/second) pendant le CDC

  • CDCIncomingChanges— Nombre d'événements de changement reçus de la source

  • CDCChangesMemoryTarget— Mémoire utilisée (Mo) pour stocker les modifications côté cible

Indicateurs relatifs aux ressources

  • CPUUtilization  : utilisation du processeur par l'instance de réplication

  • FreeableMemory— Mémoire disponible sur l'instance de réplication

  • FreeStorageSpace— Stockage disponible sur l'instance de réplication

  • NetworkTransmitThroughput— Débit réseau pour l'instance de réplication

  • NetworkReceiveThroughput— Débit réseau pour l'instance de réplication

Métriques d'erreur

  • ErrorsCount— Nombre total d'erreurs lors de la migration

  • TableErrorsCount— Nombre d'erreurs spécifiques à la table

  • RecordsErrorsCount— Nombre d'erreurs spécifiques à l'enregistrement

Créez des CloudWatch alarmes pour des indicateurs critiques tels que CDCLatencyTarget et CPUUtilization pour recevoir des notifications en cas de dégradation des performances de migration.

Journaux DMS (CloudWatch journaux)

  1. Accédez à la console Amazon CloudWatch Logs.

  2. Recherchez et choisissez dans votre groupe de journaux. Cela ressemblera à « dms-tasks — ».

  3. Recherchez les flux de journaux susceptibles de contenir des informations d'erreur :

    • Streams avec « erreur » dans le nom

    • Flux avec ID de tâche ou nom de point de terminaison

    • Les flux de journaux les plus récents au moment de votre migration

  4. Dans ces flux, recherchez des mots clés tels que :

    • « erreur »

    • « exception »

    • « échec »

    • « avertissement »

État de la tâche DMS (à l'aide de AWS CLI)

aws dms describe-replication-tasks --filters Name=replication-task id,Values=<task_id> --query "ReplicationTasks[0].Status"

Flux d'état attendu :

création → prêt → en cours d'exécution → arrêt → arrêté (ou échec)

Surveiller à l'aide de docdb-dashboarder

L'docdb-dashboarderoutil fournit une surveillance complète des clusters Amazon DocumentDB en générant automatiquement des CloudWatch tableaux de bord contenant des indicateurs de performance essentiels. Ces tableaux de bord affichent des mesures critiques au niveau du cluster (retard de réplication, compteurs d'opérations), des mesures au niveau de l'instance (processeur, mémoire, connexions) et des mesures de stockage (utilisation du volume, stockage de sauvegarde). Pour les scénarios de migration, l'outil propose des tableaux de bord spécialisés qui suivent la progression de la migration à l'aide de mesures telles que le décalage de réplication CDC et les taux de fonctionnement. Les tableaux de bord peuvent surveiller plusieurs clusters simultanément et incluent la prise en charge des NVMe-backed instances. En visualisant ces indicateurs, les équipes peuvent identifier de manière proactive les goulots d'étranglement en matière de performances, optimiser l'allocation des ressources et garantir le bon fonctionnement de leurs déploiements Amazon DocumentDB. L'outil élimine le besoin de créer manuellement des tableaux de bord tout en fournissant une surveillance cohérente dans tous les environnements. Pour obtenir des instructions de configuration et des options de configuration avancées, consultez le référentiel Amazon DocumentDB Dashboarder Tool. GitHub

Validation

Cette section décrit un processus de validation détaillé pour garantir la cohérence, l'intégrité et la compatibilité des applications des données après la migration depuis :

MongoDB vers Amazon DocumentDB

or

Amazon DocumentDB vers Amazon DocumentDB

Les étapes de validation s'appliquent quelle que soit la méthode de migration (AWS DMS mongodump/mongorestore, ou autres outils).

Liste de contrôle de validation

Vérifiez que le nombre de documents de chaque collection correspond à celui de la source à celui de la cible :

Source de MongoDB

mongo --host <source_host> --port <port> --username <user> -- password <password> --eval "db.<collection>.count()"

Cible Amazon DocumentDB

mongo --host <target_host> --port <port> --username <user> -- password <password> --eval "db.<collection>.count()"

Validation du schéma et de l'index

Assurez-vous que :

  • toutes les collections existent dans la cible.

  • les index sont correctement répliqués.

  • les définitions de schéma (si elles sont appliquées) sont identiques.

Vérifiez les collections (source ou cible)

mongo --host <source_host> --eval "show collections" mongo --host <target_host> --ssl --eval "show collections"

vérifier les index (source ou cible)

mongo --host <source_host> --eval" db.<collection>.getIndexes()" mongo --host <target_host> --ssl –eval" db.<collection>.getIndexes()"

Comparez la liste des collections pour vous assurer qu'il n'y a aucune collection manquante ou supplémentaire.

Vérifiez les index en vérifiant les noms des index, les définitions de clés, les contraintes uniques et les index TTL (le cas échéant).

Vérifiez les règles de validation des schémas (si vous utilisez la validation des schémas dans MongoDB)

mongo --host <source_host> --eval" db.getCollectionInfos({name: '<collection>'}) [0].options.validator" mongo --host <target_host> --ssl –eval" db.getCollectionInfos({name: '<collection>'})[0].options.validator"

Échantillonnage des données et validation sur le terrain

Vous pouvez échantillonner des documents de manière aléatoire et comparer les champs entre la source et la cible.

Échantillonnage manuel

Récupérez cinq documents au hasard (source) :

mongo --host <source_host> --eval "db.<collection>.aggregate([{ \$sample: { size: 5 } }])"

Récupérez les mêmes identifiants de document (cible) :

mongo --host <target_host> --ssl –eval "db.<collection>.find({ _id: { \$in: [<list_of_ids>] } })"

Échantillonnage automatique

import pymongo # Connect to source and target source_client = pymongo.MongoClient("<source_uri>") target_client = pymongo.MongoClient("<target_uri>", ssl=True) source_db = source_client["<db_name>"] target_db = target_client["<db_name>"] # Compare 100 random documents for doc in source_db.<collection>.aggregate([{ "$sample": { "size": 100 } }]): target_doc = target_db.<collection>.find_one({ "_id": doc["_id"] }) if target_doc != doc: print(f"❌ Mismatch in _id: {doc['_id']}") else: print(f"✅ Match: {doc['_id']}")

Validation via DataDiffer un outil

L'DataDiffer outil fournit un moyen fiable de comparer les données entre les bases de données source et cible.

Conditions préalables

Les conditions préalables suivantes doivent être remplies avant d'installer l' DataDiffer outil :

  • Python 3.7+

  • PyMongo bibliothèque

  • Connectivité réseau aux clusters MongoDB source et cible Amazon DocumentDB

Configuration et installation

Clonez le référentiel et accédez au DataDiffer répertoire

git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/data-differ

Installation des dépendances requises

pip install -r requirements.txt

Validation des données en cours

Créez un fichier de configuration (par exemple, config.json) avec les détails de connexion

{ "source": { "uri": "mongodb://username:password@source-mongodb- host:27017/?replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "target": { "uri": "mongodb://username:password@target-docdb- cluster.region.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global- bundle.pem&replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "options": { "batch_size": 1000, "threads": 4, "sample_size": 0, "verbose": true } }

Exécutez l' DataDiffer outil

python differ.py --config config.json

Pour les grandes collections, utilisez l'échantillonnage pour valider un sous-ensemble de données

python differ.py --config config.json --sample-size 10000

Pour valider plusieurs collections, créez des fichiers de configuration distincts ou utilisez le mode batch

python differ.py --batch-config batch_config.json

Interprétation des résultats

L'outil produira :

  • Nombre total de documents dans la source et la cible

  • Nombre de documents correspondants

  • Nombre de documents manquants

  • Nombre de documents présentant des différences

  • Rapport détaillé des différences (le cas échéant)

Bonnes pratiques

Voici les meilleures pratiques à adopter lors de l'utilisation de DataDiffer cet outil :

  • Exécution par étapes  : validez d'abord le nombre de documents, puis échantillonnez des documents clés et, enfin, effectuez une comparaison complète, si nécessaire.

  • Vérifiez les différences de schéma  : Amazon DocumentDB présente certaines limites par rapport à MongoDB. L'outil mettra en évidence les types de données ou les structures incompatibles.

  • Validez pendant les périodes calmes — Exécutez la validation lorsque les opérations d'écriture sont minimes pour garantir la cohérence.

  • Surveiller l'utilisation des ressources — Le processus de comparaison peut être gourmand en ressources. Ajustez la taille du lot et le nombre de fils en conséquence.

  • Valider les index — Après la validation des données, assurez-vous que tous les index requis ont été créés sur le cluster Amazon DocumentDB cible.

  • Résultats de validation des documents  : conservez un enregistrement des résultats de validation pour chaque collection dans le cadre de votre documentation de migration.