MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Migration de MongoDB vers DynamoDB, partie 2

AWS Database Migration Service (DMS) a ajouté la prise en charge de deux bases de données NoSQL en 2017 :MongoDB comme base de données source et AWS DynamoDB comme base de données cible. Dans un didacticiel de deux articles, nous migrons une base de données MongoDB vers DynamoDB sur DMS. Dans le premier article, "Migration de MongoDB vers DynamoDB, partie 1", nous avons créé un jeu de réplicas MongoDB et une table DynamoDB. Dans cet article de continuation, nous discuterons de la création et de l'exécution d'une migration DMS pour migrer des données.

Cet article comporte les sections suivantes :

  • Création d'une migration DMS
  • Exécution de la migration
  • Reprendre une migration
  • Supprimer une migration
  • Conclusion

Création d'une migration DMS

Ensuite, nous allons créer une migration DMS pour migrer la base de données MongoDB vers DynamoDB. Connectez-vous en tant qu'utilisateur IAM (dvohra ou autre) créé pour DMS et sélectionnez DMS dans AWS Management Console. Cliquez sur Créer une migration dans le tableau de bord DMS, comme illustré à la figure 1.


Figure 1 : Créer une migration

Cliquez sur Suivant dans la page d'accueil du DMS, comme illustré à la figure 2.


Figure 2 : Bienvenue>Suivant

L'option Créer une instance de réplication La boîte de dialogue s'affiche, comme illustré à la figure 3, dans laquelle nous configurons une instance de réplication pour initier les connexions entre les bases de données source et cible, transférer les données et mettre en cache toutes les modifications apportées à la base de données source lors du chargement initial.


Figure 3 : Créer une instance de réplication

Spécifiez le nom de l'instance de réplication dans le champ Name champ, sélectionnez la classe d'instance , sélectionnez un VPC , et sélectionnez l'option indiquant si un Multi-AZ instance de réplication doit être créée. Description , qui est généralement facultatif dans les paramètres configurables, est un champ obligatoire. Les paramètres par défaut sont fournis pour tous ces champs, à l'exception du VPC. Les paramètres d'instance de réplication utilisés sont illustrés à la figure 4.


Figure 4 : Paramètres de l'instance de réplication

Sélectionnez l'option pour rendre l'instance de réplication accessible publiquement et cliquez sur Avancé pour configurer les paramètres avancés, comme illustré à la Figure 5.


Figure 5 : Définir l'instance de réplication comme accessible publiquement

Dans l'onglet Avancé section, les paramètres par défaut sont fournis pour tous les champs (voir Figure 6).


Figure 6 : Paramètres avancés

Les paramètres par défaut, à l'exception de la clé principale KMS, qui doit être définie sur la clé de chiffrement (dms) créée avant la connexion en tant qu'utilisateur IAM (dvohra), conviennent à toute instance de réplication, comme illustré à la figure 7. Cliquez sur Suivant.


Figure 7 : Paramètres avancés>Suivant

L'instance de réplication commence à être créée, comme indiqué par le message illustré à la figure 8. Spécifiez ensuite les points de terminaison de la base de données lors de la création de l'instance de réplication. Cependant, les points de terminaison de la base de données ne peuvent pas être testés tant que l'instance de réplication n'a pas été créée.


Figure 8 : Instance de réplication en cours de création

Pour le moteur source , sélectionnez le mongodb base de données, comme illustré à la figure 9.


Figure 9 : Sélection du moteur source comme mongodb

Pour le moteur cible , sélectionnez le dynamodb base de données, comme illustré à la figure 10.


Figure 10 : Sélection du moteur cible comme dynamodb

L'identifiant de point de terminaison peut être conservé par défaut pour les bases de données source et cible, mais les autres paramètres de connexion doivent être spécifiés. Pour les détails de connexion à la base de données source , spécifiez le nom du serveur en tant qu'adresse IP privée (Figure 21 dans le premier article, "Migration de MongoDB vers DynamoDB, partie 1") de l'instance CoreOS EC2 sur laquelle l'ensemble de réplicas MongoDB est démarré à l'aide de Docker et spécifiez Port comme 27017 (voir Figure 11). Sélectionnez "aucun" pour le mode SSL et Mode d'authentification . Spécifiez le nom de la base de données comme test et sélectionnez Mécanisme d'authentification par par défaut .


