Tous les produits
Search
Centre de documentation

ApsaraDB for SelectDB:Utiliser DTS pour importer des données

Dernière mise à jour :Aug 11, 2026

Alibaba Cloud Data Transmission Service (DTS) permet de synchroniser en temps réel les données issues de bases MySQL et PostgreSQL vers ApsaraDB for SelectDB. Cette rubrique détaille la procédure de synchronisation du schéma, des données complètes et des données incrémentielles depuis une instance ApsaraDB RDS for MySQL vers une instance ApsaraDB for SelectDB.

Bases de données source prises en charge :

  • MySQL : ApsaraDB RDS for MySQL, MySQL auto-géré, PolarDB for MySQL

  • PostgreSQL : ApsaraDB RDS for PostgreSQL, PostgreSQL auto-géré, PolarDB for PostgreSQL

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Limites

Exigences relatives à la base de données source

  • Les tables doivent posséder des clés primaires ou des contraintes UNIQUE couvrant tous les champs uniques. Si une table ne dispose ni de clé primaire ni de contrainte UNIQUE, sélectionnez Schema Synchronization lors de l'étape Configure Objects and Advanced Settings, puis utilisez le modèle de clé unique et configurez manuellement les colonnes de clé primaire à l'étape Configure Database and Table Fields.

  • La journalisation binaire doit être activée et le paramètre binlog_row_image doit avoir la valeur full. Le non-respect de l'une de ces conditions entraîne l'échec de la pré-vérification et empêche le démarrage de la tâche.

  • Les journaux binaires doivent être conservés pendant au moins 7 jours. Une purge anticipée peut empêcher DTS de lire ces journaux, provoquant ainsi l'échec de la tâche, des incohérences ou des pertes de données. En cas de non-respect de cette exigence, le contrat de niveau de service (SLA) de DTS ne garantit plus la fiabilité ni les performances du service.

Exigences relatives aux journaux binaires

Pour ApsaraDB RDS for MySQL :

  • La journalisation binaire est activée par défaut. Vérifiez que le paramètre binlog_row_image est bien défini sur full. Pour plus d'informations, consultez Modifier les paramètres d'une instance ApsaraDB RDS for MySQL.

  • Les instances en lecture seule (par exemple, les instances en lecture seule ApsaraDB RDS for MySQL 5.6) qui n'enregistrent pas les journaux de transactions ne peuvent pas servir de bases de données sources.

  • Pour gérer la rétention des journaux binaires, reportez-vous à Gérer les fichiers de journaux binaires.

Pour MySQL auto-géré :

  • Activez la journalisation binaire, définissez binlog_format sur row et binlog_row_image sur full.

  • Si la source est déployée dans un cluster à double primaire, réglez log_slave_updates sur ON afin que DTS puisse lire l'intégralité des journaux binaires. Pour plus de détails sur la configuration, consultez Créer un compte pour une base de données MySQL auto-gérée et configurer la journalisation binaire.

  • Lorsque la source est Amazon Aurora MySQL ou une autre instance MySQL en cluster, assurez-vous que le nom de domaine ou l'adresse IP utilisé dans la tâche pointe toujours vers un nœud de lecture/écriture (RW).

Autres limites

  • DTS ne peut synchroniser les données que vers des tables utilisant le modèle de clé unique dans ApsaraDB for SelectDB.

  • Évitez d'utiliser des outils tels que pt-online-schema-change pour effectuer des opérations DDL en ligne sur les objets en cours de synchronisation, sous peine de provoquer l'échec de la tâche.

  • Pendant la synchronisation, écrivez les données dans la base de données de destination uniquement via DTS. Toute écriture par d'autres moyens risque d'entraîner des incohérences de données.

  • Exécutez la synchronisation durant les heures creuses afin de limiter l'impact sur les performances des bases de données source et de destination.

Cas particuliers

