Todos os produtos
Search
Central de documentação

ApsaraDB for SelectDB:Migrar dados do MySQL

Última atualização: Aug 28, 2026

Use DTS, Flink CDC, catalog ou DataWorks para migrar dados de fontes MySQL (como MySQL autogerenciado, ApsaraDB RDS for MySQL e PolarDB for MySQL) para o ApsaraDB for SelectDB. Escolha o método mais adequado com base no volume de dados e no seu caso de uso.

Comparação dos métodos de migração

DTS, DataWorks, Flink CDC e catalog permitem migrar dados do MySQL para o ApsaraDB for SelectDB, mas possuem capacidades diferentes. Selecione a opção que melhor se adapta ao seu cenário.

Método

Migração de dados históricos

Sincronização incremental de dados

Migração de schema

Migração de banco de dados

Sincronização de DDL

Verificação de dados

DTS

✔️

✔️

✔️

✔️

✔️

✔️

DataWorks

✔️

✔️

✔️

✔️

✔️

Flink CDC

✔️

✔️

✔️

✔️

✔️

catalog

✔️

As seções a seguir descrevem as etapas básicas de cada método. Para obter detalhes, consulte a documentação específica de cada um.

Pré-requisitos

Migrar dados com o DTS

O DTS oferece suporte à migração de dados históricos e à sincronização incremental de dados do MySQL para o ApsaraDB for SelectDB, com recursos como migração de bancos de dados e tabelas, sincronização de DDL e verificação de dados. O exemplo a seguir usa uma instância ApsaraDB RDS for MySQL. Para mais informações, consulte Use DTS to import data.

Procedimento

  1. Faça login no console do ApsaraDB for SelectDB.

  2. No canto superior esquerdo, selecione a região onde sua instância está localizada.

  3. Na página Instances, clique em Instance ID desejado para acessar a página Instance Details.

  4. No painel de navegação à esquerda, clique em Data Pipeline e selecione a aba Data Synchronization.

    Nota

    A sincronização de dados do DTS combina a migração de dados históricos para transferências únicas com a sincronização incremental para atualizações em tempo real.

  5. Clique em Create Synchronization Task e configure os bancos de dados de origem e destino.

  6. Categoria

    Configuração

    Descrição

    Informações da Tarefa

    Task Name

    O DTS gera automaticamente um nome para a tarefa. Recomendamos especificar um nome descritivo para facilitar a identificação. O nome não precisa ser único.

    Banco de Dados de Origem

    Database Type

    Selecione MySQL.

    Access Method

    Selecione Alibaba Cloud Instance.

    Instance Region

    Selecione a região onde a instância de origem ApsaraDB RDS for MySQL está localizada.

    RDS Instance ID

    Selecione o ID da instância de origem ApsaraDB RDS for MySQL. Exemplo: rm-2z3m****.

    Database Account

    Insira a conta do banco de dados da instância de origem ApsaraDB RDS for MySQL. Para as permissões necessárias, consulte Permissions required for database accounts.

    Database Password

    Insira a senha correspondente à conta do banco de dados.

    Encryption

    Selecione Non-encrypted ou SSL-encrypted conforme necessário. Se você selecionar SSL-encrypted, será necessário ativar a criptografia SSL para a instância RDS for MySQL antecipadamente. Para mais informações, consulte Use a cloud certificate to quickly enable SSL encryption.

    Banco de Dados de Destino

    Database Type

    Selecione SelectDB.

    Access Method

    Selecione Alibaba Cloud Instance.

    Instance Region

    Selecione a região onde a instância SelectDB de destino reside.

    Instance ID

    Selecione o ID da instância SelectDB de destino.

    Database Account

    Insira a conta do banco de dados da instância SelectDB de destino. Para as permissões necessárias, consulte Permissions required for database accounts.

    Database Password

    Insira a senha correspondente à conta do banco de dados.

  7. Após concluir a configuração, clique em Test Connection and Proceed na parte inferior da página.

  8. Configure os objetos da tarefa e as configurações avançadas.

  9. Configuração

    Descrição

    Synchronization Types

    A opção Incremental Data Synchronization vem selecionada. Por padrão, também é necessário selecionar Schema Synchronization e Full Data Synchronization. Após a conclusão da pré-verificação, o DTS executa uma sincronização completa dos dados dos objetos selecionados da instância de origem para o cluster de destino. Isso serve como linha de base para a subsequente sincronização incremental de dados.

    Importante

    Os tipos de dados são convertidos durante a sincronização do MySQL para o SelectDB. Se você não selecionar Schema Synchronization, crie previamente uma tabela com o schema correspondente usando o modelo Unique Key na instância SelectDB de destino. Para mais informações, consulte Data type mappings e Data model.

    Source Objects

    Na caixa Source Objects, clique nos objetos que deseja sincronizar e, em seguida, clique em 向右 para movê-los para a caixa Selected Objects. É possível selecionar objetos no nível de banco de dados, tabela ou coluna.

    Importante
    • Se você selecionar objetos no nível de banco de dados, o DTS não sincronizará dados de tabelas criadas após o início da tarefa. Caso planeje adicionar tabelas durante a sincronização, selecione os objetos no nível de tabela. Posteriormente, é possível alterar a seleção usando Modify Synchronized Objects.

    • Ao selecionar objetos no nível de tabela e precisar editá-los, como mapear nomes de tabelas ou colunas, uma única tarefa de sincronização suporta no máximo 1.000 tabelas. Se esse limite for excedido, um erro será reportado ao enviar a tarefa. Nesse caso, divida as tabelas a serem sincronizadas em lotes e configure múltiplas tarefas ou configure uma tarefa de sincronização no nível de banco de dados.

    Selected Objects

    • Para renomear um único objeto de sincronização na instância de destino, clique com o botão direito no objeto dentro da caixa Selected Objects. Para mais informações sobre como renomear objetos, consulte Map a single database, table, or column.

    • Para alterar em lote os nomes de vários objetos de sincronização na instância de destino, clique em Batch Edit no canto superior direito da caixa Selected Objects. Para mais informações, consulte Map databases, tables, and columns in a batch.

    Nota
    • Para selecionar as operações SQL a serem sincronizadas no nível de banco de dados ou tabela, clique com o botão direito no objeto a ser sincronizado na caixa Selected Objects e selecione as operações SQL desejadas na caixa de diálogo exibida. Para uma lista de operações suportadas, consulte SQL operations that support incremental synchronization.

    • Para filtrar dados usando uma cláusula WHERE, clique com o botão direito na tabela a ser sincronizada na caixa Selected Objects e defina a condição de filtro na caixa de diálogo exibida. Para mais informações, consulte Set filter conditions.

    • Se você usar o recurso de mapeamento de nomes de objetos, outros objetos dependentes do objeto remapeado podem falhar na sincronização.

  10. Opcional: Após concluir as configurações anteriores, clique em Next: Configure Database and Table Fields para definir a Primary Key Column, a Distribution Key e o Engine das tabelas de destino.

  11. Nota
    • Esta etapa está disponível apenas quando você seleciona Synchronization Types como Schema Synchronization durante a configuração dos objetos da tarefa. Defina o Definition Status como All e modifique as configurações.

    • É possível selecionar várias colunas para formar uma Primary Key Column composta. Selecione obrigatoriamente uma ou mais colunas da Primary Key Column como Distribution Key. Para o Engine, apenas Unique é suportado.

  12. Salve a tarefa e execute a pré-verificação. Quando a Precheck Success Rate atingir 100%, clique em Next: Purchase.

  13. Na página Purchase, selecione o método de faturamento e a especificação de link para a instância de sincronização de dados. Leia e selecione os Data Transmission Service (Pay-As-You-Go) Service Terms. Clique em Purchase and Start para iniciar a tarefa de sincronização. Visualize o progresso da tarefa na página de sincronização de dados.

