Tous les produits
Search
Centre de documentation

Data Transmission Service:Migrate data from a PolarDB for MySQL cluster to an ApsaraDB for ClickHouse cluster

Dernière mise à jour :Aug 10, 2026

Data Transmission Service (DTS) vous permet de migrer des données d'un cluster PolarDB for MySQL vers un cluster ApsaraDB for ClickHouse, ce qui facilite l'analyse centralisée de vos données opérationnelles.

Étapes minimales pour effectuer cette migration :

  1. Vérifiez que les prérequis sont remplis (version du cluster ClickHouse, journalisation binaire si nécessaire).

  2. Accordez les autorisations requises sur les bases de données source et de destination.

  3. Créez et configurez une tâche de migration DTS.

  4. Exécutez la prévérification, achetez une instance et lancez la migration.

Prérequis

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

  • Un cluster ApsaraDB for ClickHouse exécutant la version 20.8 ou ultérieure. Consultez la rubrique Créer un cluster.

  • Un cluster ClickHouse dont l'espace de stockage est supérieur à l'espace utilisé du cluster PolarDB for MySQL source.

  • Pour la migration incrémentielle des données : la journalisation binaire doit être activée sur le cluster source, avec le paramètre loose_polar_log_bin défini sur on. Consultez les rubriques Activer la journalisation binaire et Modifier les paramètres.

L'activation de la journalisation binaire sur un cluster PolarDB for MySQL entraîne des frais de stockage pour les fichiers journaux binaires. Définissez la période de rétention des journaux binaires sur au moins 3 jours (7 jours recommandés) pour éviter que DTS ne perde l'accès aux journaux. Consultez la rubrique Modifier la période de rétention .

Facturation

Type de migration Frais de configuration du lien Coût de transfert des données
Migration du schéma + migration complète des données Gratuit Gratuit
Migration incrémentielle des données Facturé Consultez la rubrique Présentation de la facturation

Autorisations requises

Accordez les autorisations suivantes avant de configurer la tâche de migration.

Base de données Autorisations requises Procédure d'octroi
Cluster PolarDB for MySQL source Autorisations en lecture sur les objets de migration Créer et gérer un compte de base de données et Gérer le mot de passe d'un compte de base de données
Cluster ApsaraDB for ClickHouse de destination (v22.8 ou ultérieure) Autorisations en lecture et écriture — un compte privilégié satisfait à cette exigence Gestion des comptes pour les clusters compatibles avec la Community Edition
Cluster ApsaraDB for ClickHouse de destination (v21.8) Autorisations Read, Write et Set Permissions ; activer DDL Identique à ci-dessus

Limites

Limites de la base de données source

  • Le serveur de la base de données source doit disposer d'une bande passante sortante suffisante ; une bande passante faible réduit la vitesse de migration.

  • Une seule tâche de migration prend en charge un maximum de 1 000 tables lors d'une migration au niveau des tables avec mappage des noms d'objets. Si vous dépassez cette limite, répartissez les tables sur plusieurs tâches ou effectuez la migration au niveau de la base de données.

  • Pendant la migration du schéma et la migration complète des données, n'exécutez pas d'opérations DDL sur la base de données source, car cela entraînerait l'échec de la tâche de migration.

Lors de la migration complète des données, DTS interroge la base de données source et peut créer un verrou de métadonnées qui bloque temporairement les opérations DDL.
  • Si vous n'effectuez que la migration complète des données (sans migration incrémentielle), n'écrivez pas de nouvelles données dans la base de données source pendant la migration, sous peine de provoquer une incohérence des données.

