Tous les produits
Search
Centre de documentation

Data Transmission Service:Migrate data from an ApsaraDB RDS for MySQL instance to an ApsaraDB for ClickHouse cluster

Dernière mise à jour :Aug 12, 2026

Data Transmission Service (DTS) migre les données d'ApsaraDB RDS for MySQL vers ApsaraDB for ClickHouse pour centraliser l'analyse de vos données opérationnelles. Cette rubrique détaille la configuration complète de ce parcours de migration, incluant la migration complète et la migration incrémentielle (CDC).

Avant de commencer

Avant de démarrer la tâche de migration, vérifiez que les exigences suivantes sont satisfaites.

Cluster de destination

  • Le cluster ApsaraDB for ClickHouse de destination doit exécuter la version 20.8 ou ultérieure. Consultez Créer un cluster.

  • L'espace de stockage du cluster de destination doit être supérieur à l'espace utilisé par l'instance RDS MySQL source.

Autorisations du compte de la base de données source

Le compte de la base de données source doit disposer d'autorisations de lecture sur les objets à migrer. Si le compte n'a pas été créé via la console RDS, accordez-lui manuellement les autorisations suivantes :

GRANT REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, SELECT ON *.* TO '<account>'@'%';

Consultez Créer un compte et Modifier les autorisations d'un compte.

Autorisations du compte du cluster de destination

Version de ClickHouse Autorisations requises Comment accorder
22.8 ou ultérieure Autorisations de lecture et d'écriture (un compte privilégié répond à cette exigence) Gérer les comptes pour un cluster compatible avec l'édition Community
21.8 Read, Write and Set Permissions et Allow DDL Gérer les comptes pour un cluster compatible avec l'édition Community

Exigences relatives aux journaux binaires (migration incrémentielle uniquement)

Si vous prévoyez d'inclure une migration de données incrémentielle, configurez les éléments suivants sur l'instance MySQL source.

Activer la conservation des journaux binaires

La période de conservation minimale dépend du type de source :

  • ApsaraDB RDS for MySQL : Conservez les journaux binaires pendant au moins 3 jours (7 jours recommandés).

  • MySQL géré par l'utilisateur : Conservez les journaux binaires pendant au moins 7 jours.

Une conservation inférieure au minimum requis peut entraîner l'échec de la tâche de migration ou une perte de données. Pour définir la période de conservation d'une instance RDS MySQL, consultez Configurer les paramètres selon lesquels le système supprime automatiquement les fichiers de journal binaire d'une instance RDS.

Configurer le format des journaux binaires

Définissez les paramètres suivants sur l'instance MySQL source :

Paramètre Valeur requise
binlog_format ROW
binlog_row_image FULL

Ces paramètres permettent à DTS de lire les données de modification au niveau des lignes. S'ils ne sont pas correctement définis, la vérification préalable échoue et la tâche de migration ne démarre pas.

Si la source est une base de données MySQL gérée par l'utilisateur déployée dans un cluster à double primaire, définissez également log_slave_updates = ON afin que DTS puisse obtenir tous les journaux binaires.

Facturation

Type de migration Coût
Migration du schéma + migration complète des données Gratuit
Migration incrémentielle des données Payant. Consultez Présentation de la facturation.

Exécutez la migration des données pendant les heures creuses. La migration complète des données consomme des ressources de lecture et d'écriture sur la source et la destination, ce qui augmente la charge de la base de données.

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

Type d'opération Opérations SQL prises en charge
DML INSERT, UPDATE, DELETE
DDL CREATE TABLE, DROP TABLE, TRUNCATE TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN

Limites

Restrictions de la base de données source

  • Limite de migration au niveau des tables : Une seule tâche de migration prend en charge un maximum de 1 000 tables lorsque le mappage des noms d'objets est utilisé. Si vous dépassez cette limite, répartissez les tables sur plusieurs tâches ou migrez la base de données entière.

  • Colonnes invisibles (MySQL 8.0.23 et versions ultérieures) : DTS ne peut pas lire les colonnes invisibles, ce qui entraîne une perte de données. Pour rendre une colonne visible, exécutez ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;. Les tables sans clés primaires explicites génèrent automatiquement des clés primaires invisibles ; rendez-les également visibles. Consultez Invisible Columns et Generated Invisible Primary Keys.

  • RDS MySQL V5.6 en lecture seule : Ce type d'instance n'enregistre pas les journaux de transaction et ne peut pas servir de source pour la migration incrémentielle.

  • Instances activées avec EncDB : La migration complète des données n'est pas prise en charge. Les instances activées avec Transparent Data Encryption (TDE) prennent en charge la migration du schéma, la migration complète des données et la migration incrémentielle des données.

  • Restrictions DDL pendant la migration : N'exécutez pas d'instructions DDL pendant l'exécution de la migration du schéma ou de la migration complète des données. Pour une migration complète uniquement, n'écrivez pas dans la base de données source pendant la migration.

  • Restaurations de sauvegarde physique et opérations en cascade : Les données de changement générées par les restaurations de sauvegarde physique ou les opérations en cascade sur la source ne sont ni enregistrées ni migrées vers la destination pendant l'exécution de l'instance de migration. Le cas échéant, vous pouvez relancer une migration complète des données, à condition que votre activité professionnelle ne soit pas affectée.

