Tous les produits
Search
Centre de documentation

Data Transmission Service:Synchroniser PolarDB-X 1,0 vers Elasticsearch

Dernière mise à jour :Sep 22, 2026

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

  • Les tables à synchroniser doivent disposer d'une contrainte PRIMARY KEY ou UNIQUE. La synchronisation du schéma n'est pas prise en charge pour les tables comportant uniquement une contrainte UNIQUE ; utilisez plutôt une contrainte PRIMARY KEY. Les champs clés doivent être uniques. Dans le cas contraire, des données en double peuvent apparaître dans la base de données de destination.

  • Si vous synchronisez les données au niveau de la table et que vous devez modifier des objets tels que les mappages de noms de tables ou de colonnes, une seule tâche de synchronisation prend en charge jusqu'à 1 000 tables. Si vous dépassez cette limite, une erreur est signalée lors de la soumission de la tâche. Pour contourner ce problème, répartissez les tables sur plusieurs tâches ou synchronisez la base de données entière.

  • Journaux binaires des instances RDS for MySQL associées à l'instance PolarDB-X 1,0 :

    • La journalisation binaire est activée par défaut. Pour plus d'informations, consultez la page Afficher les paramètres de l'instance afin de confirmer que le paramètre binlog_row_image est défini sur full. Dans le cas contraire, une erreur est signalée lors de la prévérification et la tâche de synchronisation des données ne peut pas démarrer.

    • Pour la synchronisation incrémentielle, DTS exige que les journaux binaires locaux de la base de données source soient conservés pendant plus de 24 heures. Pour la synchronisation complète plus incrémentielle, les journaux binaires locaux doivent être conservés pendant au moins 7 jours. Vous pouvez modifier la période de conservation à plus de 24 heures une fois la synchronisation complète terminée. Si DTS ne parvient pas à obtenir les journaux binaires, la tâche peut échouer et, dans les cas extrêmes, entraîner une incohérence ou une perte de données. Les problèmes causés par une rétention insuffisante des journaux binaires ne sont pas couverts par l'accord de niveau de service (SLA) de DTS.

  • Limitations des opérations sur la base de données source :

    • Pour changer le type de réseau de l'instance PolarDB-X 1,0 pendant la synchronisation, mettez à jour les informations de connexion réseau du lien de synchronisation après la réussite du changement.

    • Pendant la synchronisation, n'effectuez pas d'opérations sur l'instance source telles que la mise à l'échelle (par exemple, la mise à l'échelle de son instance ApsaraDB RDS for MySQL associée, ou la modification de la distribution des tables physiques correspondant aux tables logiques dans ApsaraDB RDS for MySQL, même si l'instance ApsaraDB RDS for MySQL n'est pas mise à l'échelle), la migration des tables fréquemment utilisées, la modification de la clé de sharding ou des modifications DDL. Dans le cas contraire, la tâche de synchronisation des données échouera ou des incohérences de données se produiront.

    • Si vous modifiez la clé de partition d'une table source et que la clé primaire de la table de destination correspondante n'inclut pas la clé de partition, une perte de données peut se produire dans la base de données de destination.

      • Raison : Une instance PolarDB-X 1,0 possède plusieurs instances ApsaraDB RDS for MySQL qui lui sont associées. DTS maintient des liens de synchronisation indépendants pour chaque instance ApsaraDB RDS for MySQL. La modification d'une clé de partition entraîne la suppression des données d'une instance ApsaraDB RDS for MySQL et leur insertion dans une autre. Étant donné que ces liens s'exécutent indépendamment, l'ordre des opérations DELETE et INSERT peut être perturbé. Si la clé primaire de la base de données de destination n'inclut pas la clé de partition, une opération DELETE exécutée ultérieurement peut supprimer incorrectement les données nouvellement insérées.

      • Recommandation : Pour éviter la perte de données due à des opérations désordonnées, assurez-vous que la clé primaire de la table de destination inclut les colonnes de clé de partition de la table source.

    • Si vous effectuez uniquement une synchronisation complète des données, n'écrivez pas de nouvelles données dans l'instance source. Dans le cas contraire, une incohérence de données se produit entre la source et la destination. Pour maintenir la cohérence des données en temps réel, sélectionnez la synchronisation du schéma, la synchronisation complète des données et la synchronisation incrémentielle des données.

    • N'exécutez pas d'opérations DDL qui modifient les schémas de base de données ou de tables pendant la synchronisation du schéma ou la synchronisation complète. Dans le cas contraire, la tâche de synchronisation échoue.

      Remarque

      Pendant la synchronisation complète, DTS interroge la base de données source. Cela crée des verrous de métadonnées qui peuvent bloquer les opérations DDL sur la base de données source.

  • L'instance source PolarDB-X 1,0 doit être en version 5.2 ou ultérieure.