Autres limites

  • Les nœuds en lecture seule du cluster PolarDB for MySQL source ne peuvent pas être migrés.

  • Les tables externes Object Storage Service (OSS) ne sont pas migrées.

  • Les types d'objets suivants ne sont pas pris en charge : INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER et FOREIGN KEY (FK).

  • Le basculement principal/secondaire n'est pas pris en charge pendant la migration complète des données. En cas de basculement, reconfigurez la tâche de migration.

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

  • Le nombre maximal de bases de données à migrer est de 256 (limite d'ApsaraDB for ClickHouse).

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

  • La clé de partition ne peut pas être un champ nullable. Les clés de partition prennent uniquement en charge les types de données BIGINT, INT, TIMESTAMP, DATETIME et DATE.

  • Les données de type temporel dans ApsaraDB for ClickHouse ont des plages spécifiques. Consultez la section Plages des types de données temporelles pour plus de détails.

  • Lorsque la migration du schéma est activée, DTS ajoute automatiquement 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 avec ces champs. Consultez la section Exigences relatives aux tables de destination.

  • Pendant la migration DTS, n'écrivez pas de données provenant d'autres sources dans la base de données de destination, car cela provoquerait une incohérence des données.

  • En cas d'échec d'une instance DTS, l'équipe DTS tente de la récupérer dans un délai de 8 heures. Les opérations de récupération peuvent inclure le redémarrage de l'instance et l'ajustement des paramètres de l'instance DTS (les paramètres de la base de données ne sont jamais modifiés).

  • Avant la migration, évaluez les performances des deux bases de données et exécutez la migration pendant les heures creuses pour réduire la charge.

  • Si vous migrez des tables spécifiques (et non une base de données entière), n'utilisez pas pt-online-schema-change pour les modifications DDL en ligne sur ces tables, car cela entraînerait l'échec de la migration. Utilisez plutôt Data Management (DMS). Consultez la rubrique Modifier les schémas sans verrouiller les tables.

Limites liées aux DDL en ligne

Outil ou mode Comportement
DMS ou gh-ost (modifications DDL en ligne sur la source) DTS migre l'instruction DDL d'origine vers la destination sans migrer les données des tables temporaires, ce qui peut provoquer des verrous de table sur la destination.
pt-online-schema-change Non pris en charge. Des données peuvent être perdues sur la destination ou l'instance de migration peut échouer.
Mode de table temporaire pour les DDL en ligne (y compris la fusion de plusieurs tables) Des données peuvent être perdues sur la destination ou l'instance de migration peut échouer.
Syntaxe DDL MySQL non standard sur la source La migration peut échouer ou des données peuvent être perdues.

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

Type d'opération Instructions SQL prises en charge Instructions SQL non prises en charge
DML INSERT, UPDATE, DELETE —
DDL CREATE TABLE, TRUNCATE TABLE, DROP TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN RENAME TABLE ; toutes les instructions DDL liées à INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER et FOREIGN KEY

Mappages des types de données

PolarDB for MySQL et ApsaraDB for ClickHouse prennent en charge différents types de données, de sorte qu'un mappage un à un n'est pas toujours possible. Lors de la migration du schéma, DTS mappe les types de données source vers les types les plus proches pris en charge par ClickHouse. Consultez la rubrique Mappages des types de données entre bases de données hétérogènes pour obtenir le tableau de mappage complet.

Créer une tâche de migration

Étape 1 : Accéder à la page Data Migration

Utilisez l'une des consoles suivantes.

Console DTS

  1. Connectez-vous à la 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ésidera l'instance de migration.

Console DMS

Les étapes exactes peuvent varier selon le mode et la disposition de votre console DMS. Consultez les rubriques Mode simple et Personnaliser la disposition et le style de la console DMS .
  1. Connectez-vous à la console DMS.

  2. Dans la barre de navigation supérieure, placez le pointeur sur 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ésidera l'instance de migration.

Étape 2 : Configurer les bases de données source et de destination

Cliquez sur Create Task, puis renseignez les paramètres suivants.

Catégorie Paramètre Description
— Task Name Nom de la tâche DTS. DTS en génère un automatiquement. Spécifiez un nom descriptif pour faciliter l'identification de la tâche. Le nom n'a pas besoin d'être unique.
Base de données source Select Existing Connection Sélectionnez une instance de base de données enregistrée dans la liste déroulante — DTS renseigne automatiquement les autres paramètres. Si l'instance n'est pas enregistrée, saisissez les paramètres manuellement. Dans la console DMS, utilisez la liste déroulante Select a DMS database instance.
Database Type Sélectionnez PolarDB for MySQL.
Access Method Sélectionnez Alibaba Cloud Instance.
Instance Region Sélectionnez la région où réside le cluster PolarDB for MySQL source.
Replicate Data Across Alibaba Cloud Accounts Sélectionnez No pour une migration au sein du même compte.
PolarDB Cluster ID Sélectionnez l'ID du cluster PolarDB for MySQL source.
Database Account Saisissez le compte de base de données. Consultez la section [Autorisations requises](#section_81l_yq9_hbu).
Database Password Saisissez le mot de passe du compte de base de données.
Encryption Sélectionnez une méthode de chiffrement si nécessaire. Pour le chiffrement SSL (Secure Sockets Layer), consultez la rubrique [Configurer le chiffrement SSL](t1862945.xdita#).
Base de données de destination Select Existing Connection Identique à la source : sélectionnez une instance enregistrée ou saisissez les paramètres manuellement.
Database Type Sélectionnez ClickHouse.
Access Method Sélectionnez Alibaba Cloud Instance.
Instance Region Sélectionnez la région où réside le cluster ApsaraDB for ClickHouse de destination.
Replicate Data Across Alibaba Cloud Accounts Sélectionnez No pour une migration au sein du même compte.
Cluster Type Sélectionnez le type de cluster ApsaraDB for ClickHouse.
Cluster ID Sélectionnez l'ID du cluster ApsaraDB for ClickHouse de destination.
Database Account Saisissez le compte de base de données. Consultez la section [Autorisations requises](#section_81l_yq9_hbu).
Database Password Saisissez le mot de passe du compte de base de données.

Cliquez sur Test Connectivity and Proceed.

Assurez-vous que les blocs CIDR des serveurs DTS sont ajoutés aux paramètres de sécurité (liste d'autorisation) des deux bases de données. Consultez la rubrique Ajouter les adresses IP des serveurs DTS à une liste d'autorisation .

Étape 3 : Configurer les objets à migrer

Sur la page Configure Objects, définissez les paramètres suivants.

Paramètre Description
Migration Types Sélectionnez les types de migration en fonction de votre objectif : <br>• Schema Migration + Full Data Migration : copie unique des données, sans réplication continue. <br>• Schema Migration + Full Data Migration + Incremental Data Migration : réplication continue qui maintient la destination synchronisée tandis que la source reste active. <br><br>
Remarque

Si vous ignorez la Schema Migration, créez manuellement les tables de destination avant de démarrer. Si vous ignorez la Incremental Data Migration, évitez d'écrire dans la base de données source pendant la migration.

Processing Mode of Conflicting Tables Precheck and Report Errors (par défaut) : échoue la prévérification si les tables de destination partagent les mêmes noms que les tables source. Utilisez le [mappage des noms d'objets](https://www.alibabacloud.com/help/en/dts/user-guide/map-object-names#task-2101588) pour renommer les tables si nécessaire. <br><br>Ignore Errors and Proceed : ignore la vérification. Lors de la migration complète des données, les enregistrements conflictuels dans la destination sont conservés ; lors de la migration incrémentielle, ils sont écrasés. Si les schémas diffèrent, seules les colonnes correspondantes sont migrées. À utiliser avec prudence.
Capitalization of Object Names in Destination Instance Contrôle la casse des noms de bases de données, de tables et de colonnes dans la destination. La valeur par défaut est DTS default policy. Consultez la rubrique [Spécifier la casse des noms d'objets dans l'instance de destination](https://www.alibabacloud.com/help/en/dts/user-guide/specify-the-capitalization-of-object-names-in-the-destination-instance-2#concept-2045083).
Source Objects Sélectionnez les bases de données ou les tables dans la section Source Objects, puis cliquez sur l'icône de flèche pour les ajouter à Selected Objects.
Selected Objects Cliquez avec le bouton droit sur un objet pour le renommer. Cliquez sur Batch Edit pour renommer plusieurs objets à la fois. Cliquez avec le bouton droit sur une table pour définir des conditions de filtre pour les données. Consultez les rubriques [Mapper les noms d'objets](https://www.alibabacloud.com/help/en/dts/user-guide/map-object-names#section-g21-1wy-98l) et [Définir des conditions de filtre](t960956.dita#concept_610729) .

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

Cliquez sur Next: Advanced Settings et configurez les éléments suivants.

Paramètre Description
Dedicated Cluster for Task Scheduling Par défaut, DTS planifie la tâche sur le cluster partagé. Achetez un cluster dédié pour améliorer la stabilité. Consultez la rubrique [Qu'est-ce qu'un cluster dédié DTS ?](https://www.alibabacloud.com/help/en/dts/user-guide/what-is-a-dts-dedicated-cluster#concept-2183964).
Time zone of destination database Fuseau horaire des données de date et d'heure (telles que DateTime) écrites dans le cluster ClickHouse de destination.
Retry Time for Failed Connections Durée pendant laquelle DTS retente une connexion échouée avant d'échouer la tâche. Plage : 10 à 1 440 minutes. Par défaut : 720 minutes. Définissez une valeur supérieure à 30 minutes. <br><br>
Remarque

Si plusieurs tâches partagent la même base de données source ou de destination, la valeur définie le plus récemment s'applique. DTS facture l'instance pendant la nouvelle tentative.

Retry Time for Other Issues Durée pendant laquelle DTS retente les opérations DDL ou DML échouées avant d'échouer la tâche. Plage : 1 à 1 440 minutes. Par défaut : 10 minutes. Définissez une valeur supérieure à 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 des données. Configurez Queries per second (QPS) to the source database, rows per second (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 des données. 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 Contrôle si DTS écrit les opérations SQL de la table de heartbeat sur la source pendant l'exécution de l'instance. Yes : les écritures de heartbeat sont supprimées, mais un indicateur de latence peut s'afficher. No : les écritures de heartbeat sont activées, ce qui peut affecter la sauvegarde physique et le clonage de la base de données source.
Environment Tag Tag facultatif pour identifier l'environnement (par exemple, production ou test).
Configure ETL Active la fonctionnalité extract, transform, and load (ETL). Yes : saisissez les instructions de traitement des données dans l'éditeur de code. Consultez la rubrique [Configurer ETL dans une tâche de migration ou de synchronisation des données](https://www.alibabacloud.com/help/en/dts/user-guide/configure-etl-in-a-data-migration-or-data-synchronization-task#task-2189872). No : ignorer la configuration ETL.
Monitoring and Alerting Configure des alertes en cas d'échec de la tâche ou de latence dépassant un seuil. Yes : définissez le seuil d'alerte et les contacts de notification. Consultez la rubrique [Configurer la surveillance et les alertes](https://www.alibabacloud.com/help/en/dts/user-guide/configure-monitoring-and-alerting-1#section-r6s-w5c-kmz). No : aucune alerte.

Étape 5 : Configurer les champs de table pour ClickHouse

Cliquez sur Next: Configure Database and Table Fields et configurez le Type, la Primary Key Column, la Sort Key, la Distribution Key et la Partition Key pour chaque table migrée.

DTS fournit des configurations par défaut. Pour les examiner ou les modifier, définissez Definition Status sur All.

Règles principales :

  • La Primary Key Column et la Sort Key prennent en charge les clés composites — sélectionnez plusieurs champs dans les listes déroulantes.

  • Sélectionnez une ou plusieurs colonnes de la Primary Key Column pour servir de Partition Key.

  • La Distribution Key ne prend en charge qu'un seul champ.

  • Laissez la Partition Key vide si elle n'est pas nécessaire, mais ne sélectionnez pas de champ nullable, car cela entraînerait l'échec de la tâche de migration.

  • Les clés de partition ne prennent en charge que BIGINT, INT, TIMESTAMP, DATETIME et DATE. Consultez la section Logique de calcul de la clé de partition.

Pour plus d'informations sur les clés primaires, les clés de tri et les clés de partition, consultez la rubrique CREATE TABLE.

Étape 6 : Exécuter la prévérification et démarrer la migration

  1. Cliquez sur Next: Save Task Settings and Precheck. Pour prévisualiser les paramètres API de cette tâche, placez le pointeur sur Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters avant de continuer.

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

    • Cliquez sur View Details à côté de chaque élément ayant échoué, corrigez le problème, puis cliquez sur Precheck Again.

    • Si un élément affiche un avertissement (et non un échec) et que vous pouvez accepter le risque, cliquez sur Confirm Alert Details > Ignore > OK, puis cliquez sur Precheck Again.

    Important

    Ignorer une alerte de prévérification peut entraîner une incohérence des données.

Étape 7 : 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 paramètres suivants.

    Section Paramètre Description
    New Instance Class Resource Group Groupe de ressources pour l'instance de migration. Par défaut : default resource group. Consultez la rubrique [Qu'est-ce que Resource Management ?](https://www.alibabacloud.com/help/en/resource-management/product-overview/what-is-resource-management#concept-zyn-3p1-dhb)
    Instance Class La classe d'instance détermine la vitesse de migration. Consultez la rubrique [Classes d'instances des instances de migration de données](https://www.alibabacloud.com/help/en/dts/product-overview/specifications-of-data-migration-instances#concept-26606-zh).
  3. Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms, puis cliquez sur Buy and Start > OK.

Consultez la progression de la migration sur la page Data Migration.

Si la tâche n'inclut pas de migration incrémentielle des données, elle s'arrête automatiquement une fois terminée. La colonne Status affiche Completed .
Si la tâche inclut une migration incrémentielle des données, elle s'exécute en continu et ne s'arrête jamais automatiquement. La colonne Status affiche Running .

Interroger les données migrées

Après la migration, exécutez la requête suivante pour récupérer les données du cluster ClickHouse de destination :

SELECT * FROM <table_name> FINAL WHERE _sign > 0;
  • Le modificateur FINAL déduplique les lignes ayant les mêmes clés de tri, garantissant que vous voyez la dernière version de chaque ligne.

  • La clause WHERE _sign > 0 filtre les lignes supprimées.

Sans FINAL, les requêtes peuvent renvoyer des enregistrements dupliqués ou supprimés.

Annexe

Exigences relatives aux tables de destination

Si vous ignorez la migration du schéma et créez manuellement les tables de destination, celles-ci doivent répondre aux exigences suivantes.

Important

Si une table de destination inclut le paramètre ENGINE, définissez-le sur ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Toute autre configuration du moteur peut entraîner une incohérence des données.

Édition du cluster Exigence de création de table
Community-compatible Edition Créez à la fois 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 suivre le format <distributed_table_name>_local.
Enterprise Edition Créez une table portant le même nom que la table source.

Champs supplémentaires ajoutés par DTS

DTS ajoute automatiquement les champs suivants à chaque table de destination lors de la migration du schéma.

Pour interroger les données synchronisées, utilisez :

SELECT * FROM <table_name> FINAL WHERE _sign > 0;
Version du cluster Champ Type de données Valeur par défaut Description
Community-compatible Edition exécutant ClickHouse V23.8 ou antérieure _sign Int8 1 Type d'opération DML : INSERT ou UPDATE = 1 ; DELETE = -1.
_version UInt64 1 Horodatage lorsque l'enregistrement a été écrit dans le cluster ClickHouse.
Enterprise Edition ou Community-compatible Edition exécutant ClickHouse V23.8 ou ultérieure _sign Int8 1 Type d'opération DML : INSERT ou UPDATE = 1 ; DELETE = -1.
_is_deleted UInt8 0 Indique si l'enregistrement est supprimé : Insertion ou mise à jour = 0 ; Suppression = 1.
_version UInt64 1 Horodatage lorsque l'enregistrement a été écrit dans le cluster ClickHouse.

Plages des types de données temporelles

Si les données temporelles du cluster PolarDB for MySQL source se situent en dehors des plages suivantes, les valeurs écrites dans ApsaraDB for ClickHouse seront incorrectes.

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

Logique de calcul de la clé de partition

DTS applique la logique suivante lors de la dérivation des valeurs de clé de partition à partir des champs source.

Type de champ source Logique de calcul
BIGINT intDiv(<partition_key_field>, 18014398509481984)
INT intDiv(<partition_key_field>, 4194304)
TIMESTAMP toYYYYMM(<partition_key_field>)
DATETIME toYYYYMM(<partition_key_field>)
DATE toYYYYMM(<partition_key_field>)