Migration vers DynamoDB depuis une base de données relationnelle - Amazon DynamoDB

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.

Migration vers DynamoDB depuis une base de données relationnelle

La migration d'une base de données relationnelle vers DynamoDB nécessite une planification minutieuse pour garantir un résultat réussi. Ce guide vous aidera à comprendre le fonctionnement de ce processus, les outils dont vous disposez, puis comment évaluer les stratégies de migration potentielles et sélectionner celle qui répondra à vos besoins.

Raisons justifiant la migration vers DynamoDB

La migration vers Amazon DynamoDB présente de nombreux avantages intéressants pour les entreprises et les organisations. Voici quelques avantages clés qui font de DynamoDB un choix intéressant pour la migration de bases de données :

  • Évolutivité : DynamoDB est conçu pour gérer des charges de travail massives et s'adapter facilement à l'augmentation des volumes de données et du trafic. Avec DynamoDB, vous pouvez facilement faire évoluer votre base de données à la hausse ou à la baisse en fonction de la demande, afin que vos applications puissent gérer des pics de trafic soudains sans compromettre les performances.

  • Performances : DynamoDB offre un accès aux données à faible latence, ce qui permet aux applications de récupérer et de traiter les données à une vitesse exceptionnelle. Son architecture distribuée garantit que les opérations de lecture et d'écriture sont réparties sur plusieurs nœuds, offrant ainsi des temps de réponse constants à un chiffre en millisecondes, même à des taux de requêtes élevés.

  • Entièrement géré : DynamoDB est un service entièrement géré fourni par AWS. Cela signifie que AWS gère les aspects opérationnels de la gestion des bases de données, notamment le provisionnement, la configuration, l'application de correctifs, les sauvegardes et le dimensionnement. Cela vous permet de vous concentrer davantage sur le développement de vos applications et moins sur les tâches d'administration de base de données.

  • Architecture sans serveur : DynamoDB prend en charge un modèle sans serveur, connu sous le nom de DynamoDB à la demande, dans lequel vous ne payez que pour les demandes de lecture et d'écriture effectuées par votre application, sans qu'aucun provisionnement de capacité initial ne soit requis. Ce pay-per-request modèle offre une rentabilité et une charge opérationnelle minimale, car vous ne payez que pour les ressources que vous consommez sans avoir à provisionner et à surveiller les capacités.

  • Aucune SQL flexibilité : contrairement aux bases de données relationnelles traditionnelles, DynamoDB suit un modèle SQL sans données, offrant ainsi une flexibilité dans la conception des schémas. Avec DynamoDB, vous pouvez stocker des données structurées, semi-structurées et non structurées, ce qui le rend parfaitement adapté à la gestion de types de données divers et évolutifs. Cette flexibilité permet d'accélérer les cycles de développement et de s'adapter plus facilement à l'évolution des exigences commerciales.

  • Haute disponibilité et durabilité : DynamoDB réplique les données dans plusieurs zones de disponibilité au sein d'une région, garantissant ainsi une haute disponibilité et une durabilité des données. Il gère automatiquement la réplication, le basculement et la restauration, minimisant ainsi le risque de perte de données ou d'interruption de service. DynamoDB fournit une SLA disponibilité allant jusqu'à 99,999 %.

  • Sécurité et conformité : DynamoDB s'intègre à AWS Identity and Access Management pour un contrôle d'accès précis. Il fournit un cryptage au repos et en transit, garantissant ainsi la sécurité de vos données. DynamoDB respecte également diverses normes de conformité, HIPAA notamment PCIDSS, GDPR et vous permet de répondre aux exigences réglementaires.

  • Intégration avec AWS Écosystème  : Dans le cadre du AWS écosystème, DynamoDB s'intègre parfaitement aux autres AWS des services, tels que AWS Lambda, AWS CloudFormation, et AWS AppSync. Cette intégration vous permet de créer des architectures sans serveur, de tirer parti de l'infrastructure sous forme de code et de créer des applications pilotées par les données en temps réel.

Considérations relatives à la migration d'une base de données relationnelle vers DynamoDB

Les systèmes de base de données relationnelle et les SQL bases de données No ont des forces et des faiblesses différentes. Ces différences différencient la conception des bases de données entre les deux systèmes.