Autres restrictions

  • La migration des INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER et des clés étrangères n'est pas prise en charge.

  • L'opération RENAME TABLE ne peut pas être migrée.

  • Si la base de données source comporte des opérations de modification DDL en ligne en mode table temporaire, telles que des scénarios de fusion multi-tables, une perte de données dans la base de données de destination ou un échec de l'instance de migration peut survenir.

  • Si la source contient des modifications DDL en ligne effectuées avec pt-online-schema-change, une perte de données ou un échec de la migration peut survenir. Si vous migrez une ou plusieurs tables au lieu d'une base de données entière, n'utilisez pas pt-online-schema-change pour effectuer des opérations DDL en ligne sur les objets de migration dans la base de données source, sinon la migration échouera. Les modifications DDL en ligne effectuées avec DMS ou gh-ost sont prises en charge : DTS migre l'instruction DDL d'origine sans copier les données de la table temporaire, mais cela peut provoquer le verrouillage des tables dans la destination. Vous pouvez utiliser Data Management (DMS) pour effectuer des opérations DDL en ligne.

  • Si les instructions DDL dans la source ne suivent pas la syntaxe MySQL standard, la tâche de migration peut échouer ou des données peuvent être perdues.

  • Le nombre de bases de données à migrer ne doit pas dépasser 256 (limite de ClickHouse).

  • Les noms des bases de données, des tables et des colonnes doivent respecter les conventions de nommage d'ApsaraDB for ClickHouse.

  • Pendant la migration du schéma, DTS ajoute les champs _sign, _is_deleted et _version aux tables de destination. Si vous ignorez la migration du schéma, créez manuellement les tables de destination et incluez ces champs. Consultez Annexe : informations sur les tables et les champs.

  • N'écrivez aucune donnée provenant de sources autres que DTS dans la base de données de destination pendant l'exécution de la migration.

  • Si une tâche DTS ne parvient pas à s'exécuter, le support technique DTS tentera de restaurer la tâche dans un délai de 8 heures. Pendant la restauration, la tâche peut être redémarrée et les paramètres de la tâche DTS peuvent être modifiés. Remarque : seuls les paramètres de la tâche DTS peuvent être modifiés ; les paramètres des bases de données ne le sont pas. Les paramètres susceptibles d'être modifiés incluent, sans s'y limiter, ceux de la section Modifier les paramètres de l'instance.

Contraintes spécifiques à ClickHouse

  • Plage de données de type heure : Les types d'heure de ClickHouse ont des limites de plage. Les données source en dehors de ces plages sont écrites incorrectement. Consultez Annexe : informations sur l'heure.

  • Clé de partition : Ne peut pas être un champ nullable. Types pris en charge : BIGINT, INT, TIMESTAMP, DATETIME, DATE.

  • Nombre maximal de bases de données : 256.

Cas particuliers

Sources MySQL gérées par l'utilisateur

  • Si vous effectuez un basculement primaire/secondaire sur la base de données source pendant l'exécution de la tâche de migration des données, la tâche échoue.

  • DTS calcule la latence de migration en fonction de l'horodatage des dernières données migrées dans la destination et de l'horodatage actuel dans la source. Si aucune opération DML n'est effectuée sur la source pendant une longue période, la latence de migration peut être inexacte. Pour mettre à jour la latence, effectuez une opération DML sur la source. Si vous sélectionnez une base de données entière comme objet de migration, vous pouvez créer une table de heartbeat mise à jour chaque seconde.

  • DTS exécute CREATE DATABASE IF NOT EXISTS \ test\`` dans la base de données source de manière planifiée pour faire avancer la position du fichier de journal binaire.

Sources ApsaraDB RDS for MySQL

  • Dans la migration incrémentielle des données, une instance ApsaraDB RDS for MySQL V5.6 en lecture seule ne peut pas servir de base de données source.

  • DTS exécute CREATE DATABASE IF NOT EXISTS \ test\`` dans la base de données source de manière planifiée pour faire avancer la position du fichier de journal binaire.