Figure 11 : Détails de connexion à la base de données source

Pour le moteur de base de données source, mongodb , sélectionnez Mode métadonnées comme document et sélectionnez l'option _id dans une colonne séparée , comme illustré à la Figure 12. Le test d'exécution les boutons sont utilisés pour tester les connexions aux bases de données source et cible et ne sont activés qu'une fois l'instance de réplication créée.


Figure 12 : Autres paramètres pour le moteur source

Copiez l'ARN du rôle pour le dms-vpc-role depuis la console IAM, comme illustré à la Figure 13. L'ARN du rôle doit être utilisé pour définir la connexion à la base de données cible pour la migration DMS.


Figure 13 : Copier l'ARN du rôle

Copiez et collez l'ARN du rôle dans l'ARN du rôle d'accès au service champ, comme illustré à la Figure 14.


Figure 14 : ARN du rôle d'accès au service

Lorsque l'instance de réplication a été créée, un message indiquant la même chose s'affiche, comme illustré à la figure 15.


Figure 15 : Instance de réplication créée

Pour la base de données cible, cliquez sur Exécuter le test pour tester la connexion. Si une connexion est établie, le message "Connexion testée avec succès" doit s'afficher (voir Figure 16).


Figure 16 : La connexion à la base de données cible a été testée avec succès

De même, cliquez sur Exécuter le test pour la base de données source, et le message "Connexion testée avec succès" doit s'afficher si une connexion est établie, comme illustré à la figure 17.


Figure 17 : La connexion à la base de données source a été testée avec succès

Cliquez sur Suivant dans Points de terminaison de la base de données , comme illustré à la Figure 18.


Figure 18 : Points de terminaison de la base de données>Suivant

Ensuite, configurez une tâche de migration dans Créer une tâche page. Une tâche se compose de plusieurs paramètres, notamment le nom de la tâche, la description de la tâche, le point de terminaison source, le point de terminaison cible, l'instance de réplication, le type de migration, les paramètres de tâche, les mappages de table et les paramètres avancés. Les paramètres par défaut pour Nom de la tâche et les paramètres non modifiables pour le point de terminaison source , point de terminaison cible , Instance de réplication , et Type de migration sont illustrés à la Figure 19.


Figure 19 : Créer des paramètres de tâche

Ajoutez une description appropriée et sélectionnez un type de migration dans la liste déroulante illustrée à la Figure 20. Les différentes options pour le type de migration sont Migrer les données existantes , Migrer les données existantes et répliquer les modifications en cours , et Répliquer uniquement les modifications de données . Pour migrer les données existantes de MongoDB vers DynamoDB avec la possibilité de répliquer les modifications en cours, sélectionnez Migrer les données existantes et répliquer les modifications en cours . Une tâche de migration une fois créée peut être modifiée ultérieurement, à l'exception du type de migration paramètre, qui n'est pas modifiable après la création d'une tâche de migration. Par conséquent, choisissez le type de migration en supposant qu'il s'agit d'un paramètre permanent.


Figure 20 : Choix du type de migration

Sélectionnez Paramètres de tâche pour le mode de préparation du tableau cible , Arrêter la tâche une fois le chargement complet terminé , Inclure les colonnes LOB dans la réplication , et Activer la journalisation (voir Figure 21).


Figure 21 : Paramètres de tâche

Cliquez sur Paramètres avancés , comme illustré à la Figure 22, pour configurer les paramètres avancés, qui incluent la table de contrôle paramètres et Réglage réglages. Les paramètres avancés par défaut peuvent être conservés.


Figure 22 : Paramètres avancés

Dans les mappages de table , configurez les règles de sélection, comme illustré à la Figure 23. Au moins une règle de sélection avec un Inclure action est requise. Sélectionnez un nom de schéma (test) dans la source DMS MongoDB. Le nom du schéma est le même qu'un nom de base de données MongoDB, qui est test . Spécifiez Le nom de la table ressemble à ‘%’, qui sélectionne toutes les tables. Un tableau est aussi appelé une collection dans MongoDB. Sélectionnez Action comme inclure , qui inclut les objets sélectionnés par une règle de sélection. Les actions d'exclusion sont traitées après les actions d'inclusion.