Type de tâche Base de données relationnelle Aucune SQL base de données
Interrogation de la base de données Dans les bases de données relationnelles, les données peuvent être consultées de manière flexible, mais les requêtes sont relativement coûteuses et ne sont pas adaptées aux situations de trafic élevé (voir). Premiers pas pour la modélisation des données relationnelles dans DynamoDB Une application de base de données relationnelle peut implémenter une logique métier dans les procédures stockées, les SQL sous-requêtes, les requêtes de mise à jour en masse et les requêtes d'agrégation. Dans une SQL base de données sans base de données telle que DynamoDB, les données peuvent être consultées efficacement d'un nombre limité de manières, en dehors desquelles les requêtes peuvent être coûteuses et lentes. Les écritures dans DynamoDB sont des singletons. La logique métier des applications qui s'exécutait auparavant dans des procédures stockées doit être refactorisée pour s'exécuter en dehors de DynamoDB dans du code personnalisé exécuté sur un hôte tel qu'Amazon ou EC2 AWS Lambda.
Conception de la base de données Vous concevez dans un souci de flexibilité sans vous soucier des détails de mise en œuvre ou des performances. En général, l'optimisation des requêtes n'affecte pas la conception du schéma, mais la normalisation est très importante. Vous concevez votre schéma spécifiquement pour que les requêtes les plus courantes et les plus importantes soient aussi rapides et économiques que possible. Les structures de vos données sont adaptées aux exigences spécifiques de vos cas d'utilisation.

Concevoir pour aucune SQL base de données nécessite un état d'esprit différent de celui de concevoir pour un système de gestion de base de données relationnelle (RDBMS). Par exempleRDBMS, vous pouvez créer un modèle de données normalisé sans penser aux modèles d'accès. Vous pouvez l'étendre ultérieurement, pour répondre à de nouvelles questions et de nouveaux besoins d'interrogation. Vous pouvez organiser chaque type de données dans sa propre table.

Sans SQL conception, vous pouvez concevoir votre schéma pour DynamoDB lorsque vous connaissez les questions auxquelles il devra répondre. Il est essentiel de comprendre les problèmes commerciaux et les modèles de lecture et d'écriture des applications. Vous devez également vous efforcer de conserver le moins de tables possible dans une application DynamoDB. Le fait d'avoir moins de tables rend les choses plus évolutives, nécessite moins de gestion des autorisations et réduit les frais généraux pour votre application DynamoDB. Cela peut également contribuer à maintenir des coûts de sauvegarde globalement plus faibles.

La modélisation des données relationnelles pour DynamoDB et la création d'une nouvelle version de l'application frontale font l'objet d'une autre rubrique. Ce guide part du principe que vous disposez d'une nouvelle version de votre application conçue pour utiliser DynamoDB, mais vous devez tout de même déterminer la meilleure façon de migrer et de synchroniser les données historiques lors du passage à un autre.

Considérations relatives au dimensionnement

La taille maximale de chaque élément (ligne) que vous stockez dans une table DynamoDB est de 400 Ko. Pour de plus amples informations, veuillez consulter Quotas de service, de compte et de table dans Amazon DynamoDB. La taille de l'élément est déterminée par la taille totale de tous les noms et valeurs d'attributs d'un élément. Pour de plus amples informations, veuillez consulter Tailles et formats des éléments DynamoDB.

Si votre application doit stocker plus de données dans un élément que la limite de taille autorisée par DynamoDB, divisez l'élément en une collection d'articles, compressez les données de l'article ou stockez l'article sous forme d'objet dans Amazon Simple Storage Service (Amazon S3) tout en stockant l'identifiant d'objet Amazon S3 dans votre élément DynamoDB. Consultez Bonnes pratiques pour le stockage d'éléments et d'attributs volumineux dans DynamoDB. Le coût de mise à jour d'un article est basé sur sa taille réelle. Pour les charges de travail qui nécessitent des mises à jour fréquentes des éléments existants, la mise à jour de petits éléments d'un ou deux Ko coûtera moins cher que celle d'éléments plus volumineux. Voir Collections d'éléments : comment modéliser one-to-many les relations dans DynamoDB pour plus d'informations sur les collections d'articles.

