Tous les produits
Search
Centre de documentation

ApsaraDB for SelectDB:Migrer des données MySQL

Dernière mise à jour :Aug 28, 2026

Utilisez DTS, Flink CDC, un catalogue ou DataWorks pour migrer des données depuis des sources MySQL (telles que MySQL géré en interne, ApsaraDB RDS for MySQL et PolarDB for MySQL) vers ApsaraDB for SelectDB. Choisissez la méthode adaptée au volume de données et à votre cas d'utilisation.

Comparaison des méthodes de migration

DTS, DataWorks, Flink CDC et les catalogues permettent tous de migrer des données MySQL vers ApsaraDB for SelectDB, mais leurs fonctionnalités diffèrent. Sélectionnez la méthode la mieux adaptée à votre scénario.

Méthode

Migration des données historiques

Synchronisation incrémentielle des données

Migration du schéma

Migration de base de données

Synchronisation DDL

Vérification des données

DTS

✔️

✔️

✔️

✔️

✔️

✔️

DataWorks

✔️

✔️

✔️

✔️

✔️

Flink CDC

✔️

✔️

✔️

✔️

✔️

catalogue

✔️

Les sections suivantes décrivent les étapes de base pour chaque méthode. Pour plus de détails, reportez-vous à la documentation correspondante.

Prérequis

Migrer des données avec DTS

DTS prend en charge la migration des données historiques et la synchronisation incrémentielle des données de MySQL vers ApsaraDB for SelectDB. Il offre des fonctionnalités telles que la migration de bases de données et de tables, la synchronisation DDL et la vérification des données. L'exemple suivant utilise une instance ApsaraDB RDS for MySQL. Pour plus d'informations, consultez Utiliser DTS pour importer des données.

