Cette rubrique explique comment utiliser DTS pour synchroniser les données d'une instance PolarDB-X 1,0 vers un cluster Elasticsearch.
Prérequis
L'instance source PolarDB-X 1,0 doit utiliser ApsaraDB RDS for MySQL comme type de stockage. Cela inclut les instances ApsaraDB RDS personnalisées et achetées séparément. PolarDB for MySQL n'est pas pris en charge.
Vous avez créé un cluster Elasticsearch de destination. Pour plus d'informations, consultez la page Créer une instance Alibaba Cloud Elasticsearch.
L'espace de stockage disponible du cluster Elasticsearch de destination doit être supérieur à la taille totale des données de l'instance source PolarDB-X 1,0.
Considérations importantes
|
Type |
Description |
|
Limites de la base de données source |
|
|
Autres limites |
|
|
Autres remarques |
DTS met régulièrement à jour la table |
Si les objets à synchroniser par DTS sont des alias d'index dans l'Elasticsearch de destination, une incohérence des données peut se produire lorsque l'index réel pointé par un alias d'index change. Par exemple, l'alias d'index pointe vers l'index A lors de l'écriture des données. Cependant, lors de la synchronisation ultérieure des opérations de suppression, l'alias d'index pointe vers l'index B. Dans ce cas, les données de l'index A ne peuvent pas être supprimées et les données qui ont été supprimées de la source restent consultables dans la destination.
Facturation
|
Type de synchronisation |
Tarification |
|
Synchronisation du schéma et synchronisation complète des données |
Gratuit. |
|
Synchronisation incrémentielle des données |
Facturé. Pour plus d'informations, consultez la page Présentation de la facturation. |
Opérations SQL pour la synchronisation incrémentielle
Type d'opération | Instruction SQL |
DML | INSERT, UPDATE et DELETE Remarque La suppression de colonne à l'aide d'instructions UPDATE n'est pas prise en charge pour la synchronisation. |
Autorisations pour les comptes de base de données
|
Instance |
Autorisations requises |
Références |
|
Instance source PolarDB-X 1,0 |
Autorisation de lecture sur les objets à synchroniser. |
|
|
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 elastic. |
|
Correspondance des types de données
-
Une base de données source et une instance Elasticsearch prennent en charge des types de données différents 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 Correspondance 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. -
La correspondance 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 cette correspondance 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
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
field
colonne
mapping
schéma
Précautions
Procédure
-
Accédez à la page de liste des tâches de synchronisation de la région de destination. Vous pouvez utiliser l'une des deux 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 Synchronization.
Dans le coin supérieur gauche de la page, sélectionnez la région où se trouve l'instance de synchronisation.
Depuis la console DMS
RemarqueLes opérations réelles peuvent varier en fonction du mode et de la disposition de la console DMS. Pour plus d'informations, consultez les rubriques Mode simple et Personnaliser la disposition et le style de l'interface DMS.
Connectez-vous à Data Management (DMS).
Dans la barre de menu supérieure, choisissez .
À droite de Data Synchronization Tasks pour ouvrir 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
Create Task
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.
Task Name
Source Database
-
Pour utiliser une instance de base de données ajoutée au système (nouvellement créée ou enregistrée), sélectionnez l'instance de base de données dans la liste déroulante. Les informations de la base de données sont configurées automatiquement.
RemarqueDans la console DMS, cet élément de configuration est nommé Select a DMS database instance..
-
Si vous n'avez pas ajouté l'instance de base de données au système ou si vous n'avez pas besoin d'utiliser une instance déjà ajoutée, configurez manuellement les informations de base de données suivantes.
Database Type
Sélectionnez PolarDB-X 1.0.
Access Method
Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez la région où se trouve l'instance PolarDB-X 1,0 source.
Replicate Data Across Alibaba Cloud Accounts
Cet exemple synchronise les données au sein du même compte Alibaba Cloud. Sélectionnez No.
Instance ID
Sélectionnez l'ID de l'instance PolarDB-X 1,0 source.
Database Account
Saisissez le compte de base de données de l'instance PolarDB-X 1,0 source.
Database Password
Saisissez le mot de passe correspondant au compte de base de données.
Destination Database
Select Existing Connection
-
Pour utiliser une instance de base de données ajoutée au système (nouvellement créée ou enregistrée), sélectionnez l'instance de base de données dans la liste déroulante. Les informations de la base de données sont configurées automatiquement.
RemarqueDans la console DMS, cet élément de configuration est nommé Select Existing Connection.
-
Si vous n'avez pas ajouté l'instance de base de données au système ou si vous n'avez pas besoin d'utiliser une instance déjà ajoutée, configurez manuellement les informations de base de données suivantes.
Select a DMS database instance.
Sélectionnez Database Type.
Elasticsearch
Sélectionnez Access Method.
Alibaba Cloud Instance
Sélectionnez la région où se trouve l'instance Elasticsearch de destination.
Instance Region
Sélectionnez Type ou Serverless en fonction de vos besoins métier.
Cluster
Sélectionnez l'ID de l'instance Elasticsearch de destination.
Instance ID
Saisissez le compte utilisé pour se connecter à l'instance Elasticsearch de destination. Il s'agit du Database Account que vous avez spécifié lors de la création de l'instance Elasticsearch. Le compte par défaut est elastic.
Login name
Saisissez le mot de passe correspondant au compte de base de données.
Database Password
Sélectionnez Encryption ou HTTP selon vos besoins.
-
-
Une fois la configuration terminée, cliquez sur HTTPS en bas de la page.
RemarqueAssurez-vous que les blocs CIDR des adresses IP des serveurs DTS sont ajoutés aux paramètres de sécurité des bases de données source et de destination pour autoriser l'accès depuis les serveurs DTS. Cette opération peut être effectuée automatiquement ou manuellement. Pour plus d'informations, consultez la rubrique Ajouter les blocs CIDR des 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 (où la méthode Test Connectivity and Proceed n'est pas Access Method), vous devez également cliquer sur Alibaba Cloud Instance dans la boîte de dialogue Test Connectivity.
-
Configurez les objets de la tâche.
-
Sur la page CIDR Blocks of DTS Servers pour configurer les paramètres avancés.
Paramètre
Description
Configure Objects
Par défaut, DTS planifie les tâches sur un cluster partagé et vous n'avez pas besoin de sélectionner un cluster. Pour des performances plus stables, vous pouvez acheter un cluster dédié pour exécuter les tâches de synchronisation DTS. Pour plus d'informations, consultez la rubrique Qu'est-ce qu'un cluster dédié DTS ?.
Synchronization Types
Après le démarrage d'une tâche de synchronisation, si la connexion à la base de données source ou de destination échoue, DTS signale une erreur et commence immédiatement à retenter la connexion. La durée de nouvelle tentative par défaut est de 720 minutes. Vous pouvez également spécifier une durée de nouvelle tentative personnalisée comprise entre 10 et 1 440 minutes. Nous vous recommandons de définir la durée à 30 minutes ou plus. Si DTS se reconnecte avec succès à la base de données dans la durée spécifiée, la tâche de synchronisation reprend automatiquement. Sinon, la tâche échoue.
Remarque-
Si vous disposez de plusieurs instances DTS (par exemple, l'instance A et l'instance B) qui partagent la même source ou la même destination, et que vous définissez la durée de nouvelle tentative réseau à 30 minutes pour l'instance A et à 60 minutes pour l'instance B, la durée la plus courte de 30 minutes est utilisée pour les deux.
-
Étant donné que DTS facture le temps d'exécution de la tâche pendant la période de nouvelle tentative de connexion, nous vous recommandons 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.
Incremental Data Synchronization
Après le démarrage de la tâche de synchronisation, si d'autres problèmes non liés à la connectivité surviennent avec la base de données source ou de destination (tels que des exceptions d'exécution DDL ou DML), DTS signale une erreur et lance immédiatement des opérations de nouvelle tentative continues. La durée de nouvelle tentative par défaut est de 10 minutes. Vous pouvez également personnaliser la durée de nouvelle tentative dans la plage de 1 à 1 440 minutes. Nous vous recommandons de la définir à 10 minutes ou plus. Si les opérations pertinentes aboutissent dans la durée de nouvelle tentative définie, la tâche de synchronisation reprend automatiquement. Sinon, la tâche échoue.
ImportantLa valeur de Schema Synchronization doit être inférieure à celle de Full Data Synchronization.
Processing Mode of Conflicting Tables
Pendant l'étape de synchronisation complète, DTS consomme des ressources de lecture et d'écriture des bases de données source et de destination, ce qui peut augmenter la charge de la base de données. Pour réduire la charge sur les bases de données source et de destination, vous pouvez définir une limite de débit pour la tâche de synchronisation complète en configurant les paramètres Precheck and Report Errors, Ignore Errors and Proceed et Ignore Errors and Proceed.
Remarque-
Cet élément de configuration est disponible uniquement lorsque Index Name est défini sur Table Name.
-
Vous pouvez également ajuster le taux de synchronisation complète une fois l'instance de synchronisation en cours d'exécution.
Database Name_Table Name
Vous pouvez également définir une limite de débit pour la tâche de synchronisation incrémentielle. Pour soulager la pression sur la base de données de destination, définissez les paramètres Capitalization of Object Names in Destination Instance et DTS default policy.
Source Objects
Sélectionnez une balise d'environnement pour identifier l'instance en fonction de vos besoins.
Source Objects
Définissez le nombre de shards primaires et de shards réplicas pour l'index en fonction de la configuration maximale des shards des index dans l'instance Elasticsearch de destination.
Selected Objects
Spécifie comment indexer les chaînes synchronisées vers l'instance Elasticsearch de destination.
-
analyzed : la chaîne est analysée avant d'être indexée. Vous devez également sélectionner un analyseur spécifique. Pour plus d'informations sur les types d'analyseurs et leurs fonctions, consultez la page Analyzers.
-
not_analyzed : la chaîne est indexée avec sa valeur d'origine sans analyse.
-
no : la chaîne n'est pas indexée.
Selected Objects
Lorsque DTS synchronise des types de données liés à l'heure tels que DATETIME et TIMESTAMP vers l'instance Elasticsearch de destination, vous pouvez sélectionner le fuseau horaire à inclure.
RemarqueSi les types de données liés à l'heure dans l'instance de destination ne nécessitent pas de fuseau horaire, vous devez préalablement définir le type de document (type) pour ces types de données dans l'instance de destination.
Selected Objects
Le DOCID correspond par défaut à la clé primaire de la table. Si la table n'a pas de clé primaire, le DOCID est une colonne ID générée automatiquement par l'instance Elasticsearch.
Batch Edit
Choisissez d'activer ou non la fonctionnalité extract, transform, and load (ETL). Pour plus d'informations, consultez la rubrique Qu'est-ce que l'ETL ? Valeurs valides :
-
Selected Objects : 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.
-
Selected Objects : désactive la fonctionnalité ETL.
Next: Advanced Settings
Spécifiez si vous souhaitez configurer des alertes. Si la synchronisation échoue ou si la latence dépasse le seuil spécifié, une notification est envoyée à un contact d'alerte.
-
Dedicated Cluster for Task Scheduling : aucune alerte n'est configurée.
-
Retry Time for Failed Connections : configurez les alertes en définissant un seuil d'alerte et en spécifiant un notification d'alerte. Pour plus d'informations, consultez la rubrique Configurer la surveillance et les alertes lors de la configuration de la tâche.
-
-
Une fois les configurations précédentes terminées, cliquez sur Retry Time for Other Issues en bas de la page. Ensuite, définissez la stratégie _routing et la valeur _id pour les tables que vous souhaitez synchroniser vers l'instance Elasticsearch de destination.
Type
Description
Retry Time for Other Issues
Vous pouvez utiliser la fonctionnalité _routing pour stocker un document sur un shard spécifique de l'instance Elasticsearch de destination. Pour plus d'informations, consultez la page _routing.
-
Si vous sélectionnez Retry Time for Failed Connections, vous pouvez spécifier une colonne personnalisée pour le routage.
-
Si vous sélectionnez Enable Throttling for Full Data Synchronization, la valeur de _id est utilisée pour le routage.
RemarqueSi l'instance Elasticsearch de destination exécute la version 7.x, vous devez sélectionner Queries per second (QPS) to the source database.
RPS of Full Data Migration
Sélectionnez la colonne à utiliser pour le routage.
RemarqueCe paramètre est requis uniquement si vous définissez Data migration speed for full migration (MB/s) sur Synchronization Types.
Full Data Synchronization
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 API de configuration de cette instance, placez le curseur sur le bouton Enable Throttling for Incremental Data Synchronization et cliquez sur RPS of Incremental Data Synchronization dans la bulle.
Une fois que vous avez terminé de consulter les paramètres API, cliquez sur Data synchronization speed for incremental synchronization (MB/s) en bas de la page.
RemarqueAvant le démarrage de la tâche de synchronisation, DTS exécute une pré-vérification. La tâche ne peut démarrer qu'après la réussite de tous les éléments de pré-vérification.
Si la pré-vérification échoue, cliquez sur Environment Tag pour l'élément ayant échoué. Corrigez le problème comme indiqué, puis exécutez à nouveau la pré-vérification.
-
Si la pré-vérification renvoie un avertissement :
Si un élément de vérification échoue et ne peut pas être ignoré, cliquez sur Shard Configuration à côté de l'élément. Suivez les instructions pour corriger le problème, puis exécutez à nouveau la pré-vérification.
Pour les éléments de vérification pouvant être ignorés, vous pouvez cliquer successivement sur String Index et Time Zone pour ignorer l'avertissement et relancer la pré-vérification. Si vous choisissez de masquer l'élément d'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 DOCID est de 100 %, cliquez sur Configure ETL.
Sur la page Yes.
-
Cliquez sur No. Dans la boîte de dialogue Monitoring and Alerting.
Vous pouvez consulter la progression de la tâche sur la page Data Synchronization.