DTS migre les clés étrangères lors de la migration du schéma.
Pendant la migration complète et incrémentielle des données, DTS désactive temporairement les vérifications de contraintes et les cascades de clés étrangères au niveau de la session. Les mises à jour ou suppressions en cascade sur la base de données source pendant l'exécution de la tâche peuvent entraîner une incohérence des données.
Type | Description |
Limites de la base de données source |
|
Autres limites |
|
Cas particuliers |
|
Si un objet de synchronisation de DTS est un alias d'index dans l'instance Elasticsearch de destination, une incohérence des données peut se produire lorsque l'index réel vers lequel pointe l'alias change. Par exemple, lors de l'écriture des données, l'alias d'index pointe vers l'Index A. Si l'alias pointe ultérieurement vers l'Index B lors d'une opération de suppression synchrone suivante, les données de l'Index A ne peuvent pas être supprimées. Par conséquent, les données supprimées de la source restent interrogeables dans la destination.
Vous pouvez utiliser Data Transmission Service (DTS) pour migrer les données d'une instance ApsaraDB RDS for MySQL vers un cluster Elasticsearch Alibaba Cloud.
Prérequis
Une instance Elasticsearch de destination est créée. Pour plus d'informations, consultez Créer une instance Alibaba Cloud Elasticsearch.
Pour une migration complète des données, l'instance de destination doit disposer de plus d'espace de stockage que celui utilisé par la base de données source.
Facturation
|
Type de migration |
Frais de configuration de l'instance |
Frais de trafic Internet |
|
Migration du schéma et migration complète des données |
Gratuit. |
Lorsque le paramètre Access Method de la base de données de destination est défini sur Public IP Address, des frais de trafic Internet vous sont facturés. Pour plus d'informations, consultez Présentation de la facturation. |
|
Migration incrémentielle des données |
Facturé. Pour plus d'informations, consultez Présentation de la facturation. |
Types de migration
-
Migration du schéma
DTS migre les définitions de schéma des objets de migration de la base de données source vers la base de données de destination.
-
Migration complète
DTS migre toutes les données historiques des objets de migration spécifiés de la base de données source vers la base de données de destination.
-
Migration incrémentielle
Une fois la migration complète terminée, DTS migre les mises à jour incrémentielles des données de la base de données source vers la base de données de destination. La migration incrémentielle vous permet de migrer les données en toute transparence sans interrompre vos applications auto-gérées.
Instructions
Procédure
-
Accédez à la page de liste des tâches de migration pour la région de destination en utilisant l'une des méthodes suivantes.
Depuis la console DTS
Connectez-vous à la console Data Transmission Service (DTS).
Dans le volet de navigation de gauche, cliquez sur Data Migration.
Dans le coin supérieur gauche de la page, sélectionnez la région où se trouve l'instance de migration.
Depuis la console DMS
RemarqueLes opérations réelles peuvent varier selon le mode et la disposition de la console DMS. Pour plus d'informations, consultez les rubriques Console en mode simple et Personnaliser la disposition et le style de la console DMS.
Connectez-vous à la console Data Management (DMS).
Dans la barre de menu supérieure, choisissez .
À droite de Data Migration Tasks, sélectionnez la région où se trouve l'instance de migration.
Cliquez sur Create Task pour accéder à la page de configuration de la tâche.
Configurez les bases de données source et de destination.
Catégorie
Paramètre
Description
N/A
Task Name
DTS génère automatiquement un nom de tâche. Nous vous recommandons de spécifier un nom descriptif pour faciliter l'identification. Le nom n'a pas besoin d'être unique.
Source Database
Select Existing Connection
Pour utiliser une instance de base de données qui a été ajoutée au système (créée ou enregistrée), sélectionnez l'instance de base de données souhaitée dans la liste déroulante. Les informations de base de données ci-dessous seront configurées automatiquement.
RemarqueDans la console DMS, ce paramètre est nommé Select a DMS database instance..
Si vous n'avez pas enregistré l'instance de base de données auprès du système ou si vous n'avez pas besoin d'utiliser une instance enregistrée, configurez manuellement les informations de base de données ci-dessous.
Database Type
Sélectionnez MySQL.
Connection Type
Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez la région où se trouve l'instance ApsaraDB RDS for MySQL source.
Replicate Data Across Alibaba Cloud Accounts
Pour migrer des données au sein du même compte Alibaba Cloud, sélectionnez No.
RDS Instance ID
Sélectionnez l'ID de l'instance ApsaraDB RDS for MySQL source.
Database Account
Saisissez le compte de base de données pour l'instance ApsaraDB RDS for MySQL source. Pour plus d'informations sur les autorisations requises, consultez la section Autorisations requises pour les comptes de base de données.
Database Password
Saisissez le mot de passe correspondant au compte de base de données.
Encryption
Sélectionnez Non-encrypted ou SSL-encrypted selon vos besoins. Si vous sélectionnez SSL-encrypted, vous devez activer le chiffrement SSL pour l'instance RDS for MySQL au préalable. Pour plus d'informations, consultez la rubrique Utiliser un certificat cloud pour activer rapidement le chiffrement SSL.
Destination Database
Select Existing Connection
Pour utiliser une instance de base de données qui a été ajoutée au système (créée ou enregistrée), sélectionnez l'instance de base de données souhaitée dans la liste déroulante. Les informations de base de données ci-dessous seront configurées automatiquement.
RemarqueDans la console DMS, ce paramètre est nommé Select a DMS database instance..
Si vous n'avez pas enregistré l'instance de base de données auprès du système ou si vous n'avez pas besoin d'utiliser une instance enregistrée, configurez manuellement les informations de base de données ci-dessous.
Database Type
Sélectionnez Elasticsearch.
Connection Type
Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez la région où se trouve l'instance Elasticsearch de destination.
Type
Sélectionnez Cluster Edition ou Serverless en fonction de vos besoins.
Instance ID
Sélectionnez l'ID de l'instance Elasticsearch de destination.
Database Account
Saisissez le compte utilisé pour se connecter à l'instance Elasticsearch. Il s'agit du Username que vous avez spécifié lors de la création de l'instance. Le compte par défaut est elastic.
Database Password
Saisissez le mot de passe correspondant au compte de base de données.
Encryption
Sélectionnez HTTP ou HTTPS selon vos besoins.
Une fois la configuration terminée, cliquez sur Test Connectivity and Proceed en bas de la page.
RemarqueAssurez-vous que la plage d'adresses IP du service DTS est ajoutée automatiquement ou manuellement aux paramètres de sécurité des bases de données source et de destination afin d'autoriser l'accès depuis les serveurs DTS. Pour plus d'informations, consultez la rubrique Ajouter les adresses IP des serveurs DTS à une liste blanche.
Si la base de données source ou de destination est une base de données auto-gérée (l'option Access Method n'est pas définie sur Alibaba Cloud Instance), vous devez également cliquer sur Test Connectivity dans la boîte de dialogue CIDR Blocks of DTS Servers qui s'affiche.
Configurez les objets de la tâche.
-
Sur la page Configure Objects , configurez les objets que vous souhaitez migrer.
Parameter
Description
Migration Types
Si vous souhaitez uniquement effectuer une migration complète, sélectionnez à la fois Schema Migration et Full Data Migration.
Pour réaliser une migration sans interruption de service, sélectionnez Schema Migration, Full Data Migration et Incremental Data Migration.
RemarqueSi vous ne sélectionnez pas Schema Migration, assurez-vous qu'une base de données et des tables destinées à recevoir les données existent dans la base de données de destination. Vous pouvez également utiliser la fonctionnalité de mappage des noms d'objets dans la zone Selected Objects selon vos besoins.
Si vous ne sélectionnez pas Incremental Data Migration, n'écrivez aucune nouvelle donnée dans l'instance source pendant la migration afin de garantir la cohérence des données.
Processing Mode for Existing Tables in Destination
Precheck and Report Errors : vérifie si des tables portant le même nom existent dans la base de données de destination. Si aucune table homonyme n'existe, la pré-vérification est validée. En revanche, si des tables portant le même nom existent, une erreur est signalée lors de la pré-vérification et la tâche de migration des données ne démarre pas.
RemarqueSi une table de la base de données de destination porte le même nom mais ne peut pas être facilement supprimée ou renommée, vous pouvez modifier le nom de cette table dans la base de données de destination. Pour plus d'informations, consultez la rubrique Mappage des noms d'objets.
Ignore Errors and Proceed : ignore la vérification des tables portant le même nom.
AvertissementLa sélection de l'option Ignore Errors and Proceed peut entraîner une incohérence des données et présenter des risques pour votre activité. Par exemple :
Si les schémas de table sont identiques et qu'un enregistrement de la base de données de destination possède la même valeur de clé primaire qu'un enregistrement de la base de données source :
Lors de la migration complète, DTS conserve l'enregistrement présent dans la base de données de destination. L'enregistrement provenant de la base de données source n'est pas migré.
Lors de la migration incrémentielle, DTS ne conserve pas l'enregistrement présent dans la base de données de destination. L'enregistrement provenant de la base de données source écrase celui de la base de données de destination.
Si les schémas de table sont différents, seule une partie des colonnes peut être migrée ou la migration peut échouer. Procédez avec prudence.
Index Name
Si vous sélectionnez Table Name, l'index créé dans l'instance Elasticsearch de destination porte le même nom que la table.
Si vous sélectionnez Database Name_Table Name, le nom de l'index dans l'instance Elasticsearch de destination correspond à la concaténation du nom de la base de données, d'un trait de soulignement (_) et du nom de la table.
RemarqueLa configuration du mappage des noms d'index s'applique à toutes les tables.
Case Sensitivity Policy for Destination Object Names
Vous pouvez configurer la politique de sensibilité à la casse pour les noms des objets migrés (bases de données, tables et colonnes) dans l'instance de destination. Par défaut, l'option DTS default policy est sélectionnée. Vous pouvez également choisir d'aligner la sensibilité à la casse sur la politique par défaut de la base de données source ou de destination. Pour plus d'informations, consultez la rubrique Sensibilité à la casse des noms d'objets dans la base de données de destination.
Source Objects
Dans le volet Source Objects, cliquez sur l'objet que vous souhaitez migrer, puis cliquez sur l'icône
pour déplacer l'objet vers le volet Selected Objects.Selected Objects
Pour modifier les noms de champs après la migration, effectuez un clic droit sur le nom de la table correspondante dans le volet Selected Objects, définissez le nom de l'index et le nom du type pour la table dans l'instance Elasticsearch de destination, puis cliquez sur OK. Pour plus d'informations, consultez la section Mapper une table unique et ses colonnes.
RemarqueLe seul caractère spécial pris en charge pour les noms d'index et les noms de type est le trait de soulignement (_).
Vous pouvez définir des conditions de filtrage SQL. Seules les données répondant à ces conditions seront migrées vers l'instance de destination. Pour plus d'informations, consultez la rubrique Filtrer les données de tâche à l'aide de conditions SQL.
-
Cliquez sur Next: Advanced Settings pour configurer les paramètres avancés.
Parameter
Description
Dedicated Cluster for Task Scheduling
Par défaut, DTS planifie les tâches sur un cluster partagé. Aucune sélection n'est requise. Pour bénéficier d'une plus grande stabilité, vous pouvez acheter un dedicated cluster afin d'exécuter les tâches de migration DTS.
Retry Time for Failed Connections
Une fois la tâche de migration démarrée, si la connexion à la base de données source ou de destination échoue, DTS signale une erreur et tente immédiatement de rétablir la connexion. La durée de nouvelle tentative par défaut est de 720 minutes. Vous pouvez personnaliser cette durée en définissant une valeur comprise entre 10 et 1 440 minutes. Nous vous recommandons de définir une durée supérieure à 30 minutes. Si DTS parvient à se reconnecter aux bases de données source et de destination dans le délai imparti, la tâche de migration reprend automatiquement. Dans le cas contraire, la tâche échoue.
RemarquePour plusieurs instances DTS partageant la même source ou la même destination, le temps de nouvelle tentative réseau est déterminé par le paramétrage de la dernière tâche créée.
Étant donné que la tâche vous est facturée pendant la période de nouvelle tentative de connexion, nous vous conseillons d'adapter ce délai à vos besoins métier ou de libérer l'instance DTS dès que possible après la libération des instances de base de données source et de destination.
Retry Time for Other Issues
Après le démarrage de la tâche de migration, si un problème autre qu'un défaut de connectivité survient dans la base de données source ou de destination (par exemple, une exception lors de l'exécution d'instructions DDL ou DML), DTS signale une erreur et tente immédiatement de relancer l'opération. La durée de nouvelle tentative par défaut est de 10 minutes. Vous pouvez personnaliser ce délai en définissant une valeur comprise entre 1 et 1 440 minutes. Nous vous recommandons de choisir une durée supérieure à 10 minutes. Si les opérations concernées aboutissent dans le délai de nouvelle tentative spécifié, la tâche de migration reprend automatiquement. Sinon, la tâche échoue.
ImportantLa valeur du paramètre Retry Time for Other Issues doit être inférieure à celle du paramètre Retry Time for Failed Connections.
Shard Configuration
Définissez le nombre de shards primaires et de réplicas pour l'index en fonction de la configuration maximale des shards des index dans l'instance Elasticsearch de destination.
String Index
Spécifie la méthode d'indexation des chaînes de caractères dans l'instance Elasticsearch de destination.
analyzed : La chaîne est d'abord analysée, puis indexée. Vous devez également sélectionner un analyseur spécifique. Pour obtenir des informations sur les types d'analyseurs et leurs fonctions, consultez la documentation Analyzers.
not_analyzed : La chaîne n'est pas analysée et est indexée avec sa valeur d'origine.
no : La chaîne n'est pas indexée.
Time Zone
Spécifie le fuseau horaire appliqué lorsque DTS migre des types de données temporels (tels que DATETIME et TIMESTAMP) vers l'instance Elasticsearch de destination.
RemarqueSi les données temporelles de l'instance de destination ne nécessitent pas de fuseau horaire, vous devez préalablement configurer le type de document (type) correspondant pour ces types de données dans l'instance de destination.
DOCID
Par défaut, le DOCID correspond à la clé primaire de la table. Si la table ne possède pas de clé primaire, le DOCID est un identifiant généré automatiquement par Elasticsearch.
Environment Tag
Sélectionnez un tag d'environnement pour identifier l'instance. Ce paramètre est facultatif dans cet exemple.
Configure ETL
Indiquez si vous souhaitez activer la fonctionnalité Extract, Transform, Load (ETL). Pour plus d'informations, consultez la rubrique What is ETL? Les valeurs valides sont les suivantes :
-
Yes : Active la fonctionnalité ETL. Saisissez les instructions de traitement des données dans l'éditeur de code. Pour plus d'informations, consultez la rubrique Configure ETL in a data migration or data synchronization task.
-
No : Désactive la fonctionnalité ETL.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
Indiquez si les informations SQL de heartbeat doivent être écrites dans la base de données source lors de l'exécution de l'instance DTS.
-
Yes : Les informations SQL de heartbeat ne sont pas écrites dans la base de données source. Cela peut entraîner un retard signalé par l'instance DTS.
-
No : Écrit les informations SQL de heartbeat dans la base de données source. Cela peut interférer avec des fonctionnalités telles que la sauvegarde physique et le clonage de la base de données source.
Monitoring and Alerting
Sélectionnez l'option permettant de configurer des alertes et de recevoir des notifications d'alerte en fonction de vos besoins métier.
No : Ne configure pas d'alerte.
Yes : Configurez les alertes en définissant un seuil d'alerte et un destinataire des notifications d'alerte. En cas d'échec de la migration ou si la latence dépasse le seuil, le système envoie une notification d'alerte.
-
Une fois les configurations précédentes terminées, cliquez sur Next: Configure Database and Table Fields en bas de la page pour définir la
_routing policyet la valeur de_idpour les tables à migrer dans la destination Elasticsearch.Type
Description
Set _routing
Configure _routing pour stocker les documents sur un shard spécifique dans l'instance Elasticsearch de destination. Pour plus d'informations, consultez _routing.
Sélectionnez Yes pour utiliser une colonne personnalisée pour le routage.
Sélectionnez No pour utiliser la valeur _id pour le routage.
RemarqueSi l'instance Elasticsearch de destination est en version 7.x, vous devez sélectionner No.
_routing Column
Sélectionnez la colonne à utiliser pour le routage.
RemarqueCe paramètre est requis uniquement si vous sélectionnez Yes pour Set _routing.
Value of _id
Sélectionnez la colonne à utiliser comme ID de document.
Enregistrez la tâche et exécutez une pré-vérification.
Pour afficher les paramètres de configuration de cette instance lors de l'appel de l'opération API, placez le pointeur sur le bouton Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters dans la bulle qui s'affiche.
Si vous n'avez pas besoin d'afficher les paramètres API ou si vous avez terminé leur consultation, cliquez sur Next: Save Task Settings and Precheck en bas de la page.
RemarqueAvant le démarrage de la tâche de migration, DTS effectue une pré-vérification. La tâche ne démarre qu'après réussite de cette pré-vérification.
En cas d'échec de la pré-vérification, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème selon les instructions, puis relancez la pré-vérification.
-
Si un avertissement est émis lors de la pré-vérification :
Pour les éléments de vérification qui ne peuvent pas être ignorés, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème selon les instructions, puis relancez la pré-vérification.
Pour les éléments de vérification pouvant être ignorés, vous pouvez cliquer sur Confirm Alert Details, Ignore, OK et Precheck Again afin d'ignorer l'élément d'avertissement et de relancer la pré-vérification. Si vous choisissez d'ignorer un avertissement, cela peut entraîner des problèmes tels que des incohérences de données et présenter des risques pour votre activité.
Achetez l'instance.
Lorsque le Success Rate atteint 100 %, cliquez sur Next: Purchase Instance.
-
Sur la page Purchase, sélectionnez les spécifications de liaison pour l'instance de migration des données. Pour plus d'informations, consultez le tableau ci-dessous.
Catégorie
Paramètre
Description
New Instance Class
Resource Group Settings
Sélectionnez le groupe de ressources auquel appartient l'instance. La valeur par défaut est « default resource group ». Pour plus d'informations, consultez Qu'est-ce que la gestion des ressources ?
Instance Class
DTS propose des spécifications de migration offrant différents niveaux de performance. Les spécifications de liaison influent sur la vitesse de migration. Vous pouvez choisir une spécification adaptée à votre scénario métier. Pour plus d'informations, consultez Spécifications de liaison pour la migration des données.
Une fois la configuration terminée, lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms.
-
Cliquez sur Buy and Start. Dans la boîte de dialogue OK qui s'affiche, cliquez sur OK.
Vous pouvez consulter la progression de la tâche de migration sur la page de liste Data Migration Tasks.
RemarqueSi la tâche de migration n'inclut pas de migration incrémentielle, elle s'arrête automatiquement une fois la migration complète terminée. Une fois la tâche arrêtée, son Status passe à Completed.
Si la tâche de migration inclut une migration incrémentielle, elle ne s'arrête pas automatiquement. La tâche de migration incrémentielle continue de s'exécuter. Tant que cette tâche est en cours d'exécution, le Status de la tâche est défini sur Running.
Opérations SQL prises en charge pour la migration incrémentielle
Type
Instruction SQL
DML
INSERT, UPDATE et DELETE
RemarqueL'utilisation d'une instruction UPDATE pour supprimer une colonne n'est pas une opération prise en charge.
Autorisations du compte de base de données
Base de données
Migration du schéma
Migration complète des données
Migration incrémentielle des données
Actions
ApsaraDB RDS for MySQL instance
SELECTprivilegeSELECTprivilegeREPLICATION CLIENT,REPLICATION SLAVE,SHOW VIEWet privilègesSELECTElasticsearch cluster
Le compte de base de données (généralement
elastic) nécessite des autorisations de lecture et d'écriture.Mappage des types de données
-
Une base de données source et une instance Elasticsearch prennent en charge différents types de données qui ne peuvent pas toujours être mappés directement. Lors de l'initialisation de la structure, DTS mappe les types de données en fonction de ceux pris en charge par l'instance Elasticsearch cible. Pour plus d'informations, consultez la rubrique Mappage des types de données pour l'initialisation de la structure.
RemarquePendant le processus de migration du schéma DTS, DTS ne définit pas le paramètre
dynamicdans lemapping. Le comportement de ce paramètre dépend des paramètres de votre instance Elasticsearch. Si vos données source sont au format JSON, vous devez vous assurer que pour une clé spécifique, les valeurs correspondantes ont le même type de données dans toutes les lignes d'une table. Dans le cas contraire, DTS peut rencontrer des problèmes de synchronisation. Pour plus d'informations, consultez la page dynamic. -
Le mappage entre Elasticsearch et une base de données relationnelle varie selon la version d'Elasticsearch.
ImportantÀ partir d'Elasticsearch 7.0, un index ne prend plus en charge plusieurs types, et les types ont été complètement supprimés dans Elasticsearch 8.0. Par défaut, lorsque vous configurez une tâche de synchronisation ou de migration, DTS mappe une table d'une base de données relationnelle à un index dans Elasticsearch. Vous pouvez modifier ce mappage lors de la configuration des objets à synchroniser ou à migrer.
Elasticsearch 7.0 et versions ultérieures
Elasticsearch
Base de données relationnelle
index
table
document
ligne
field
column
mapping
schema
Versions antérieures à Elasticsearch 7.0
Elasticsearch
Base de données relationnelle
index
database
type
table
document
ligne
field
column
mapping
schema