Procédure

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

  2. Dans le coin supérieur gauche, sélectionnez la région où se trouve votre instance.

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

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

    Remarque

    La synchronisation des données DTS combine la migration des données historiques pour les transferts ponctuels avec la synchronisation incrémentielle des données pour les mises à jour en temps réel.

  5. Cliquez sur Create Synchronization Task et configurez les bases de données source et de destination.

  6. Catégorie

    Configuration

    Description

    Informations sur la tâche

    Task Name

    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.

    Base de données source

    Database Type

    Sélectionnez MySQL.

    Access Method

    Sélectionnez Alibaba Cloud Instance.

    Instance Region

    Sélectionnez la région où se trouve l'instance ApsaraDB RDS for MySQL source.

    RDS Instance ID

    Sélectionnez l'ID de l'instance ApsaraDB RDS for MySQL source. Exemple : rm-2z3m****.

    Database Account

    Saisissez le compte de base de données de l'instance ApsaraDB RDS for MySQL source. Pour connaître les autorisations requises, consultez Autorisations requises pour les comptes de base de données.

    Database Password

    Saisissez le mot de passe correspondant au compte de base de données.

    Encryption

    Sélectionnez Non-encrypted ou SSL-encrypted selon vos besoins. Si vous sélectionnez SSL-encrypted, vous devez activer le chiffrement SSL pour l'instance RDS for MySQL au préalable. Pour plus d'informations, consultez Utiliser un certificat cloud pour activer rapidement le chiffrement SSL.

    Base de données de destination

    Database Type

    Sélectionnez SelectDB.

    Access Method

    Sélectionnez Alibaba Cloud Instance.

    Instance Region

    Sélectionnez la région où réside l'instance SelectDB de destination.

    Instance ID

    Sélectionnez l'ID de l'instance SelectDB de destination.

    Database Account

    Saisissez le compte de base de données de l'instance SelectDB de destination. Pour connaître les autorisations requises, consultez Autorisations requises pour les comptes de base de données.

    Database Password

    Saisissez le mot de passe correspondant au compte de base de données.

  7. Une fois la configuration terminée, cliquez sur Test Connection and Proceed en bas de la page.

  8. Configurez les objets de la tâche et les paramètres avancés.

  9. Configuration

    Description

    Synchronization Types

    Incremental Data Synchronization est sélectionné. Par défaut, vous devez également sélectionner Schema Synchronization et Full Data Synchronization. Une fois la pré-vérification terminée, DTS effectue une synchronisation complète des données des objets sélectionnés depuis l'instance source vers le cluster de destination. Cela sert de données de référence pour la synchronisation incrémentielle ultérieure des données.

    Important

    Les types de données sont convertis lors de la synchronisation des données de MySQL vers SelectDB. Si vous ne sélectionnez pas Schema Synchronization, vous devez d'abord créer une table avec un schéma correspondant utilisant le modèle Unique Key dans l'instance SelectDB de destination. Pour plus d'informations, consultez Mappages de types de données et Modèle de données.

    Source Objects

    Dans la zone Source Objects, cliquez sur les objets que vous souhaitez synchroniser, puis cliquez sur 向右 pour déplacer les objets vers la zone Selected Objects. Vous pouvez sélectionner des objets au niveau de la base de données, de la table ou de la colonne.

    Important
    • Si vous sélectionnez des objets au niveau de la base de données, DTS ne synchronise pas les données des tables créées après le démarrage de la tâche. Si vous prévoyez d'ajouter des tables pendant la synchronisation, sélectionnez les objets au niveau de la table. Vous pourrez modifier ultérieurement la sélection en utilisant Modify Synchronized Objects.

    • Si vous sélectionnez des objets au niveau de la table et que vous devez les modifier, par exemple en mappant les noms de tables ou de colonnes, une seule tâche de synchronisation prend en charge un maximum de 1 000 tables. Si cette limite est dépassée, une erreur est signalée lors de la soumission de la tâche. Dans ce cas, divisez les tables à synchroniser par lots et configurez plusieurs tâches, ou configurez une tâche de synchronisation au niveau de la base de données.

    Selected Objects

    • Pour renommer un seul objet de synchronisation dans l'instance de destination, faites un clic droit sur l'objet dans la zone Selected Objects. Pour plus d'informations sur le renommage des objets, consultez Mapper une seule base de données, table ou colonne.

    • Pour modifier les noms de plusieurs objets de synchronisation dans l'instance de destination par lot, cliquez sur Batch Edit dans le coin supérieur droit de la zone Selected Objects. Pour plus d'informations, consultez Mapper des bases de données, tables et colonnes par lot.

    Remarque
    • Pour sélectionner les opérations SQL à synchroniser au niveau de la base de données ou de la table, faites un clic droit sur l'objet à synchroniser dans la zone Selected Objects, puis sélectionnez les opérations SQL souhaitées dans la boîte de dialogue qui s'affiche. Pour la liste des opérations prises en charge, consultez Opérations SQL prenant en charge la synchronisation incrémentielle.

    • Pour filtrer les données à l'aide d'une clause WHERE, faites un clic droit sur la table à synchroniser dans la zone Selected Objects, puis définissez la condition 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 de noms d'objets, d'autres objets dépendant de l'objet remappé peuvent ne pas être synchronisés.

  10. Facultatif : Une fois les configurations précédentes terminées, cliquez sur Next: Configure Database and Table Fields pour définir la Primary Key Column, la Distribution Key et le Engine pour les tables de destination.

  11. Remarque
    • Cette étape est disponible uniquement lorsque vous sélectionnez Synchronization Types pour Schema Synchronization lors de la configuration des objets de la tâche. Vous pouvez définir Definition Status sur All puis modifier les paramètres.

    • Vous pouvez sélectionner plusieurs colonnes pour former une Primary Key Column composite, et vous devez sélectionner une ou plusieurs colonnes de la Primary Key Column comme Distribution Key. Pour le Engine, seul Unique est pris en charge.

  12. Enregistrez la tâche et exécutez une pré-vérification. Une fois que le Precheck Success Rate atteint 100 %, cliquez sur Next: Purchase.

  13. Sur la page Purchase, sélectionnez la méthode de facturation et les spécifications de lien pour l'instance de synchronisation des données. Lisez et acceptez les Data Transmission Service (Pay-As-You-Go) Service Terms. Cliquez sur Purchase and Start pour démarrer la tâche de synchronisation. Vous pouvez afficher la progression de la tâche sur la page de synchronisation des données.

Migrer des données avec DataWorks

Data Integration de DataWorks peut synchroniser des données de MySQL vers ApsaraDB for SelectDB. Pour plus d'informations, consultez Importer des données à l'aide de DataWorks.

Important

L'écriture dans des champs de type de données BITMAP, HLL (HyperLogLog) ou QUANTILE_STATE n'est pas prise en charge.

Ajouter des sources de données