Figure 23 : Mappages de table

Des filtres de source pour limiter le nombre et le type d'enregistrements transférés de la source à la cible peuvent également être configurés. Cliquez sur Ajouter une règle de sélection , comme illustré à la Figure 24.


Figure 24 : Ajouter une règle de sélection

Des règles de transformation peuvent être ajoutées pour faire des majuscules/minuscules et ajouter/supprimer des transformations de préfixe/suffixe. Si la journalisation a été activée, DMS crée un rôle pour se connecter à CloudWatch. La création d'une tâche accorde implicitement les autorisations requises pour accéder et se connecter à CloudWatch. Cliquez sur Créer une tâche , comme illustré à la Figure 25.


Figure 25 : Créer une tâche

Une tâche de migration commence à être créée (voir Figure 26). Initialement, le Statut est "Créer". L'état doit être mis à jour automatiquement et l'option permettant de cliquer sur le bouton d'actualisation pour actualiser l'état périodiquement est également fournie.


Figure 26 : La tâche de migration commence à être créée

Lorsqu'une tâche est créée, le Statut devient Prêt , comme illustré à la Figure 27.


Figure 27 : État de la tâche Prêt

Un rôle IAM pour l'accès et la journalisation CloudWatch est créé automatiquement, comme illustré à la Figure 28.


Figure 28 : Rôle IAM pour CloudWatch Logs

Exécution de la migration

Pour exécuter la tâche de migration, cliquez sur Démarrer/Reprendre , comme illustré à la Figure 29.


Figure 29 : Démarrer/Reprendre la tâche

Le statut de la tâche devient Démarrage , comme illustré à la Figure 30.


Figure 30 : Démarrage de la tâche

Une fois l'exécution de la tâche terminée, les tables chargées la colonne répertorie le nombre de tables chargées comme 1, le Statut devient Arrêté , Le % complet doit indiquer 100 , comme illustré à la Figure 31. En tant que Type indique que le type de migration est Chargement complet et réplication continue .


Figure 31 : Chargement complet terminé

En plus des Tables chargées colonne, le chargement des tableaux , Tables en file d'attente , et Tables erronées sont également répertoriés, comme illustré à la Figure 32.


Figure 32 : Le chargement des tables, les tables en file d'attente et les tables erronées sont tous 0

Dans DynamoDB, le wlslog table répertorie sept éléments, comme illustré à la Figure 33. Deux autres tables, awsdms_apply_exceptions et awsdms_full_load_exceptions , sont également créés automatiquement. La table awsdms_apply_exceptions fournit des détails sur l'exception, notamment le nom et la description de l'erreur, l'instruction en cours d'exécution lorsque l'erreur s'est produite, le nom de la tâche, le propriétaire de la table, le nom de la table et l'heure de l'exception. La table awsdms_full_load_exceptions fournit des informations sur les exceptions générées après un chargement complet.


Figure 33 : La table wlslog répertorie sept éléments