Lorsque vous choisissez les attributs clés de partition et de tri, les autres paramètres de table, la taille et la structure des éléments, et lorsque vous souhaitez créer des index secondaires, n'oubliez pas de consulter la documentation de modélisation DynamoDB ainsi que le guide de. Optimisation des coûts sur les tables DynamoDB Assurez-vous de tester votre plan de migration afin que votre solution DynamoDB soit rentable et réponde aux fonctionnalités et limites de DynamoDB.

Comprendre le fonctionnement d'une migration vers DynamoDB

Avant de passer en revue les outils de migration mis à notre disposition, réfléchissez à la manière dont les écritures sont traitées par DynamoDB.

L'opération d'écriture par défaut, la plus courante, est une PutItemAPIopération unique. Vous pouvez effectuer une PutItem opération en boucle pour traiter des ensembles de données. DynamoDB prend en charge un nombre pratiquement illimité de connexions simultanées. Par conséquent, en supposant que vous puissiez configurer et exécuter une routine de chargement massivement multithread telle MapReduce que ou Spark, la vitesse d'écriture n'est limitée que par la capacité de la table cible (qui est également généralement illimitée).

Lorsque vous chargez des données dans DynamoDB, il est important de comprendre la vitesse d'écriture de votre chargeur. Si les éléments (lignes) que vous chargez ont une taille inférieure ou égale à 1 Ko, cette vélocité correspond simplement au nombre d'éléments par seconde. La table cible peut ensuite être provisionnée avec suffisamment WCU (unités de capacité d'écriture) pour gérer ce taux. Si votre chargeur dépasse la capacité allouée à chaque seconde, les demandes supplémentaires peuvent être limitées ou carrément rejetées. Vous pouvez vérifier les limites dans les CloudWatch graphiques de l'onglet de surveillance de la console DynamoDB.

La deuxième opération qui peut être effectuée concerne un API appel connexe BatchWriteItem. BatchWriteItemvous permet de combiner jusqu'à 25 demandes d'écriture en un seul API appel. Elles sont reçues par le service et traitées comme des PutItem demandes distinctes adressées à la table. À l'heure actuelleBatchWriteItem, lors de votre choix, vous ne bénéficierez pas de l'avantage des tentatives automatiques incluses dans le AWS SDKlorsque vous passez des appels singleton avecPutItem. Ainsi, s'il y a des erreurs (telles que des exceptions de limitation), vous devrez rechercher la liste des écritures ayant échoué dans l'appel de réponse à. BatchWriteItem Pour plus d'informations sur la gestion des avertissements de limitation au cas où ils seraient détectés dans les graphiques de CloudWatch régulation, voir. Problèmes de régulation pour DynamoDB

Le troisième type d'importation de données est possible grâce à la fonctionnalité d'importation DynamoDB depuis S3. Cette fonctionnalité vous permet de créer un ensemble de données volumineux dans Amazon S3 et de demander à DynamoDB d'importer automatiquement les données dans une nouvelle table. L'importation n'est pas instantanée et prendra un temps proportionnel à la taille du jeu de données. Cependant, c'est pratique car il ne nécessite aucune ETL plateforme ni aucun code DynamoDB personnalisé. DynamoDB charge les données dans une nouvelle table créée par l'importation. Actuellement, il ne vous permet pas de charger des données dans une table existante. DynamoDB importe les données telles quelles, sans aucune transformation. De mêmePutItem, il nécessite un processus en amont et écrit les données dans le format que vous avez choisi dans un compartiment Amazon S3.

Outils pour faciliter la migration vers DynamoDB

Il existe plusieurs ETL outils et outils courants que vous pouvez utiliser pour migrer des données vers DynamoDB.

Amazon fournit une multitude d'outils de données qui peuvent être utilisés pour la migration, notamment AWS Service de migration de base de données (DMS), AWS GlueEMR, Amazon et Amazon Managed Streaming pour Apache Kafka. Tous ces outils peuvent être utilisés pour effectuer une migration pendant un temps d'arrêt, et ils peuvent tirer parti des fonctionnalités de capture des données de modification (CDC) de la base de données relationnelle pour prendre en charge les migrations en ligne. Lorsque vous choisissez un outil, il est utile de prendre en compte les compétences et l'expérience de votre organisation avec chaque outil, ainsi que les fonctionnalités, les performances et le coût de chacun d'entre eux.

De nombreux clients choisissent d'écrire leurs propres scripts et tâches de migration afin de créer des transformations de données personnalisées pour le processus de migration. Si vous envisagez d'exploiter une table DynamoDB à volume élevé avec un trafic d'écriture important ou des tâches régulières de chargement en masse de grande taille, vous souhaiterez peut-être écrire vous-même le code de migration afin de vous familiariser avec le comportement de DynamoDB en cas de trafic d'écriture intense. Des scénarios tels que la gestion des accélérateurs et le provisionnement efficace des tables peuvent être expérimentés au début du projet lors de la réalisation d'une migration pratique.

Choix de la stratégie appropriée pour migrer vers DynamoDB

Une application de base de données relationnelle de grande taille peut s'étendre sur une centaine de tables ou plus et prendre en charge plusieurs fonctions d'application différentes. Lorsque vous vous apprêtez à effectuer une migration de grande envergure, pensez à diviser votre application en composants plus petits ou en microservices, et à migrer un petit ensemble de tables à la fois. Vous pouvez ensuite migrer des composants supplémentaires vers DynamoDB par vagues.

Lors du choix d'une stratégie de migration, différents facteurs peuvent vous orienter vers une solution ou une autre. Nous pouvons présenter ces options dans un arbre de décision afin de simplifier les options qui s'offrent à nous en fonction de nos besoins et des ressources disponibles. Les concepts sont brièvement mentionnés ici (mais seront abordés plus en détail plus loin dans le guide) :

  • Migration hors ligne : si votre application peut tolérer certains temps d'arrêt pendant la migration, cela simplifiera le processus de migration.

  • Migration hybride : cette approche permet une disponibilité partielle pendant une migration, par exemple en autorisant les lectures mais pas les écritures, ou en autorisant les lectures et les insertions mais pas les mises à jour et les suppressions.

  • Migration en ligne : les applications qui ne nécessitent aucun temps d'arrêt pendant la migration sont moins faciles à migrer et peuvent nécessiter une planification importante et un développement personnalisé. L'une des décisions clés consiste à estimer et à évaluer les coûts liés à la mise en place d'un processus de migration personnalisé par rapport au coût pour l'entreprise d'une période d'indisponibilité pendant le passage à la norme.

If And Alors
Vous pouvez désactiver l'application pendant un certain temps pendant une période de maintenance pour effectuer la migration des données. Il s'agit d'une migration hors ligne.

Utiliser AWS DMS et effectuez une migration hors ligne à l'aide d'une tâche de chargement complet. Préformez les données source avec un SQL VIEW si vous le souhaitez.

Vous pouvez exécuter l'application en mode lecture seule pendant la migration. Il s'agit d'une migration hybride. Désactivez les écritures dans l'application ou la base de données source. Utiliser AWS DMS et effectuez une migration hors ligne à l'aide d'une tâche de chargement complet.
Vous pouvez exécuter l'application avec des lectures et des insertions de nouveaux enregistrements, mais pas de mises à jour ni de suppressions pendant la migration. Il s'agit d'une migration hybride. Vous avez des compétences en développement d'applications et pouvez mettre à jour l'application relationnelle existante pour effectuer des écritures doubles, y compris dans DynamoDB, pour tous les nouveaux enregistrements Utiliser AWS DMS et effectuez une migration hors ligne à l'aide d'une tâche de chargement complet. Déployez simultanément une version de l'application existante qui autorise les lectures et effectue des écritures doubles.
Vous avez besoin d'une migration avec un minimum de temps d'arrêt. Il s'agit d'une migration en ligne.
  • Vous migrez les tables sources 1 pour 1 vers DynamoDB sans modifications majeures du schéma.

Utiliser AWS DMS pour effectuer une migration de données en ligne. Exécutez une tâche de chargement groupé suivie d'une tâche de CDC synchronisation.
Vous avez besoin d'une migration avec un minimum de temps d'arrêt. Il s'agit d'une migration en ligne.
  • Vous combinez des tables sources en un nombre réduit de tables DynamoDB selon le schéma empilé ou la philosophie de la table unique.

    • Vous avez des compétences en développement de bases de données principales et des capacités inutilisées sur l'SQLhôte.

Créez la table No SQL -ready dans la SQL base de données. Remplissez-le et synchronisez-le à l'aide de déclencheurs JOINs UNIONsVIEWs, de procédures stockées.
Vous avez besoin d'une migration avec un minimum de temps d'arrêt. Il s'agit d'une migration en ligne.
  • Vous combinez des tables sources en un nombre réduit de tables DynamoDB selon la philosophie de la table unique. Par exemple :

    • Vous ne disposez pas de compétences en développement de bases de données principales ni de capacité inutilisée sur l'SQLhôte.

Envisagez les approches de migration hybrides ou hors ligne.
Vous avez besoin d'une migration avec un minimum de temps d'arrêt. Il s'agit d'une migration en ligne. Vous pouvez ignorer la migration des données de transaction historiques ou les archiver dans Amazon S3 au lieu de les migrer. Il vous suffit de migrer quelques petites tables statiques. Écrivez un script ou utilisez n'importe quel ETL outil pour migrer les tables. Préformez les données source avec un SQL VIEW si vous le souhaitez.

Réalisation d'une migration hors ligne vers DynamoDB

Les migrations hors ligne conviennent lorsque vous pouvez autoriser une période d'indisponibilité pour effectuer la migration. Les bases de données relationnelles prennent généralement au moins un certain temps d'arrêt par mois pour des raisons de maintenance et de correction, ou peuvent être plus longues pour les mises à niveau matérielles ou les mises à niveau de versions majeures.

Amazon S3 peut être utilisé comme zone de transit lors d'une migration. Les données stockées au format CSV (valeurs séparées par des virgules) ou JSON DynamoDB peuvent être automatiquement importées dans une nouvelle table DynamoDB à l'aide de la fonctionnalité d'importation DynamoDB depuis S3.

Vous souhaiterez peut-être combiner des tables pour tirer parti de modèles uniques SQL d'absence d'accès (par exemple, transformer quatre anciennes tables en une seule table DynamoDB). Une demande de document contenant une valeur clé unique ou une requête pour une collection d'éléments pré-groupés est généralement renvoyée avec une latence supérieure à celle d'une SQL base de données qui effectue une jointure multitable. Cela complique toutefois la tâche de migration. Une SQL vue peut effectuer le travail au sein de la base de données source pour préparer un ensemble de données unique représentant les quatre tables d'un seul ensemble.

Scénario qui combine plusieurs anciennes SQL tables en une seule table DynamoDB afin de tirer parti SQL des modèles sans accès.

Cette vue permet de dénormaliser JOIN les tables ou de maintenir les entités normalisées et d'empiler les tables à l'aide d'un. SQL UNION Les décisions clés relatives à la refonte des données relationnelles sont abordées dans cette vidéo. Pour les migrations hors ligne, l'utilisation d'une vue pour combiner des tables est un excellent moyen de façonner les données d'un schéma de table unique DynamoDB.

Planifier

Effectuez une migration hors ligne à l'aide d'Amazon S3

Outils

  • Une ETL tâche permettant d'extraire et de transformer SQL des données et de les stocker dans un compartiment S3, telle que :

    • AWS Database Migration Service, un service capable de charger des données historiques en masse et de traiter les enregistrements Change Data Capture (CDC) pour synchroniser les tables source et cible.

    • AWS Glue

    • Amazon EMR

    • Votre propre code personnalisé

  • La fonctionnalité d'importation DynamoDB depuis S3

Étapes de migration hors ligne :
  1. Créez une ETL tâche capable d'interroger la SQL base de données, de transformer les données de table au format DynamoDB CSV ou au format JSON DynamoDB, puis de les enregistrer dans un compartiment S3.

    Un ETL flux de travail permettant d'extraire des données d'une SQL base de données et de les enregistrer dans un compartiment Amazon S3.
  2. La fonctionnalité DynamoDB Import from S3 est invoquée pour créer une nouvelle table et charger automatiquement les données depuis votre compartiment S3.

La migration entièrement hors ligne est simple et directe, mais elle risque de ne pas être populaire auprès des propriétaires et des utilisateurs d'applications. Les utilisateurs bénéficieraient si l'application pouvait fournir des niveaux de service réduits pendant la migration, au lieu de ne pas fournir de service du tout.

Vous pouvez ajouter des fonctionnalités pour désactiver les écritures pendant la migration hors ligne, tout en permettant aux lectures de se poursuivre normalement. Les utilisateurs de l'application peuvent toujours parcourir et interroger en toute sécurité les données existantes pendant la migration des données relationnelles. Si c'est ce que vous recherchez, poursuivez votre lecture pour en savoir plus sur les migrations hybrides.

Réalisation d'une migration hybride vers DynamoDB

Bien que toutes les applications de base de données exécutent des opérations de lecture et d'écriture, les types d'opérations d'écriture effectués doivent être pris en compte lors de la planification d'une migration hybride ou en ligne. Les écritures de base de données peuvent être classées en trois catégories : les insertions, les mises à jour et les suppressions. Certaines applications peuvent ne pas nécessiter de traitement immédiat des suppressions. Ces applications peuvent, par exemple, reporter les suppressions à un processus de nettoyage en masse à la fin du mois. Ces types d'applications peuvent être plus simples à migrer tout en garantissant une disponibilité partielle.

Planifier

Effectuez une migration hybride en ligne/hors ligne avec deux écritures d'application

Outils

  • Une ETL tâche permettant d'extraire et de transformer SQL des données et de les stocker dans un compartiment S3, telle que :

    • AWS DMS

    • AWS Glue

    • Amazon EMR

    • Votre propre code personnalisé

Étapes de migration hybride :
  1. Créez la table DynamoDB cible. Ce tableau recevra à la fois des données historiques en masse et de nouvelles données en temps réel

  2. Créez une version de l'ancienne application dont les suppressions et les mises à jour sont désactivées tout en effectuant toutes les insertions sous forme de double écriture dans la SQL base de données et dans DynamoDB

  3. Commencez le ETL travail ou AWS DMS tâche visant à compléter les données existantes et à déployer la nouvelle version de l'application en même temps

  4. Une fois le travail de remblayage terminé, DynamoDB disposera de tous les enregistrements existants et nouveaux et sera prêt pour le transfert des applications

Processus de migration hybride pour déplacer des données vers DynamoDB, à l'aide de méthodes de migration en ligne et hors ligne.
Note

La tâche de remblayage écrit directement depuis SQL DynamoDB. Nous ne pouvons pas utiliser la fonctionnalité d'importation S3 comme dans l'exemple de migration hors ligne, car cette fonctionnalité crée une nouvelle table qui ne sera active qu'après le chargement des données par DynamoDB.

Réalisation d'une migration en ligne vers DynamoDB en faisant migrer chaque table 1:1

De nombreuses bases de données relationnelles disposent d'une fonctionnalité appelée Change Data Capture (CDC), qui permet aux utilisateurs de demander une liste des modifications apportées à une table avant ou après un moment donné. CDCutilise des journaux internes pour activer cette fonctionnalité et il n'est pas nécessaire que la table contienne une colonne d'horodatage pour fonctionner.

Lorsque vous migrez un schéma de SQL tables vers une base de SQL données sans base de données, vous souhaiterez peut-être combiner et remodeler vos données en un nombre réduit de tables. Cela vous permettra de collecter des données en un seul endroit et d'éviter d'avoir à joindre manuellement les données associées lors d'opérations de lecture en plusieurs étapes. Cependant, la mise en forme des données d'une seule table n'est pas toujours requise et vous devez parfois migrer des tables une pour une vers DynamoDB. Ces migrations de tables individuelles sont moins compliquées car vous pouvez tirer parti de la CDC fonctionnalité de base de données source à l'aide d'ETLoutils courants qui prennent en charge ce type de migration. Les données de chaque ligne peuvent toujours être transformées dans de nouveaux formats, mais la portée de chaque table reste la même.

Envisagez de migrer SQL les tables 1 à 1 vers DynamoDB, en précisant que DynamoDB ne prend pas en charge les jointures côté serveur. Vous devez ajouter une logique à votre application pour combiner les données de plusieurs tables.

Planifier

Effectuez une migration en ligne de chaque table dans DynamoDB à l'aide de AWS DMS

Outils

Étapes de migration en ligne :
  1. Identifiez les tables de votre schéma source qui seront migrées

  2. Créez le même nombre de tables dans DynamoDB avec la même structure de clés que dans la source

  3. Créez un serveur de réplication dans AWS DMS et configurez les points de terminaison source et cible

  4. Définissez toutes les transformations requises par ligne (telles que les colonnes concaténées ou la conversion des dates au ISO format de chaîne -8601)

  5. Créez une tâche de migration pour chaque table pour le chargement complet et la capture des données de modification

  6. Surveillez ces tâches jusqu'au début de la phase de réplication en cours

  7. À ce stade, vous pouvez effectuer des audits de validation, puis transférer les utilisateurs vers l'application qui lit et écrit dans DynamoDB.

Processus de migration en ligne pour déplacer des données vers DynamoDB à partir de bases de données relationnelles à l'aide de AWS DMS.

Effectuez une migration en ligne vers DynamoDB à l'aide d'une table intermédiaire personnalisée

Comme dans le scénario de migration hors ligne ci-dessus, vous pouvez choisir de combiner des tables pour tirer parti de modèles uniques SQL d'absence d'accès (par exemple, transformer quatre anciennes tables en une seule table DynamoDB). A SQL VIEW pourrait effectuer le travail dans la base de données source pour préparer un ensemble de données unique représentant les quatre tables d'un seul ensemble.

Toutefois, pour les migrations en ligne avec des données en temps réel et changeantes, vous ne pouvez pas tirer parti CDC des fonctionnalités car elles ne sont pas prises en charge pour VIEW nous. Si vos tables incluent une colonne d'horodatage mise à jour pour la dernière fois et que celle-ci est incorporée dans la colonneVIEW, vous pouvez créer une ETL tâche personnalisée qui les utilise pour effectuer un chargement en bloc avec synchronisation.

Une nouvelle approche pour relever ce défi consiste à utiliser des SQL fonctionnalités standard telles que les vues, les procédures stockées et les déclencheurs pour créer une nouvelle SQL table au format DynamoDB No final souhaité. SQL

Si votre serveur de base de données dispose de la capacité inutilisée, il est possible de créer cette table intermédiaire unique avant le début de la migration. Pour ce faire, vous devez écrire une procédure stockée qui lira les données des tables existantes, transformera les données selon les besoins et écrira dans la nouvelle table intermédiaire. Vous pouvez ajouter un ensemble de déclencheurs pour répliquer les modifications apportées aux tables dans la table intermédiaire en temps réel. Si les déclencheurs ne sont pas autorisés conformément à la politique de l'entreprise, les modifications apportées aux procédures stockées peuvent produire le même résultat. Vous devez ajouter quelques lignes de code à toute procédure qui écrit des données, afin d'écrire en outre les mêmes modifications dans la table intermédiaire.

La mise en place de cette table intermédiaire entièrement synchronisée avec les anciennes tables d'applications constitue un excellent point de départ pour une migration en direct. Outils utilisant une base de données CDC pour effectuer des migrations dynamiques, tels que AWS DMS, peut désormais être utilisé contre ce tableau. L'avantage de cette approche est qu'elle utilise des SQL compétences et des fonctionnalités bien connues disponibles dans le moteur de base de données relationnelle.

Planifier

Effectuez une migration en ligne à l'aide d'une SQL table intermédiaire en utilisant AWS DMS

Outils

  • Procédures SQL stockées ou déclencheurs personnalisés

  • AWS DMS

Étapes de migration en ligne :
  1. Dans le moteur de base de données relationnelle source, assurez-vous de disposer d'un espace disque et d'une capacité de traitement supplémentaires.

  2. Créez une nouvelle table intermédiaire dans la SQL base de données, avec les horodatages ou CDC les fonctionnalités activées

  3. Écrire et exécuter une procédure stockée pour copier les données d'une table relationnelle existante dans la table intermédiaire

  4. Déployez des déclencheurs ou modifiez les procédures existantes pour effectuer une double écriture dans la nouvelle table intermédiaire tout en effectuant des écritures normales dans les tables existantes

  5. Exécuter AWS DMS pour migrer et synchroniser cette table source vers une table DynamoDB cible

Migration en ligne d'une table SQL intermédiaire vers DynamoDB à l'aide de AWS DMS.

Ce guide présentait plusieurs considérations et approches relatives à la migration des données de base de données relationnelle vers DynamoDB, en mettant l'accent sur la réduction des temps d'arrêt et l'utilisation d'outils et de techniques de base de données courants. Pour plus d’informations, consultez les ressources suivantes :