Vous pouvez utiliser DTS pour migrer des données d'une instance PolarDB-X vers une instance Elasticsearch.
Prérequis
Une instance source PolarDB-X 2,0 a été créée.
Une instance de destination Elasticsearch a été créée. Pour plus d'informations, consultez la rubrique Créer une instance Alibaba Cloud Elasticsearch.
Pour connaître les versions prises en charge pour les instances source et de destination, consultez la rubrique Présentation des solutions de migration.
L'instance de destination Elasticsearch doit disposer d'un espace de stockage supérieur à celui de l'instance source PolarDB-X 2,0.
Limites
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 des incohérences de données.
|
Type |
Description |
|
Limites de la base de données source |
|
|
Autres limites |
|
|
Autres précautions |
DTS met régulièrement à jour la table |
Si un objet de synchronisation de DTS est un alias d'index dans l'instance Elasticsearch de destination, des incohérences de données peuvent se produire lorsque l'index réel pointé par 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 ensuite vers l'index B lors d'une opération de suppression synchrone ultérieure, 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 consultables dans la destination.
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 la rubrique Présentation de la facturation. |
|
Migration incrémentielle des données |
Payant. Pour plus d'informations, consultez la rubrique 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 autogérées.
Opérations SQL pour la migration incrémentielle
Type | Instruction SQL |
DML | INSERT, UPDATE et DELETE Remarque L'utilisation d'une instruction UPDATE pour supprimer une colonne n'est pas une opération prise en charge. |
Autorisations requises pour les comptes de base de données
|
Base de données |
Migration du schéma |
Migration complète |
Migration incrémentielle |
|
Instance source PolarDB-X 2,0 |
Autorisation |
Autorisation |
Autorisations Remarque Pour savoir comment accorder des autorisations, consultez la rubrique Problèmes d'autorisations de compte lors de la synchronisation des données. |
|
Instance de destination Elasticsearch |
Le compte de base de données doit disposer d'autorisations en lecture et en écriture. Il s'agit généralement du compte |
||
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 de type JSON, vous devez vous assurer que pour une clé spécifique, ses valeurs correspondantes ont le même type de données dans toutes les lignes d'une table. Sinon, DTS peut rencontrer des problèmes de synchronisation. Pour plus d'informations, consultez la documentation 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
champ
colonne
mapping
schéma
Versions antérieures à Elasticsearch 7.0
Elasticsearch
Base de données relationnelle
index
base de données
type
table
document
ligne
champ
colonne
mapping
schéma
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 l'angle 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 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 menus supérieure, choisissez Data + AI > Data Transmission (DTS) > Data Migration.
À 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.
AvertissementAprès avoir sélectionné les instances source et de destination, nous vous recommandons de lire attentivement les limites affichées en haut de la page. Dans le cas contraire, la tâche pourrait échouer ou entraîner une incohérence des données.
Section
Paramètre
Description
S/O
Data Migration
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.
Data + AI
Data Transmission (DTS)
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é Data Migration.
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 Create Task.
Task Name
Sélectionnez Source Database.
Instance Region
Sélectionnez la région où se trouve l'instance PolarDB-X 2,0 source.
Replicate Data Across Alibaba Cloud Accounts
Cet exemple illustre une migration au sein du même compte Alibaba Cloud. Sélectionnez No.
PolarDB-X 2.0
Sélectionnez l'ID de l'instance PolarDB-X 2,0 source.
Access Method
Saisissez le compte de base de données de l'instance PolarDB-X 2,0 source. Pour plus d'informations sur les autorisations requises, consultez la section Autorisations du compte de base de données.
Alibaba Cloud Instance
Saisissez le mot de passe du compte de base de données.
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.
Instance ID
Sélectionnez Database Account.
Database Password
Sélectionnez Alibaba Cloud Instance.
Select Existing Connection
Sélectionnez la région où se trouve l'instance Elasticsearch de destination.
Select a DMS database instance.
Sélectionnez Database Type ou Serverless selon vos besoins.
Elasticsearch
Sélectionnez l'ID de l'instance Elasticsearch de destination.
Access Method
Saisissez le compte de base de données de l'instance Elasticsearch de destination. Le compte par défaut est elastic. Pour plus d'informations sur les autorisations requises, consultez la section Autorisations du compte de base de données.
Database Password
Saisissez le mot de passe du compte de base de données.
Instance Region
Sélectionnez Type ou Cluster Edition selon vos besoins.
-
Une fois la configuration terminée, cliquez sur Test Connectivity and Proceed en bas de la page.
RemarqueAssurez-vous que le segment d'adresses IP du service DTS est ajouté 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 Ajouter les adresses IP des serveurs DTS à une liste d'autorisation.
Si la base de données source ou de destination est une base de données auto-gérée (la méthode d'accès Instance IDAlibaba 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 Database Account, configurez les objets que vous souhaitez migrer.
Paramètre
Description
Migration Types
Si vous devez uniquement effectuer une migration complète, sélectionnez à la fois Encryption et HTTP.
Pour réaliser une migration sans interruption de service, sélectionnez HTTPS, Test Connectivity and Proceed et Access Method.
RemarqueSi vous ne sélectionnez pas Alibaba Cloud Instance, 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 Test Connectivity selon vos besoins.
Si vous ne sélectionnez pas CIDR Blocks of DTS Servers, n'écrivez aucune nouvelle donnée dans l'instance source pendant la migration afin de garantir la cohérence des données.
Configure Objects
-
Table Name
Si vous sélectionnez Schema Migration, le nom de l'index créé dans l'instance Elasticsearch de destination est identique au nom de la table. Dans cet exemple, le nom de l'index est
order. -
Full Data Migration
Si vous sélectionnez Schema Migration, le nom de l'index créé dans l'instance Elasticsearch de destination suit le format
Nom de la base de données_Nom de la table. Dans cet exemple, le nom de l'index estdtstest_order.
Full Data Migration
Incremental Data Migration : 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 portent le même nom, 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.
Schema Migration : ignore la vérification des tables portant le même nom.
AvertissementLa sélection de l'option Selected Objects 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 cohérents 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 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 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 incohérents, seules certaines colonnes de données peuvent être migrées, ou la migration peut échouer. Procédez avec prudence.
Incremental Data Migration
Vous pouvez configurer la politique de sensibilité à la casse pour les noms des bases de données, des tables et des colonnes dans l'instance de destination. Par défaut, l'option Index Name est sélectionnée. Vous pouvez également choisir une politique cohérente avec celle 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 les bases de données de destination.
Source Objects
Sélectionnez un ou plusieurs objets dans la section Table Name. Cliquez sur l'icône
et ajoutez les objets à la section Database Name_Table Name. RemarqueLe niveau de granularité pour la sélection des objets de migration comprend le schéma, la table et la colonne. Si vous ne sélectionnez que des tables ou des colonnes comme objets de migration, les autres objets tels que les vues, les déclencheurs et les procédures stockées ne seront pas migrés vers la base de données de destination.
Database Name_Table Name
-
Pour modifier le nom d'un seul objet de migration dans l'instance cible, cliquez avec le bouton droit sur l'objet dans la zone Processing Mode of Conflicting Tables. Pour plus d'informations, consultez la rubrique Mapper les noms individuels de schéma, de table et de colonne.
-
Pour modifier les noms de plusieurs objets de migration dans l'instance cible, cliquez sur Precheck and Report Errors dans le coin supérieur droit de la zone Ignore Errors and Proceed. Pour plus d'informations, consultez la rubrique Mapper plusieurs noms de schéma, de table et de colonne.
Remarque-
Le trait de soulignement (_) est le seul caractère spécial pris en charge dans les noms d'index et de type.
-
Si vous utilisez la fonctionnalité de mappage des noms d'objets, la migration d'autres objets dépendant de l'objet renommé peut échouer.
-
Pour définir une condition WHERE afin de filtrer les données, cliquez avec le bouton droit sur la table que vous souhaitez migrer dans la section Ignore Errors and Proceed, puis définissez la condition de filtre dans la boîte de dialogue qui s'affiche. Pour plus d'informations, consultez la rubrique Filtrer les données de la tâche à l'aide de conditions SQL.
-
Pour sélectionner les opérations SQL à migrer au niveau de la base de données ou de la table, cliquez avec le bouton droit sur un objet dans la zone Capitalization of Object Names in Destination Instance et choisissez les opérations SQL souhaitées dans la boîte de dialogue qui s'affiche.
-
Cliquez sur DTS default policy pour configurer les paramètres avancés.
Paramètre
Description
Dedicated Cluster for Task Scheduling
Par défaut, DTS planifie les tâches sur un cluster partagé. Aucune sélection n'est requise. Si vous souhaitez une stabilité accrue pour vos tâches, vous pouvez acheter un cluster dédié pour exécuter les tâches de migration DTS.
Source Objects
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 entre 10 et 1 440 minutes. Il est recommandé 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 spécifié, 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ètre de la dernière tâche créée.
Étant donné que la tâche est facturée pendant la période de nouvelle tentative de connexion, il est conseillé de personnaliser la durée de nouvelle tentative en fonction de 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.
Selected Objects
Une fois la tâche de migration démarrée, si un problème autre qu'un problème de connectivité survient dans la base de données source ou de destination (par exemple, une exception lors de l'exécution d'une instruction 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 cette durée entre 1 et 1 440 minutes. Il est recommandé de définir 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. Dans le cas contraire, la tâche échoue.
ImportantLa valeur du paramètre Selected Objects doit être inférieure à celle du paramètre Selected Objects.
Selected Objects
Lors de la migration complète, DTS consomme des ressources de lecture et d'écriture sur les bases de données source et de destination, ce qui peut augmenter la charge de la base de données. Si nécessaire, vous pouvez activer la limitation du débit pour la tâche de migration complète. Vous pouvez définir les paramètres Batch Edit, Selected Objects et Selected Objects afin de réduire la charge sur la base de données de destination.
RemarqueCet élément de configuration est disponible uniquement si vous sélectionnez l'option Next: Advanced Settings pour le paramètre Migration Types.
Vous pouvez également ajuster la vitesse de migration complète une fois que l'instance de migration est en cours d'exécution.
Retry Time for Failed Connections
Si nécessaire, vous pouvez également définir des limites de vitesse pour la tâche de migration incrémentielle. Vous pouvez configurer les paramètres Retry Time for Other Issues et Retry Time for Other Issues afin de réduire la charge sur la base de données de destination.
RemarqueCet élément de configuration est disponible uniquement si vous sélectionnez l'option Retry Time for Failed Connections pour le paramètre Enable Throttling for Full Data Migration.
Vous pouvez également ajuster la vitesse de migration incrémentielle une fois que l'instance de migration est en cours d'exécution.
Queries per second (QPS) to the source database
Facultatif. Sélectionnez un tag d'environnement pour identifier l'instance.
RPS of Full Data Migration
Définissez le nombre de shards primaires et de réplicas pour l'index en fonction de la configuration maximale des shards de l'index dans l'instance Elasticsearch de destination.
Data migration speed for full migration (MB/s)
Méthode d'indexation des chaînes de caractères dans l'instance Elasticsearch de destination.
-
analyzed : analyse les chaînes de caractères avant de les indexer. Vous devez également sélectionner un analyseur spécifique. Pour plus d'informations sur les types d'analyseurs et leurs fonctions, consultez la documentation Analyzers.
-
not analyzed : indexe les chaînes de caractères avec leurs valeurs d'origine, sans analyse.
-
no : n'indexe pas les chaînes de caractères.
Full Data Migration
Fuseau horaire appliqué lorsque DTS migre des types de données liés à l'heure, tels que DATETIME et TIMESTAMP, vers l'instance Elasticsearch de destination.
RemarqueSi ces types de données liés à l'heure ne nécessitent pas de fuseau horaire dans l'instance de destination, vous devez définir le type de document (type) pour ces données dans l'instance de destination avant la migration.
DOCID
Le DOCID correspond par défaut à la clé primaire de la table. Si la table ne possède pas de clé primaire, le DOCID est la colonne ID générée automatiquement par Elasticsearch.
Enable Throttling for Incremental Data Migration
Choisissez si vous souhaitez écrire les informations SQL de pulsation (heartbeat) dans la base de données source lorsque l'instance DTS est en cours d'exécution.
-
RPS of Incremental Data Migration : les informations SQL de pulsation ne sont pas écrites dans la base de données source. Cela peut entraîner un retard signalé par l'instance DTS.
-
Data migration speed for incremental migration (MB/s) : écrit les informations SQL de pulsation 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.
Incremental Data Migration
Choisissez si vous souhaitez activer la fonctionnalité ETL (Extract, Transform, Load). Pour plus d'informations, consultez la rubrique Qu'est-ce que l'ETL ? Valeurs possibles :
-
Migration Types : active la fonctionnalité ETL. Saisissez les instructions de traitement des données dans l'éditeur de code. Pour plus d'informations, consultez la rubrique Configurer l'ETL dans une tâche de migration ou de synchronisation de données.
-
Environment Tag : désactive la fonctionnalité ETL.
Shard Configuration
Indiquez si vous souhaitez configurer des alertes et recevoir des notifications d'alerte en fonction de vos besoins métier.
String Index : ne configure aucune alerte.
Time Zone : configurez les alertes en définissant un seuil d'alerte et des notifications d'alerte. En cas d'échec de la migration ou si la latence dépasse le seuil défini, 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 stratégie
_routinget la valeur_idpour les tables à migrer dans l'instance Elasticsearch de destination.Type
Description
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
La définition du paramètre _routing permet de router et de stocker les documents sur un shard spécifique de l'instance Elasticsearch de destination. Pour plus d'informations, consultez la documentation _routing.
Sélectionnez Yes pour utiliser des colonnes personnalisées pour le routage.
Sélectionnez No pour utiliser l'_id pour le routage.
RemarqueSi l'instance Elasticsearch de destination est en version 7.x, vous devez sélectionner Configure ETL.
Yes
No
Une clé primaire composite est fusionnée en une seule colonne.
Monitoring and Alerting
Si vous sélectionnez l'option No, vous devez également définir la Yes correspondante.
-
-
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: Configure Database and Table Fields et cliquez sur Set _routing 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 Yes 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 validation de cette étape.
Si la prévérification échoue, cliquez sur No à 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 signalé lors de la prévérification :
Pour les éléments de vérification qui ne peuvent pas être ignorés, cliquez sur No à 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 Value of _id, Primary key column of the table, Business primary key et Business primary key pour ignorer l'élément d'avertissement et relancer la prévérification. Si vous choisissez d'ignorer un avertissement, cela peut entraîner des problèmes tels qu'une incohérence des données et présenter des risques pour votre activité.
-
Achetez l'instance.
Lorsque le Business primary key column atteint 100 %, cliquez sur Next: Save Task Settings and Precheck.
-
Sur la page Preview OpenAPI parameters, sélectionnez la spécification de lien pour l'instance de migration de données. Pour plus d'informations, consultez le tableau ci-dessous.
Catégorie
Paramètre
Description
Next: Save Task Settings and Precheck
View Details
Sélectionnez le groupe de ressources auquel l'instance appartient. La valeur par défaut est « default resource group ». Pour plus d'informations, consultez Qu'est-ce que la gestion des ressources ?
View Details
DTS propose des spécifications de migration offrant différents niveaux de performance. La spécification de lien influence la vitesse de migration. Vous pouvez choisir une spécification adaptée à votre scénario métier. Pour plus d'informations, consultez Spécifications des liens de migration de données.
Une fois la configuration terminée, lisez et acceptez les Confirm Alert Details.
-
Cliquez sur Ignore. Dans la boîte de dialogue OK qui s'affiche, cliquez sur Precheck Again.
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 Next: Purchase Instance passe à Purchase.
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. Pendant l'exécution de la tâche de migration incrémentielle, le New Instance Class de la tâche est Resource Group Settings.
Vérifier l'index et les données migrés
Une fois que la tâche de migration des données passe à l'état Instance Class, connectez-vous au cluster Elasticsearch via Kibana afin de vérifier que l'index et les données ont été migrés comme prévu. Pour plus d'informations, consultez la rubrique Se connecter à la console Kibana.
Si les résultats de la migration ne correspondent pas à vos attentes, vous pouvez supprimer l'index et ses données, puis reconfigurer la tâche de migration des données.