Mappages de types de données

Les types de données MySQL et ClickHouse ne correspondent pas un à un. Lors de la migration du schéma, DTS mappe les types source vers des types ClickHouse compatibles. Consultez Mappages de types de données entre bases de données hétérogènes.

Migrer des données de RDS MySQL vers ClickHouse

Étape 1 : Ouvrir la page Migration des données

Utilisez l'une des méthodes suivantes pour accéder à la page Migration des données.

Console DTS

  1. Connectez-vous à la console DTS.Console DTS

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

  3. Dans le coin supérieur gauche, sélectionnez la région où réside l'instance de migration des données.

Console DMS

Remarque

La navigation réelle peut varier en fonction du mode et de la disposition de la console DMS. Consultez Mode simple et Personnaliser la disposition et le style de la console DMS.

  1. Connectez-vous à la console DMS.Console DMS

  2. Dans la barre de navigation supérieure, accédez à Data + AI > DTS (DTS) > Data Migration.

  3. Dans la liste déroulante à côté de Data Migration Tasks, sélectionnez la région où réside l'instance.

Étape 2 : Configurer la tâche

Cliquez sur Create Task pour ouvrir la page de configuration de la tâche. Configurez les paramètres décrits dans le tableau suivant.

Catégorie Paramètre Description
— Task Name Un nom descriptif pour cette tâche DTS. Le nom n'a pas besoin d'être unique.
Base de données source Select Existing Connection Si l'instance est enregistrée auprès de DTS, sélectionnez-la dans la liste : DTS remplit automatiquement les détails de connexion. Sinon, configurez manuellement les paramètres suivants. Dans la console DMS, sélectionnez l'instance dans la liste Select a DMS database instance.
Database Type Sélectionnez MySQL.
Access Method Sélectionnez Alibaba Cloud Instance.
Instance Region La région où réside l'instance RDS MySQL source.
Replicate Data Across Alibaba Cloud Accounts Sélectionnez No (migration au sein du même compte).
RDS Instance ID L'ID de l'instance RDS MySQL source.
Database Account Le compte de base de données pour l'instance source. Consultez Avant de commencer.
Database Password Le mot de passe du compte de base de données.
Encryption Sélectionnez Non-encrypted ou SSL-encrypted. Pour utiliser le chiffrement SSL, activez-le d'abord sur l'instance RDS. Consultez Utiliser un certificat cloud pour activer le chiffrement SSL.
Base de données de destination Select Existing Connection Si le cluster est enregistré auprès de DTS, sélectionnez-le dans la liste. Sinon, configurez manuellement les paramètres suivants.
Database Type Sélectionnez ClickHouse.
Access Method Sélectionnez Alibaba Cloud Instance.
Instance Region La région où réside le cluster ClickHouse de destination.
Replicate Data Across Alibaba Cloud Accounts Sélectionnez No (migration au sein du même compte).
Cluster Type Sélectionnez le type de cluster.
Cluster ID L'ID du cluster ClickHouse de destination.
Database Account Le compte de base de données pour le cluster de destination. Consultez Avant de commencer.
Database Password Le mot de passe du compte de base de données.

Étape 3 : Tester la connectivité

Cliquez sur Test Connectivity and Proceed en bas de la page.

Ajoutez les blocs CIDR du serveur DTS aux paramètres de sécurité des bases de données source et de destination. Consultez Ajouter les blocs CIDR des serveurs DTS . Si la source ou la destination est une base de données gérée par l'utilisateur n'utilisant pas la méthode d'accès Alibaba Cloud Instance , cliquez sur Test Connectivity dans la boîte de dialogue CIDR Blocks of DTS Servers .

Étape 4 : Sélectionner les objets à migrer

Sur la page Configure Objects, configurez les paramètres suivants.

Configuration Description
Migration Types Sélectionnez les types de migration en fonction de votre scénario : <br>- Schema Migration + Full Data Migration : Migre l'instantané actuel. Aucune réplication continue. <br>- Schema Migration + Full Data Migration + Incremental Data Migration : Migre l'instantané et applique les modifications continues. Utilisez cette option pour maintenir la synchronisation de la destination pendant la fenêtre de basculement. <br><br>
Remarque

Si vous ignorez Schema Migration, créez manuellement les tables de destination avant de démarrer la tâche. Si vous ignorez Incremental Data Migration, n'écrivez pas dans la base de données source pendant la migration.