Lors du développement d'une tâche de synchronisation de données, créez une source de données MySQL et une source de données SelectDB dans DataWorks.

  1. Créez une source de données MySQL. Pour plus d'informations, consultez Source de données MySQL.

  2. Créez une source de données SelectDB. Pour plus d'informations, consultez Gestion des sources de données. Le tableau suivant décrit certains des paramètres de configuration pour la source de données SelectDB.

    Paramètre

    Description

    Data Source Name

    Le nom de la source de données.

    MySQL Connection URL

    Saisissez la chaîne de connexion JDBC jdbc:mysql://<ip>:<port>/<dbname>.

    Vous pouvez obtenir le VPC Endpoint (ou Public Endpoint) et le MySQL Port depuis la page Instance Details > Network Information dans la console ApsaraDB for SelectDB.

    Exemple : jdbc:mysql://selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030/test_db

    HTTP Connection URL

    Saisissez l'endpoint du protocole HTTP au format <ip>:<port>.

    Vous pouvez obtenir le VPC Endpoint (ou Public Endpoint) et le HTTP Port depuis la page Instance Details > Network Information dans la console ApsaraDB for SelectDB.

    Exemple : selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080

    Username

    Saisissez le nom d'utilisateur pour l'instance ApsaraDB for SelectDB.

    Password

    Saisissez le mot de passe pour l'utilisateur spécifié de l'instance ApsaraDB for SelectDB.

Configurer la synchronisation des données

Pour configurer une tâche de migration de données, consultez les documents suivants :

Migrer des données avec Flink CDC

Flink propose trois méthodes pour migrer des données de MySQL vers SelectDB : Flink SQL, Flink CDC et DataStream. Flink CDC prend en charge la migration des données historiques, la synchronisation incrémentielle des données, la migration de bases de données et de tables, ainsi que la synchronisation DDL. L'exemple suivant utilise Flink CDC pour synchroniser des données de MySQL vers ApsaraDB for SelectDB. Pour plus d'informations, consultez Utiliser Flink pour importer des données.

Procédure

Préparer l'environnement

Configurez un environnement Flink. Cet exemple utilise un environnement autonome Flink 1.16.

  1. Téléchargez et décompressez flink-1.16.3-bin-scala_2.12.tgz. Si cette version n'est pas disponible, téléchargez une autre version. Pour plus de versions, consultez Apache Flink.

    wget https://archive.apache.org/dist/flink/flink-1.16.3/flink-1.16.3-bin-scala_2.12.tgz
    tar -zxvf flink-1.16.3-bin-scala_2.12.tgz
  2. Accédez au répertoire FLINK_HOME/lib et téléchargez flink-sql-connector-mysql-cdc-2.4.2 et flink-doris-connector-1.16-1.5.2.

    cd flink-1.16.3
    cd lib/
    wget https://repo1.maven.org/maven2/com/ververica/flink-sql-connector-mysql-cdc/2.4.2/flink-sql-connector-mysql-cdc-2.4.2.jar
    wget https://repo.maven.apache.org/maven2/org/apache/doris/flink-doris-connector-1.16/1.5.2/flink-doris-connector-1.16-1.5.2.jar
  3. Démarrez le cluster Flink Standalone.

    bin/start-cluster.sh
  4. Créez une instance ApsaraDB for SelectDB. Pour plus d'informations, consultez Créer une instance.

  5. Connectez-vous à l'instance ApsaraDB for SelectDB via le protocole MySQL. Pour plus d'informations, consultez Se connecter à une instance.

  6. Créez une base de données de test et une table de test.

    1. Créez une base de données de test.

      CREATE DATABASE test_db;
    2. Créez une table de test.

      USE test_db;
      CREATE TABLE employees (
          emp_no       int NOT NULL,
          birth_date   date,
          first_name   varchar(20),
          last_name    varchar(20),
          gender       char(2),
          hire_date    date
      )
      UNIQUE KEY(`emp_no`)
      DISTRIBUTED BY HASH(`emp_no`) BUCKETS 1;

Soumettre une tâche Flink CDC

Utilisez la syntaxe suivante pour soumettre une tâche Flink CDC :

<FLINK_HOME>/bin/flink run \
    -Dexecution.checkpointing.interval=10s \
    -Dparallelism.default=1 \
    -c org.apache.doris.flink.tools.cdc.CdcTools \
    lib/flink-doris-connector-1.16-1.5.2.jar \
    mysql-sync-database \
    --database test_db \
    --including-tables "tbl1|test.*" \
    --mysql-conf hostname=127.0.0.1 \
    --mysql-conf username=root \
    --mysql-conf password=123456 \
    --mysql-conf database-name=mysql_db \
    --sink-conf fenodes=selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080 \
    --sink-conf username=admin \
    --sink-conf password=****