Migrar dados com o DataWorks

O DataWorks Data Integration permite sincronizar dados do MySQL para o ApsaraDB for SelectDB. Para mais informações, consulte Import data by using DataWorks.

Importante

Não há suporte para escrita em campos dos tipos de dados BITMAP, HLL (HyperLogLog) ou QUANTILE_STATE.

Adicionar fontes de dados

Ao desenvolver uma tarefa de sincronização de dados, crie uma fonte de dados MySQL e uma fonte de dados SelectDB no DataWorks.

  1. Crie uma fonte de dados MySQL. Para mais informações, consulte MySQL data source.

  2. Crie uma fonte de dados SelectDB. Para mais informações, consulte Data source management. A tabela a seguir descreve alguns parâmetros de configuração da fonte de dados SelectDB.

    Parâmetro

    Descrição

    Data Source Name

    Nome da fonte de dados.

    MySQL Connection URL

    Insira a string de conexão JDBC jdbc:mysql://<ip>:<port>/<dbname>.

    Obtenha o VPC Endpoint (ou Public Endpoint) e a MySQL Port na página Instance Details > Network Information no console do ApsaraDB for SelectDB.

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

    HTTP Connection URL

    Insira o endpoint do protocolo HTTP no formato <ip>:<port>.

    Obtenha o VPC Endpoint (ou Public Endpoint) e a HTTP Port na página Instance Details > Network Information no console do ApsaraDB for SelectDB.

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

    Username

    Insira o nome de usuário da instância ApsaraDB for SelectDB.

    Password

    Insira a senha do usuário especificado da instância ApsaraDB for SelectDB.

Configurar a sincronização de dados

Para configurar uma tarefa de migração de dados, consulte os seguintes documentos:

Migrar dados com Flink CDC

O Flink oferece três métodos para migrar dados do MySQL para o SelectDB: Flink SQL, Flink CDC e DataStream. O Flink CDC oferece suporte à migração de dados históricos, sincronização incremental de dados, migração de bancos de dados e tabelas, além de sincronização de DDL. O exemplo a seguir usa o Flink CDC para sincronizar dados do MySQL para o ApsaraDB for SelectDB. Para mais informações, consulte Use Flink to import data.