Cliquez sur un _id pour afficher le document (_doc valeur d'attribut), comme illustré à la Figure 34.


Figure 34 : Document pour un élément stocké dans DynamoDB

Le filtre DynamoDB peut être utilisé pour filtrer la recherche. Par exemple, recherchez un _id spécifique en spécifiant _id comme champ, en sélectionnant String comme type de champ, en sélectionnant '=' comme opérateur de filtre et en spécifiant le _id la recherche, comme illustré à la Figure 35. Cliquez sur Lancer la recherche .


Figure 35 : Appliquer un filtre

Les données de ligne de la table DynamoDB pour le _id spécifié est répertorié (voir Figure 36).


Figure 36 : Données filtrées pour un _id spécifique

Une fois qu'une tâche de migration a terminé la migration d'une base de données, l'état de la tâche devient Arrêté , mais les points de terminaison de migration sont toujours actifs , comme illustré à la Figure 37.


Figure 37 : Points de terminaison actifs même après la fin de la migration et l'arrêt de la tâche

Reprendre une migration

Une tâche de migration qui s'est arrêtée peut être redémarrée ou reprise. Voici quelques-unes des raisons de reprendre ou de redémarrer une tâche :

  • Un nouveau document a été ajouté à une collection existante (également appelé tableau ) dans la base de données MongoDB source DMS
  • Une nouvelle collection (table) a été ajoutée dans la base de données MongoDB
  • La migration doit être réexécutée avec différentes règles de sélection, ce qui peut être nécessaire, par exemple, si un préfixe de table doit être ajouté à l'aide d'une règle de transformation.

Par exemple, ajoutez trois autres documents au wlslog collecte dans la CLI Mongo.

doc8 = {"timestamp":"Apr 8, 2014 7:06:23 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000360",
   "msg":"Server in RUNNING mode"}
doc9 = {"timestamp":"Apr 8, 2014 7:06:24 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000365",
   "msg":"Server Stopping"}
doc10 = {"timestamp":"Apr 8, 2014 7:06:25 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000361",
   "msg":"Server Resumed"}
db.wlslog.insert([doc8,doc9,doc10])

Comme l'indique la sortie de la figure 38, les trois documents sont ajoutés.


Figure 38 : Ajout de trois documents supplémentaires

Cliquez sur Démarrer/Reprendre pour reprendre une tâche arrêtée, comme illustré à la Figure 39.


Figure 39 : Démarrer/Reprendre pour la tâche arrêtée

Dans le Démarrer la tâche boîte de dialogue, deux options sont proposées :Démarrer ou Redémarrer . Le Démarrer L'option démarre la tâche et charge les nouvelles tables ou collections ajoutées à la source DMS. Le Démarrer charge également toute table qui n'a été que partiellement chargée lors d'une exécution précédente. Le Démarrer L'option ne charge pas les données (nouvelles ou anciennes) dans une table qui a déjà été entièrement chargée dans la base de données cible. Le redémarrage L'option redémarre une tâche et supprime les données existantes dans la base de données cible et redémarre le chargement complet. En effet, le Redémarrer L'option charge les nouvelles données ajoutées aux tables existantes en plus de charger toutes les nouvelles tables ajoutées dans la source DMS. Parce que nous avons ajouté de nouvelles données à une table existante, nous devons sélectionner le redémarrer et cliquez sur Démarrer la tâche , comme illustré à la Figure 40.


Figure 40 : Redémarrage de la tâche

La tâche redémarre, supprime les tables existantes dans la base de données cible et charge toutes les données de la base de données source pour cibler la base de données. Lorsque le chargement des données est terminé, le statut de la tâche devient Chargement terminé (voir Figure 41).


Figure 41 : Chargement terminé

Cliquez sur le bouton d'actualisation dans DynamoDB, comme illustré à la Figure 42.


Figure 42 : Actualisation des données dans la table wlslog

Le nombre d'éléments répertoriés est de 10, comme illustré à la Figure 43, au lieu des sept avant de redémarrer la tâche. Les trois nouveaux objets que nous avons ajoutés font un total de 10 objets.


Figure 43 : Répertorier 10 éléments après avoir ajouté de nouveaux éléments et actualisé les données

Les nouvelles données migrées se distinguent des données chargées au 1 run par un préfixe différent; les données chargées dans le run 1 ont le préfixe 59401 dans le _id et les données chargées dans la 2 exécution ont le préfixe 59402 . Le Filtre L'option peut être utilisée pour répertorier uniquement les nouvelles données, comme illustré à la Figure 44.


Figure 44 : Filtrage des données pour ne lister que trois nouveaux éléments

Le statut de la tâche redevient Arrêté après la migration des nouvelles données, comme illustré à la Figure 45.


Figure 45 : Le statut devient Arrêté une fois le chargement complet terminé

Supprimer une migration

Pour supprimer une migration, sélectionnez la migration et cliquez sur Supprimer (voir Figure 46).


Figure 46 : Supprimer

Dans la tâche Supprimer boîte de dialogue, cliquez sur Supprimer , comme illustré à la Figure 47.


Figure 47 : Supprimer la vérification de la tâche

Le statut de la tâche devient Suppression , comme illustré à la Figure 48, avant que la tâche ne soit supprimée.


Figure 48 : Suppression de tâche

La suppression d'une tâche ne supprime pas les points de terminaison DMS utilisés ; cela signifie qu'une nouvelle tâche peut être créée.

Conclusion

Dans deux articles, nous avons discuté de la migration d'une base de données MongoDB vers des tables DynamoDB à l'aide d'AWS Database Migration Service.