Processing Mode of Conflicting Tables Precheck and Report Errors (par défaut) : DTS vérifie la présence de tables portant des noms identiques dans la source et la destination. La tâche ne peut pas démarrer si des conflits existent. Utilisez le mappage des noms d'objets pour résoudre les conflits sans supprimer les tables de destination. <br><br>Ignore Errors and Proceed: Ignore la vérification. Pendant la migration complète, les enregistrements conflictuels dans la destination sont conservés (non écrasés). Pendant la migration incrémentielle, les enregistrements conflictuels sont écrasés. Utilisez cette option avec prudence.
Capitalization of Object Names in Destination Instance Spécifie comment les noms des bases de données, des tables et des colonnes sont mis en majuscules dans la destination. Par défaut, la DTS default policy est appliquée. Consultez Spécifier la casse des noms d'objets.
Source Objects Sélectionnez les objets (bases de données ou tables) à migrer, puis cliquez sur l'icône de flèche pour les déplacer vers Selected Objects.
Selected Objects Faites un clic droit sur une table pour la renommer (objet unique) ou définir des conditions de filtre de ligne. Cliquez sur Batch Edit pour renommer plusieurs objets à la fois (renommage groupé).
Remarque

Le renommage d'un objet peut empêcher la migration des objets dépendants.

Remarque
  • Pour définir des conditions de filtre pour les données, faites un clic droit sur la table à migrer dans la zone Selected Objects et définissez les conditions de filtre dans la boîte de dialogue qui s'affiche. Pour plus d'informations, consultez Définir des conditions de filtre.

  • Si vous utilisez la fonctionnalité de mappage des noms d'objets, les autres objets qui dépendent de l'objet renommé peuvent ne pas être migrés.

Étape 5 : Configurer les paramètres avancés

Cliquez sur Next: Advanced Settings et configurez les paramètres suivants.

Paramètre Description
Dedicated Cluster for Task Scheduling Par défaut, DTS planifie les tâches sur le cluster partagé. Pour une stabilité accrue, achetez un cluster dédié. Consultez Qu'est-ce qu'un cluster dédié DTS ?.
Time zone of destination database Le fuseau horaire pour les données DateTime écrites dans ClickHouse.
Retry Time for Failed Connections Durée pendant laquelle DTS réessaie après un échec de connexion. Plage : 10–1 440 minutes. Par défaut : 720. Définissez cette valeur à au moins 30 minutes. Si DTS se reconnecte dans ce délai, la tâche reprend automatiquement.
Retry Time for Other Issues Durée pendant laquelle DTS réessaie après des échecs DDL ou DML. Plage : 1–1 440 minutes. Par défaut : 10. Définissez cette valeur à au moins 10 minutes. Elle doit être inférieure à Retry Time for Failed Connections.
Enable Throttling for Full Data Migration Limite la charge de lecture/écriture sur la source et la destination pendant la migration complète. Configurez Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s). Disponible uniquement lorsque Full Data Migration est sélectionné.
Enable Throttling for Incremental Data Migration Limite la charge pendant la migration incrémentielle. Configurez RPS of Incremental Data Migration et Data migration speed for incremental migration (MB/s). Disponible uniquement lorsque Incremental Data Migration est sélectionné.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks Yes:paramètres de notification d'alerte DTS n'écrit pas de SQL de heartbeat dans la source. Une valeur de latence de tâche peut être affichée. No: DTS écrit du SQL de heartbeat, ce qui peut affecter des fonctionnalités telles que la sauvegarde physique et le clonage de la source.
Environment Tag Facultatif. Sélectionnez un tag pour identifier l'environnement de l'instance.
Configure ETL Yes: Active la fonctionnalité extract, transform, and load (ETL). Saisissez les instructions de traitement des données dans l'éditeur. Consultez Configurer ETL dans une tâche de migration ou de synchronisation des données. No: Désactive ETL.
Monitoring and Alerting Yes: Configure des alertes en cas d'échec de la tâche ou de dépassement du seuil de latence. Définissez le seuil d'alerte et les contacts de notification. Consultez Configurer la surveillance et les alertes. No: Aucune alerte.

Étape 6 : Configurer les champs de table ClickHouse

Cliquez sur Next: Configure Database and Table Fields pour définir le Type, la Primary Key Column, la Sort Key, la Distribution Key et la Partition Key pour chaque table de destination dans ClickHouse.

  • DTS fournit une configuration par défaut. Pour examiner ou modifier toutes les tables, définissez Definition Status sur All.

  • La Primary Key Column et la Sort Key prennent en charge les clés composites : sélectionnez plusieurs champs dans la liste déroulante.

  • La Partition Key doit être constituée d'une ou plusieurs colonnes de la Primary Key Column. Seuls les types BIGINT, INT, TIMESTAMP, DATETIME et DATE sont pris en charge. Les champs nullable ne peuvent pas être utilisés comme clé de partition. Il est permis de laisser la clé de partition vide.

  • La Distribution Key n'accepte qu'un seul champ.