Paramètre

Description

execution.checkpointing.interval

L'intervalle de point de contrôle Flink, qui affecte la fréquence de synchronisation des données. Une valeur de 10 s est recommandée.

parallelism.default

Le parallélisme de la tâche Flink. Vous pouvez augmenter le parallélisme pour améliorer le débit de synchronisation des données.

database

Le nom de la base de données de destination dans SelectDB.

including-tables

Les tables MySQL à synchroniser. Vous pouvez utiliser une barre verticale (

) pour séparer plusieurs tables. Les expressions régulières sont prises en charge. Par exemple, `--including-tables table1

tbl.*` spécifie que table1 et toutes les tables dont les noms commencent par tbl sont synchronisées.

excluding-tables

Les tables que vous ne souhaitez pas synchroniser. La méthode de configuration est la même que celle du paramètre including-tables.

mysql-conf

La configuration de la source MySQL CDC. Pour plus d'informations, consultez Connecteur MySQL CDC. Les paramètres hostname, username, password et database-name sont requis.

sink-conf

Toutes les configurations pour le puits Doris. Pour plus d'informations, consultez Utiliser Flink pour importer des données.

table-conf

Les éléments de configuration pour une table SelectDB. Ils correspondent au contenu de la clause PROPERTIES d'une instruction CREATE TABLE.

Remarque
  1. Pour synchroniser les données, ajoutez les dépendances Flink CDC requises, telles que flink-sql-connector-mysql-cdc-${version}.jar et flink-sql-connector-oracle-cdc-${version}.jar, au répertoire $FLINK_HOME/lib.

  2. La synchronisation au niveau de la base de données nécessite Flink 1.15 ou une version ultérieure. Pour les téléchargements de Flink Doris Connector, consultez Flink Doris Connector.

Migrer des données avec un catalogue

La fonctionnalité de catalogue dans SelectDB utilise des requêtes fédérées pour accéder à MySQL, simplifiant ainsi la migration des données historiques. L'exemple suivant synchronise des données d'une base de données MySQL vers ApsaraDB for SelectDB. Pour plus d'informations, consultez Source de données JDBC.

Procédure

  1. Connectez-vous à l'instance SelectDB. Pour plus d'informations, consultez Se connecter à une instance.

    Remarque

    L'instruction SWITCH ne fonctionne pas lorsque vous vous connectez via DMS. Nous vous recommandons de vous connecter avec un client MySQL.

  2. Créez un catalogue MySQL JDBC.

    CREATE CATALOG jdbc_mysql PROPERTIES (
        "type"="jdbc",
        "user"="root",
        "password"="123456",
        "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo",
        "driver_url" = "mysql-connector-java-8.0.25.jar",
        "driver_class" = "com.mysql.cj.jdbc.Driver",
        "checksum" = "fdf55dcef04b09f2eaf42b75e61ccc9a"
    )

    Description des paramètres

    Paramètre

    Requis

    Par défaut

    Description

    user

    Oui

    Aucun

    Le compte de base de données.

    password

    Oui

    Aucun

    Le mot de passe du compte de base de données.

    jdbc_url

    Oui

    Aucun

    La chaîne de connexion JDBC.

    driver_url

    Oui

    Aucun

    Le nom de fichier du package JAR du pilote JDBC.

    driver_class

    Oui

    Aucun

    Le nom de classe du pilote JDBC.

    lower_case_table_names

    Non

    "false"

    Spécifie s'il faut synchroniser les noms de bases de données et de tables de la source de données JDBC externe en minuscules.

    only_specified_database

    Non

    "false"

    Spécifie s'il faut synchroniser uniquement les bases de données spécifiées.

    include_database_list

    Non

    ""

    Lorsque only_specified_database=true, spécifie une liste de bases de données séparées par des virgules à synchroniser. Les noms de bases de données sont sensibles à la casse.

    exclude_database_list

    Non

    ""

    Lorsque only_specified_database=true, spécifie une liste de bases de données séparées par des virgules à exclure de la synchronisation. Les noms de bases de données sont sensibles à la casse.

    1. Créez la table de destination dans SelectDB, puis utilisez l'instruction INSERT INTO ... SELECT pour synchroniser les données. Pour plus d'informations sur INSERT INTO, consultez INSERT INTO.

    # Create the destination table.
    CREATE TABLE selectdb_table ...
    
    # Migrate data.
    INSERT INTO selectdb_table SELECT * FROM mysql_catalog.mysql_database.mysql_table;