Pour MySQL auto-géré :

  • Tout basculement primaire/secondaire survenant pendant la synchronisation entraîne l'échec de la tâche.

  • En l'absence d'opérations DML pendant une période prolongée, le rapport de latence peut devenir imprécis. Exécutez une opération DML dans la base de données source pour actualiser la valeur de latence. Si vous synchronisez une base de données entière, créez une table de battement de cœur et mettez-la à jour ou écrivez-y chaque seconde.

  • DTS exécute périodiquement la commande CREATE DATABASE IF NOT EXISTS \ test\`` pour faire avancer le décalage du journal binaire.

Pour ApsaraDB RDS for MySQL :

  • DTS exécute périodiquement la commande CREATE DATABASE IF NOT EXISTS \ test\`` pour faire avancer le décalage du journal binaire.

Permissions requises

Base de données Permissions requises
Source ApsaraDB RDS for MySQL Permissions de lecture et d'écriture sur les objets à synchroniser
Destination ApsaraDB for SelectDB USAGE_PRIV sur l'instance ; SELECT_PRIV, LOAD_PRIV, ALTER_PRIV, CREATE_PRIV et DROP_PRIV sur la base de données de destination
Si le compte de la base de données source n'a pas été créé via la console ApsaraDB RDS, il doit également disposer des permissions REPLICATION CLIENT , REPLICATION SLAVE , SHOW VIEW et SELECT . Pour vérifier ou modifier les permissions d'un compte, consultez la documentation relative à l'instruction SHOW GRANTS ainsi que la rubrique Modifier les permissions d'un compte standard sur une instance ApsaraDB RDS for MySQL .