Procedimento

Preparar o ambiente

Configure um ambiente Flink. Este exemplo usa um ambiente standalone do Flink 1.16.

  1. Baixe e descompacte o arquivo flink-1.16.3-bin-scala_2.12.tgz. Se esta versão não estiver disponível, baixe outra. Para mais versões, consulte 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. Acesse o diretório FLINK_HOME/lib e baixe os arquivos flink-sql-connector-mysql-cdc-2.4.2 e 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. Inicie o cluster Flink Standalone.

    bin/start-cluster.sh
  4. Crie uma instância ApsaraDB for SelectDB. Para mais informações, consulte Create an instance.

  5. Conecte-se à instância ApsaraDB for SelectDB via protocolo MySQL. Para mais informações, consulte Connect to an instance.

  6. Crie um banco de dados de teste e uma tabela de teste.

    1. Crie um banco de dados de teste.

      CREATE DATABASE test_db;
    2. Crie uma tabela de teste.

      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;

Enviar uma tarefa Flink CDC

Use a sintaxe abaixo para enviar uma tarefa 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=****

Parâmetro

Descrição

execution.checkpointing.interval

Intervalo de checkpoint do Flink, que afeta a frequência de sincronização de dados. Recomenda-se o valor de 10s.

parallelism.default

Paralelismo da tarefa Flink. Aumente o paralelismo para melhorar o throughput da sincronização de dados.

database

Nome do banco de dados de destino no SelectDB.

including-tables

Tabelas MySQL a serem sincronizadas. Use uma barra vertical (

) para separar múltiplas tabelas. Expressões regulares são suportadas. Por exemplo, `--including-tables table1

tbl.*` especifica que a table1 e todas as tabelas cujos nomes começam com tbl serão sincronizadas.

excluding-tables

Tabelas que não devem ser sincronizadas. O método de configuração é o mesmo do parâmetro including-tables.

mysql-conf

Configuração da fonte MySQL CDC. Para mais informações, consulte MySQL CDC Connector. Os parâmetros hostname, username, password e database-name são obrigatórios.

sink-conf

Todas as configurações para o sink do Doris. Para mais informações, consulte Use Flink to import data.

table-conf

Itens de configuração para uma tabela SelectDB. Correspondem ao conteúdo dentro da cláusula PROPERTIES de uma instrução CREATE TABLE.

Nota
  1. Para sincronizar dados, adicione as dependências necessárias do Flink CDC, como flink-sql-connector-mysql-cdc-${version}.jar e flink-sql-connector-oracle-cdc-${version}.jar, ao diretório $FLINK_HOME/lib.

  2. A sincronização no nível de banco de dados requer Flink 1.15 ou posterior. Para downloads do Flink Doris Connector, consulte Flink Doris Connector.

Migrar dados com um catalog

O recurso de catalog no SelectDB usa consultas federadas para acessar o MySQL, simplificando a migração de dados históricos. O exemplo a seguir sincroniza dados de um banco de dados MySQL para o ApsaraDB for SelectDB. Para mais informações, consulte JDBC data source.

Procedimento

  1. Conecte-se à instância SelectDB. Para mais informações, consulte Connect to an instance.

    Nota

    A instrução SWITCH não funciona ao conectar via DMS. Recomendamos a conexão por meio de um cliente MySQL.

  2. Crie um catalog JDBC do MySQL.

    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"
    )

    Descrição dos parâmetros

    Parâmetro

    Obrigatório

    Padrão

    Descrição

    user

    Sim

    Nenhum

    Conta do banco de dados.

    password

    Sim

    Nenhum

    Senha da conta do banco de dados.

    jdbc_url

    Sim

    Nenhum

    String de conexão JDBC.

    driver_url

    Sim

    Nenhum

    Nome do arquivo do pacote JAR do driver JDBC.

    driver_class

    Sim

    Nenhum

    Nome da classe do driver JDBC.

    lower_case_table_names

    Não

    "false"

    Define se os nomes de bancos de dados e tabelas da fonte de dados JDBC externa devem ser sincronizados em letras minúsculas.

    only_specified_database

    Não

    "false"

    Define se apenas os bancos de dados especificados devem ser sincronizados.

    include_database_list

    Não

    ""

    Quando only_specified_database=true, especifica uma lista separada por vírgulas dos bancos de dados a serem sincronizados. Os nomes dos bancos de dados diferenciam maiúsculas de minúsculas.

    exclude_database_list

    Não

    ""

    Quando only_specified_database=true, especifica uma lista separada por vírgulas dos bancos de dados a serem excluídos da sincronização. Os nomes dos bancos de dados diferenciam maiúsculas de minúsculas.

    1. Crie a tabela de destino no SelectDB e use a instrução INSERT INTO ... SELECT para sincronizar os dados. Para mais informações sobre INSERT INTO, consulte INSERT INTO.

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