Autres limites

  • DTS ne synchronise pas les objets des types suivants : index, partition, vue, procédure, fonction, déclencheur et clé étrangère.

  • Pour ajouter une colonne à une table synchronisée, vous devez d'abord modifier le mappage de la table dans l'instance Elasticsearch. Ensuite, exécutez l'opération DDL correspondante sur la base de données source. Enfin, suspendez et redémarrez la tâche de synchronisation des données.

  • Vous ne pouvez pas synchroniser les données vers des index Elasticsearch contenant des relations parent-enfant ou des types de champ Join. Cette action peut provoquer des erreurs de tâche ou des échecs de requête dans la destination.

  • La synchronisation incrémentielle des données repose sur des transactions XA continues dans l'instance source PolarDB-X 1,0 pour garantir la cohérence des données. Si cette continuité est interrompue, par exemple lors de la modification des objets de synchronisation ou pendant la récupération après sinistre du module de capture des données incrémentielles, les transactions XA non validées peuvent être perdues.

  • Avant de synchroniser les données, évaluez les performances des bases de données source et de destination. Effectuez la synchronisation des données pendant les heures creuses. Dans le cas contraire, lors de la synchronisation complète des données, DTS consomme certaines 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.

  • DTS tente de reprendre les tâches de synchronisation des données ayant échoué au cours des sept derniers jours. Par conséquent, avant de basculer votre charge de travail vers l'instance de destination, vous devez arrêter ou libérer les tâches ayant échoué. Vous pouvez également exécuter la commande REVOKE pour révoquer les autorisations d'écriture du compte utilisé par DTS pour accéder à l'instance de destination. Cela empêche une tâche reprise automatiquement d'écraser les données de l'instance de destination avec celles de la source.

  • Les spécifications de développement et de test des instances Elasticsearch ne sont pas prises en charge.

  • Si une tâche échoue, l'équipe d'assistance DTS tentera de la restaurer dans un délai de huit heures. Pendant la restauration, elle peut redémarrer la tâche ou ajuster ses paramètres.

    Remarque

    Seuls les paramètres de la tâche DTS sont modifiés, et non les paramètres de la base de données. Les paramètres susceptibles d'être ajustés incluent ceux répertoriés dans la section Modifier les paramètres de l'instance.

Autres remarques

DTS met régulièrement à jour la table dts_health_check.ha_health_check dans la base de données source pour faire avancer la position du journal binaire.

Remarque

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.

Gestion des comptes

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.

    Remarque

    Pendant le processus de migration du schéma DTS, DTS ne définit pas le paramètre dynamic dans le mapping. 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

  1. 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

    1. Connectez-vous à la console Data Transmission Service (DTS).

    2. Dans le volet de navigation de gauche, cliquez sur Data Synchronization.

    3. 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

    Remarque

    Les 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.

    1. Connectez-vous à Data Management (DMS).

    2. Dans la barre de menu supérieure, choisissez Data + AI > Data Transmission (DTS) > Data Synchronization.

    3. À droite de Data Synchronization Tasks pour ouvrir la page de configuration de la tâche.

    4. 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.

        Remarque

        Dans 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.

        Remarque

        Dans 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.

    5. Une fois la configuration terminée, cliquez sur HTTPS en bas de la page.

      Remarque
      • Assurez-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.

    6. Configurez les objets de la tâche.

      1. 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.

        Important

        La 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.

        Remarque

        Si 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 :

        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.

      2. 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.

        Remarque

        Si 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.

        Remarque

        Ce 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.

    7. 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.

      Remarque
      • Avant 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é.

    8. Achetez l'instance.

      1. Lorsque le DOCID est de 100 %, cliquez sur Configure ETL.

      2. Sur la page Yes.

      3. 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.