Pour plus de détails sur les clés primaires, les clés de tri et les clés de partition dans ClickHouse, consultez CREATE TABLE.

Étape 7 : Exécuter une vérification préalable

Cliquez sur Next: Save Task Settings and Precheck.

Pour afficher les paramètres API correspondant à cette configuration de tâche, survolez Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters .

DTS exécute une vérification préalable avant de démarrer la migration. Si la vérification préalable échoue :

  1. Cliquez sur View Details à côté de l'élément ayant échoué.

  2. Corrigez le problème en fonction des résultats de la vérification.

  3. Cliquez sur Precheck Again.

Si un élément d'alerte peut être ignoré : cliquez sur Confirm Alert Details > Ignore > OK > Precheck Again. Ignorer les alertes peut entraîner une incohérence des données.

Étape 8 : Acheter l'instance et démarrer la migration

  1. Attendez que le Success Rate atteigne 100%, puis cliquez sur Next: Purchase Instance.

  2. Sur la page Purchase Instance, configurez les éléments suivants :

    Section Paramètre Description
    New Instance Class Resource Group Le groupe de ressources pour l'instance de migration. Par défaut : default resource group. Consultez Qu'est-ce que Resource Management ?
    Instance Class La classe d'instance détermine la vitesse de migration. Consultez Classes d'instances des instances de migration des données.
  3. Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Cliquez sur Buy and Start > OK.

Vérifier la migration

Surveillez la tâche sur la page Data Migration.

  • Migration complète uniquement (sans incrémentiel) : La tâche s'arrête automatiquement une fois terminée. Le Status indique Completed.

  • Migration avec données incrémentielles : La tâche s'exécute en continu. Le Status indique Running. Arrêtez la tâche manuellement après avoir basculé vos applications.

Interroger correctement les données migrées

DTS utilise le moteur ReplicatedReplacingMergeTree et ajoute les champs _sign, _is_deleted et _version aux tables de destination. Sans le mot-clé FINAL, les requêtes peuvent renvoyer des lignes dupliquées ou supprimées. Utilisez toujours FINAL et filtrez sur _sign :

SELECT * FROM <table_name> FINAL WHERE _sign > 0;

La condition WHERE _sign > 0 filtre les lignes marquées comme supprimées.

Annexe : informations sur l'heure

Les types d'heure de ClickHouse ont des limites de plage. Les valeurs source en dehors de ces plages sont écrites incorrectement dans la destination.

Type de données Valeur minimale Valeur maximale
Date 1970-01-01 00:00:00 2149-06-06 00:00:00
Date32 1925-01-01 00:00:00 2283-11-11 00:00:00
DateTime 1970-01-01 08:00:00 2106-02-07 14:28:15
DateTime64 1925-01-01 08:00:00 2283-11-12 07:59:59

Annexe : informations sur les tables et les champs

Exigences relatives aux tables pour la création manuelle

Si vous ignorez la migration du schéma, créez les tables de destination avant de démarrer la tâche. Les tables doivent répondre à ces exigences.

Important

Si la table de destination inclut une clause ENGINE, elle doit être ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Sinon, une incohérence des données peut survenir.

  • Community Edition : Créez une table locale et une table distribuée. Le nom de la table distribuée doit correspondre au nom de la table source. Le nom de la table locale doit être <distributed_table_name>_local.

  • Enterprise Edition : Créez une table portant le même nom que la table source.

Champs gérés par DTS

DTS ajoute automatiquement les champs suivants aux tables de destination lors de la migration du schéma.

Version Champ Type Valeur par défaut Description
Community Edition antérieure à 23.8 _sign Int8 1 Type d'opération DML : INSERT ou UPDATE = 1, DELETE = -1
_version UInt64 1 Horodatage lorsque la ligne a été écrite dans ClickHouse
Enterprise Edition et Community Edition 23.8 et versions ultérieures _sign Int8 1 Type d'opération DML : INSERT ou UPDATE = 1, DELETE = -1
_is_deleted UInt8 0 Indicateur de suppression : INSERT ou UPDATE = 0, DELETE = 1
_version UInt64 1 Horodatage lorsque la ligne a été écrite dans ClickHouse

Logique de calcul de la clé de partition

Type de champ source Expression de clé de partition
BIGINT intDiv(key, 18014398509481984)
INT intDiv(key, 4194304)
TIMESTAMP toYYYYMM(key)
DATETIME toYYYYMM(key)
DATE toYYYYMM(key)