Configurer une tâche de synchronisation des données

  1. Connectez-vous à la console ApsaraDB for SelectDB.

  2. Dans la barre de navigation supérieure, sélectionnez la région où réside votre instance.

  3. Sur la page Instances, cliquez sur l'ID de l'instance pour accéder à la page Instance Details.

  4. Dans le volet de gauche, cliquez sur Data Pipeline, puis sur l'onglet Data Synchronization.

    Une tâche de synchronisation des données dans DTS combine généralement le chargement complet des données avec la capture continue des modifications incrémentielles. La migration de données, quant à elle, est conçue pour un transfert unique de données historiques. Pour une comparaison détaillée, consultez la section FAQ .
  5. Cliquez sur Create Data Synchronization Task et configurez les bases de données source et de destination.

    Section Paramètre Description
    (aucun) Task Name DTS génère automatiquement un nom. Utilisez un nom descriptif pour faciliter l'identification. Les noms n'ont pas besoin d'être uniques.
    Source Database Database Type Sélectionnez MySQL.
    Access Method Sélectionnez Alibaba Cloud Instance.
    Instance Region Sélectionnez la région de l'instance source ApsaraDB RDS for MySQL.
    RDS Instance ID Sélectionnez l'ID de l'instance source.
    Database Account Saisissez le compte disposant des permissions requises (voir Permissions requises).
    Database Password Saisissez le mot de passe du compte.
    Encryption Sélectionnez Non-encrypted ou SSL-encrypted. Si vous choisissez SSL-encrypted, activez d'abord le chiffrement SSL sur l'instance RDS for MySQL. Consultez Use a cloud certificate to quickly enable SSL link encryption.
    Destination Database Database Type Sélectionnez SelectDB.
    Access Method Sélectionnez Alibaba Cloud Instance.
    Instance Region Sélectionnez la région de l'instance de destination ApsaraDB for SelectDB.
    Instance ID Sélectionnez l'ID de l'instance de destination.
    Database Account Saisissez le compte disposant des permissions requises (voir Permissions requises).
    Database Password Saisissez le mot de passe du compte.
  6. Cliquez sur Test Connectivity and Proceed. DTS ajoute automatiquement les blocs CIDR des serveurs DTS à la liste d'autorisation d'adresses IP des instances de bases de données Alibaba Cloud.

    Avertissement

    L'ajout de blocs CIDR de serveurs DTS à une liste d'autorisation de base de données ou à un groupe de sécurité ECS expose votre environnement à des risques de sécurité. Avant de continuer, prenez des mesures préventives telles que le renforcement des identifiants, la restriction des ports exposés, l'authentification des appels API, la révision régulière des règles de liste d'autorisation et la connexion via Express Connect, VPN Gateway ou Smart Access Gateway.

  7. Configurez les objets à synchroniser ainsi que les paramètres avancés. Pour plus d'informations, consultez Spécifier la casse des noms d'objets dans l'instance de destination. Selecting objects Dans la section Source Objects, sélectionnez les bases de données, tables ou colonnes à synchroniser, puis cliquez sur l'icône en forme de flèche pour les déplacer vers la section Selected Objects. Gardez les points suivants à l'esprit :

    • Si vous sélectionnez des bases de données, les nouvelles tables ajoutées à la source après le démarrage de la tâche ne sont pas synchronisées automatiquement. Pour synchroniser de nouvelles tables, sélectionnez des tables plutôt que des bases de données. Pour modifier la portée de la synchronisation, cliquez sur Reselect Objects dans la console DTS.

    • Si vous sélectionnez des tables et devez les renommer, une seule tâche prend en charge jusqu'à 1 000 tables. Pour des volumes plus importants, répartissez le travail en plusieurs tâches ou synchronisez des bases de données entières.

    • Pour renommer un objet dans la destination, faites un clic droit dessus dans la zone Selected Objects. Pour renommer plusieurs objets simultanément, cliquez sur Batch Edit. Consultez Map object names.

    • Pour filtrer des lignes à l'aide d'une condition WHERE, faites un clic droit sur une table dans la section Selected Objects et spécifiez la condition. Consultez Set filter conditions.

    • Pour contrôler les opérations SQL synchronisées pour un objet spécifique, faites un clic droit dessus et sélectionnez les opérations souhaitées.

    Important

    Lors de la synchronisation de MySQL vers ApsaraDB for SelectDB, une conversion de types s'effectue. Si vous ne sélectionnez pas Schema Synchronization, créez au préalable les tables dans l'instance de destination en utilisant le modèle de clé unique avec des schémas correspondants. Consultez Mappages des types de données et Modèles de données.

    Types de synchronisation

    Paramètre Description
    Synchronization Types DTS active toujours la Incremental Data Synchronization. Les options Schema Synchronization et Full Data Synchronization sont également sélectionnées par défaut. Après la pré-vérification, DTS initialise la destination avec les données complètes comme base de référence pour la synchronisation incrémentielle.

    Gestion des conflits

    Option Comportement
    Precheck and Report Errors (par défaut) Vérifie la présence de tables portant le même nom dans la destination. Si de telles tables existent, la pré-vérification échoue et la tâche ne démarre pas. Pour contourner ce problème, renommez l'objet dans le mappage de destination. Consultez Database Table Column Name Mapping.
    Ignore Errors and Proceed Ignore la vérification des noms identiques. Lors de la synchronisation complète, DTS ignore les enregistrements sources qui entrent en conflit avec les enregistrements existants dans la destination. Lors de la synchronisation incrémentielle, DTS écrase les enregistrements de destination par ceux de la source. Si les schémas de tables sont incohérents, l'initialisation peut échouer ou la synchronisation être incomplète. À utiliser avec prudence.

    Casse des noms d'objets

    Option Comportement
    DTS default policy (par défaut) Les noms de bases de données et de tables sont en minuscules ; les noms de colonnes correspondent à la source.
    Consistent with the source database Les noms d'objets correspondent exactement à ceux de la source.
    Consistent with the default policy of the destination database Les noms d'objets suivent les règles par défaut de la destination.
  8. (Facultatif) Cliquez sur Next: Advanced Settings pour configurer des options supplémentaires.

    Paramètre Description
    Dedicated Cluster for Task Scheduling Par défaut, DTS utilise un cluster partagé. Pour une meilleure stabilité des tâches, achetez un cluster dédié. Consultez What is a DTS dedicated cluster?.
    Retry Time for Failed Connections Durée pendant laquelle DTS réessaie après un échec de connexion. Valeur par défaut : 720 minutes. Plage : 10 à 1 440 minutes. Recommandation : 30 minutes ou plus. Si plusieurs instances DTS partagent une même source ou destination, la durée de nouvelle tentative la plus courte configurée s'applique à toutes. DTS facture le temps d'exécution pendant les nouvelles tentatives.
    Retry Time for Other Issues Durée pendant laquelle DTS réessaie après des erreurs autres que de connexion (par exemple, échecs d'exécution DDL ou DML). Valeur par défaut : 10 minutes. Plage : 1 à 1 440 minutes. Doit être inférieure à Retry Time for Failed Connections.
    Enable Throttling for Full Data Synchronization Limite le débit de la synchronisation complète en définissant le QPS vers la source, le RPS de la migration complète des données et la vitesse de migration des données (Mo/s). Disponible uniquement lorsque Full Data Synchronization est sélectionné. Vous pouvez également adjust throttling after the task starts.
    Enable Throttling for Incremental Data Synchronization Limite le débit de la synchronisation incrémentielle en définissant le RPS et la vitesse de synchronisation des données (Mo/s).
    Environment Tag Tag facultatif permettant d'identifier l'instance DTS.
    Whether to delete SQL operations on heartbeat tables of forward and reverse tasks Yes : DTS n'écrit pas les SQL de battement de cœur dans la base de données source. L'instance peut afficher de la latence. No : DTS écrit les SQL de battement de cœur dans la base de données source. Cela peut interférer avec les sauvegardes physiques et le clonage.
    Configure ETL Yes : Active la fonctionnalité d'extraction, transformation et chargement (ETL) et permet de saisir des instructions de traitement des données. Consultez Configure ETL in a data migration or data synchronization task. No : Désactive l'ETL.
    Monitoring and Alerting Yes : Configure des alertes en cas d'échec de tâche ou de dépassement d'un seuil de latence. Définissez le seuil d'alerte et les contacts de notification. Consultez Configure monitoring and alerting during task configuration. No : Aucune alerte.
  9. (Facultatif) Cliquez sur Next: Configure Database and Table Fields pour définir la Primary Key Column, la Distribution Key et le Engine pour chaque table de destination.

    Cette étape n'est disponible que si Schema Synchronization est sélectionné. Réglez Definition Status sur All pour afficher et modifier toutes les tables. Vous pouvez sélectionner plusieurs colonnes pour la Primary Key Column . La Distribution Key doit être un sous-ensemble des colonnes de clé primaire. Seul le moteur unique est disponible pour le paramètre Engine .
  10. Cliquez sur Next: Save Task Settings and Precheck. Pour prévisualiser les paramètres API de cette configuration, survolez le bouton et cliquez sur Preview OpenAPI parameters. La pré-vérification s'exécute automatiquement. La tâche ne peut pas démarrer tant que la pré-vérification n'est pas réussie.

    • Si un élément échoue, cliquez sur View Details, corrigez le problème, puis cliquez sur Precheck Again.

    • Si un élément affiche une alerte pouvant être ignorée, cliquez sur Confirm Alert Details > View Details > Ignore > OK, puis cliquez sur Precheck Again. Ignorer des alertes peut entraîner des incohérences de données.

  11. Attendez que le success rate atteigne 100%, puis cliquez sur Next: Purchase Instance.

  12. Configurez la facturation de l'instance de synchronisation.

    Paramètre Description
    Billing Method Subscription : Paiement anticipé pour une durée fixe. Plus économique pour les tâches de longue durée. Pay-as-you-go : Facturation horaire. Adapté aux utilisations de courte durée. Libérez l'instance lorsqu'elle n'est plus nécessaire pour arrêter la facturation.
    Resource Group Groupe de ressources de l'instance. Par défaut : default resource group.
    Instance Class Spécification de synchronisation déterminant les performances. Consultez Classes d'instances des instances de synchronisation des données.
    Subscription Duration Disponible uniquement pour la facturation par abonnement. Options : 1 à 9 mois, 1 an, 2 ans, 3 ans ou 5 ans.
  13. Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms.

  14. Cliquez sur Buy and Start. Suivez la progression de la tâche dans la liste des tâches.

Opérations SQL prises en charge pour la synchronisation incrémentielle

Type Opérations prises en charge
DML INSERT, UPDATE, DELETE
DDL ADD COLUMN ; DROP COLUMN, DROP TABLE ; TRUNCATE TABLE

Mappages des types de données

Lorsque DTS synchronise des données de MySQL vers ApsaraDB for SelectDB, les conversions de types suivantes s'appliquent.

Types numériques

Type MySQL Type ApsaraDB for SelectDB Notes
TINYINT TINYINT
TINYINT UNSIGNED SMALLINT
SMALLINT SMALLINT
SMALLINT UNSIGNED INT
MEDIUMINT INT
MEDIUMINT UNSIGNED BIGINT
INT INT
INT UNSIGNED BIGINT
BIGINT BIGINT
BIGINT UNSIGNED LARGEINT
BIT(M) INT
DECIMAL DECIMAL ZEROFILL n'est pas pris en charge.
NUMERIC DECIMAL
FLOAT FLOAT
DOUBLE DOUBLE
BOOL, BOOLEAN BOOLEAN

Types date et heure

Type MySQL Type ApsaraDB for SelectDB Notes
DATE DATEV2
DATETIME[(fsp)] DATETIMEV2
TIMESTAMP[(fsp)] DATETIMEV2
TIME[(fsp)] VARCHAR
YEAR[(4)] INT

Types chaîne

Type MySQL Type ApsaraDB for SelectDB Notes
CHAR, VARCHAR VARCHAR CHAR et VARCHAR(n) sont convertis en VARCHAR(3*n) pour éviter toute perte de données. Si aucune longueur n'est spécifiée, VARCHAR(65533) est utilisé. Les données dépassant 65 533 caractères sont converties en STRING.
BINARY, VARBINARY STRING
TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT STRING
TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB STRING
ENUM STRING
SET STRING
JSON STRING

FAQ

Quelle est la différence entre la synchronisation des données et la migration des données dans DTS ?

La migration des données sert au transfert unique de données historiques depuis des bases de données sur site, hébergées sur ECS ou issues de clouds tiers vers Alibaba Cloud. Elle utilise exclusivement le mode de facturation à l'utilisation, et les frais ne s'appliquent que durant la phase de migration incrémentielle (hors schéma ou migration complète des données).

La synchronisation des données assure une réplication continue en temps réel entre deux sources de données. Elle prend en charge la facturation à l'utilisation et par abonnement. Avec le paiement à l'utilisation, les frais s'appliquent dès que la synchronisation incrémentielle est en cours, y compris lorsqu'elle est suspendue. La synchronisation convient à la redondance géographique active, à la reprise après sinistre, à la synchronisation transfrontalière des données, à l'entreposage de données en temps réel et aux pipelines d'intelligence d'affaires (BI) cloud.

Pour plus d'informations, consultez la FAQ.

Puis-je ajouter ou supprimer des colonnes d'une table source synchronisée vers ApsaraDB for SelectDB ?

Oui. DTS synchronise automatiquement les opérations ADD COLUMN et DROP COLUMN. Pour consulter toutes les opérations DDL incrémentielles prises en charge, voir Opérations SQL prises en charge pour la synchronisation incrémentielle.

DTS synchronise-t-il les nouvelles tables créées après le démarrage de la tâche ?

Cela dépend de la manière dont vous avez défini la portée des objets :

  • Si vous avez sélectionné des bases de données : Les nouvelles tables ne sont pas synchronisées automatiquement. Pour synchroniser leurs données, créez manuellement les tables correspondantes dans l'instance ApsaraDB for SelectDB de destination. DTS synchronisera alors automatiquement les données de ces tables.

  • Si vous avez sélectionné des tables : Les nouvelles tables ne sont pas incluses par défaut. Pour ajouter de nouvelles tables à la tâche, cliquez sur Reselect Objects dans la colonne Actions de la page Data Synchronization de la console DTS.

Que faire si une table à synchroniser ne possède pas de clé primaire ou de contrainte UNIQUE ?

DTS exige que toutes les tables sources possèdent des clés primaires ou des contraintes UNIQUE. Si une table ne répond pas à cette exigence :

  1. À l'étape Configure Objects and Advanced Settings, sélectionnez Schema Synchronization.

  2. À l'étape Configure Database and Table Fields, sélectionnez le modèle de clé unique pour la table et configurez manuellement les colonnes de clé primaire.

Étapes suivantes