Todos os produtos
Search
Central de documentação

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

Última atualização: Sep 20, 2026

O Data Transmission Service (DTS) permite migrar dados de um cluster PolarDB for MySQL para um cluster ApsaraDB for ClickHouse, viabilizando a análise centralizada dos seus dados operacionais.

Etapas mínimas para concluir esta migração:

  1. Atenda aos pré-requisitos (versão do cluster ClickHouse, log binário, se necessário).

  2. Conceda as permissões necessárias nos bancos de dados source e de destino.

  3. Crie e configure uma tarefa de migração do DTS.

  4. Execute a pré-verificação, adquira uma instância e inicie a migração.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • Um cluster ApsaraDB for ClickHouse executando a versão 20.8 ou posterior. Consulte Crie um cluster.

  • Um cluster ClickHouse com espaço de armazenamento maior que o espaço de armazenamento utilizado pelo cluster PolarDB for MySQL source.

  • Para migração incremental de dados: log binário ativado no cluster source, com o parâmetro loose_polar_log_bin definido como on. Consulte Enable binary logging e Modifique parâmetros.

Ativar o log binário em um cluster PolarDB for MySQL gera cobranças de armazenamento para os arquivos de log binário. Defina o período de retenção do log binário para pelo menos 3 dias (7 dias recomendados) para evitar que o DTS perca o acesso aos logs. Consulte Modifique o período de retenção .

Faturamento

Tipo de migração

Taxa de configuração do link

Custo de transferência de dados

Migração de schema + migração completa de dados

Sem custo

Sem custo

Migração incremental de dados

Cobrança aplicável

Consulte Billing overview

Permissões necessárias

Conceda as seguintes permissões antes de configurar a tarefa de migração.

Banco de dados

Permissões necessárias

Como conceder

Cluster PolarDB for MySQL source

Permissões de leitura nos objetos de migração

Crie e gerencie uma conta de banco de dados e Manage the password of a database account

Cluster ApsaraDB for ClickHouse de destino (v22.8 ou posterior)

Permissões de leitura e gravação — uma conta privilegiada atende a esse requisito

Account management for Community-compatible Edition clusters

Cluster ApsaraDB for ClickHouse de destino (v21.8)

Permissões de leitura, gravação e configuração, e ativação de DDL

Igual ao anterior

Limitações

Limites do banco de dados source

  • A largura de banda de saída do servidor do banco de dados source deve ser suficiente; a largura de banda baixa reduz a velocidade da migração.

  • Uma única tarefa de migração suporta no máximo 1.000 tabelas ao migrar no nível de tabela com mapeamento de nomes de objetos. Caso ultrapasse esse limite, divida as tabelas em várias tarefas ou migre no nível do banco de dados.

  • Durante a migração de schema e a migração completa de dados, não execute operações DDL no banco de dados source para evitar falhas na tarefa de migração.

Durante a migração completa de dados, o DTS consulta o banco de dados source e pode criar um bloqueio de metadados que impede temporariamente as operações DDL.
  • Caso execute apenas a migração completa de dados (sem migração incremental), não grave novos dados no banco de dados source durante a migração para evitar inconsistência de dados.

Outros limites

  • Os nós somente leitura do cluster PolarDB for MySQL source não podem ser migrados.

  • Tabelas externas do Object Storage Service (OSS) não são migradas.

  • Não há suporte para os seguintes tipos de objetos: INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER e FOREIGN KEY (FK).

  • Não há suporte para failover primário/standby durante a migração completa de dados. Caso ocorra um failover, reconfigure a tarefa de migração.

  • A operação RENAME TABLE não pode ser migrada.

  • O limite máximo de bancos de dados para migração é 256 (limite do ApsaraDB for ClickHouse).

  • Os nomes de bancos de dados, tabelas e colunas devem estar em conformidade com ApsaraDB for ClickHouse naming conventions.

  • A Chave de Partição não pode ser um campo anulável e aceita apenas os tipos de dados BIGINT, INT, TIMESTAMP, DATETIME e DATE.

  • Os dados de data e hora no ApsaraDB for ClickHouse possuem limites de intervalo específicos. Consulte Intervalos de tipos de dados de data e hora para obter detalhes.

  • Quando a migração de schema está ativada, o DTS adiciona automaticamente os campos _sign, _is_deleted e _version às tabelas de destino. Caso pule a migração de schema, crie as tabelas de destino manualmente com esses campos. Consulte Requisitos da tabela de destino.

  • Durante a migração do DTS, não grave dados de outras origens no banco de dados de destino para evitar inconsistência de dados.

  • Caso uma instância do DTS falhe, a equipe do DTS tentará recuperá-la em até 8 horas. As operações de recuperação podem incluir a reinicialização da instância e o ajuste de parâmetros da instância do DTS (os parâmetros do banco de dados nunca são modificados).

  • Antes da migração, avalie o desempenho de ambos os bancos de dados e execute a migração em horários de baixa demanda para reduzir a carga.

  • Caso esteja migrando tabelas específicas (e não um banco de dados inteiro), não use o pt-online-schema-change para alterações DDL online nessas tabelas para evitar falhas na migração. Use o Data Management (DMS). Consulte Alterar schemas sem bloquear tabelas.

  • Não há suporte para a migração de dados do tipo VECTOR.

Limites de DDL online

Ferramenta ou modo

Comportamento

DMS ou gh-ost (alterações DDL online no source)

O DTS migra a instrução DDL original para o destino sem migrar os dados da tabela temporária, o que pode causar bloqueios de tabela no destino.

pt-online-schema-change

Não há suporte. Podem ocorrer perdas de dados no destino ou falhas na instância de migração.

DDL online no modo de tabela temporária (incluindo mesclagem de várias tabelas)

Podem ocorrer perdas de dados no destino ou falhas na instância de migração.

Sintaxe DDL do MySQL não padrão no source

A migração pode falhar ou pode haver perda de dados.

Operações SQL suportadas para migração incremental

Tipo de operação

Instruções SQL suportadas

Instruções SQL não suportadas

DML

INSERT, UPDATE, DELETE

—

DDL

CREATE TABLE, TRUNCATE TABLE, DROP TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN

RENAME TABLE; todas as operações DDL relacionadas a INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER e FOREIGN KEY

Mapeamentos de tipos de dados

Como o PolarDB for MySQL e o ApsaraDB for ClickHouse suportam tipos de dados diferentes, nem sempre é possível fazer um mapeamento um para um. Durante a migração de schema, o DTS mapeia os tipos de dados do source para os tipos mais próximos suportados pelo ClickHouse. Consulte Data type mappings between heterogeneous databases para ver a tabela de mapeamento completa.

Crie uma tarefa de migração

Etapa 1: Acessar a página Data Migration

Use um dos seguintes consoles.

Console do DTS

  1. Acesse o console do DTS.

  2. No painel de navegação à esquerda, clique em Data Migration.

  3. No canto superior esquerdo, selecione a região da instância de migração.

Console do DMS

As etapas exatas podem variar conforme o modo e o layout do seu console do DMS. Consulte Modo simples e Personalizar o layout e o estilo do console do DMS .
  1. Acesse o console do DMS.

  2. Na barra de navegação superior, passe o ponteiro sobre Data + AI > DTS (DTS) > Data Migration.

  3. Na lista suspensa ao lado de Data Migration Tasks, selecione a região da instância de migração.

Etapa 2: Configurar os bancos de dados source e de destino

Clique em Create Task e configure os seguintes parâmetros.

Categoria

Parâmetro

Descrição

—

Task Name

Nome da tarefa do DTS. O DTS gera um nome automaticamente. Especifique um nome descritivo para facilitar a identificação. O nome não precisa ser único.

Source Database

Select Existing Connection

Selecione uma instância de banco de dados registrada na lista suspensa. O DTS preencherá os parâmetros restantes automaticamente. Caso a instância não esteja registrada, preencha os parâmetros manualmente. No console do DMS, use a lista suspensa Select a DMS database instance.

Database Type

Selecione PolarDB for MySQL.

Access Method

Selecione Alibaba Cloud Instance.

Instance Region

Selecione a região do cluster PolarDB for MySQL source.

Replicate Data Across Alibaba Cloud Accounts

Selecione No para migração na mesma conta.

PolarDB Cluster ID

Selecione o ID do cluster PolarDB for MySQL source.

Database Account

Insira a conta do banco de dados. Consulte Permissões necessárias.

Database Password

Insira a senha da conta do banco de dados.

Encryption

Selecione o método de criptografia desejado. Para criptografia Secure Sockets Layer (SSL), consulte Defina a criptografia SSL.

Destination Database

Select Existing Connection

Igual ao source: selecione uma instância registrada ou preencha os parâmetros manualmente.

Database Type

Selecione ClickHouse.

Access Method

Selecione Alibaba Cloud Instance.

Instance Region

Selecione a região do cluster ApsaraDB for ClickHouse de destino.

Replicate Data Across Alibaba Cloud Accounts

Selecione No para migração na mesma conta.

Cluster Type

Selecione o tipo de cluster ApsaraDB for ClickHouse.

Cluster ID

Selecione o ID do cluster ApsaraDB for ClickHouse de destino.

Database Account

Insira a conta do banco de dados. Consulte Permissões necessárias.

Database Password

Insira a senha da conta do banco de dados.

Clique em Test Connectivity and Proceed.

Certifique-se de adicionar os blocos CIDR dos servidores do DTS às configurações de segurança (lista de permissões) de ambos os bancos de dados. Consulte Adicionar endereços IP do servidor DTS a uma lista de permissões .

Etapa 3: Configurar os objetos de migração

Na página Configure Objects, defina os seguintes parâmetros.

Parâmetro

Descrição

Migration Types

Selecione os tipos de migração de acordo com o seu objetivo: <br>• Schema Migration + Full Data Migration: cópia única de dados, sem replicação contínua. <br>• Schema Migration + Full Data Migration + Incremental Data Migration: replicação contínua que mantém o destino sincronizado enquanto o source permanece ativo. <br><br>

Nota

Caso pule a Schema Migration, crie as tabelas de destino manualmente antes de iniciar. Caso pule a Incremental Data Migration, evite gravar dados no banco de dados source durante a migração.

Processing Mode of Conflicting Tables

Precheck and Report Errors (padrão): a pré-verificação falhará se as tabelas de destino compartilharem nomes com as tabelas source. Use o mapeamento de nomes de objetos para renomear as tabelas, se necessário. <br><br>Ignore Errors and Proceed: ignora a verificação. Durante a migração completa de dados, os registros conflitantes no destino são mantidos; durante a migração incremental, eles são sobrescritos. Se os schemas forem diferentes, apenas as colunas correspondentes serão migradas. Use com cautela.

Capitalization of Object Names in Destination Instance

Controla o uso de maiúsculas e minúsculas nos nomes de bancos de dados, tabelas e colunas no destino. O padrão é DTS default policy. Consulte Especifique a capitalização dos nomes de objetos na instância de destino.

Source Objects

Selecione bancos de dados ou tabelas na seção Source Objects e clique no ícone de seta para adicioná-los aos Selected Objects.

Selected Objects

Clique com o botão direito do mouse em um objeto para renomeá-lo. Clique em Batch Edit para renomear vários objetos simultaneamente. Clique com o botão direito do mouse em uma tabela e defina condições de filtro de dados. Consulte Mapear nomes de objetos e Defina as condições de filtro

Para selecionar as operações SQL de uma tabela, clique com o botão direito do mouse no objeto correspondente na caixa Selected Objects e selecione as operações desejadas na caixa de diálogo exibida. Para obter a lista de operações suportadas, consulte SQL operations that can be incrementally migrated.

.

Etapa 4: Definir as configurações avançadas

Clique em Next: Advanced Settings e defina os seguintes parâmetros.

Parâmetro

Descrição

Dedicated Cluster for Task Scheduling

Por padrão, o DTS agenda a tarefa no cluster compartilhado. Adquira um cluster dedicado para melhorar a estabilidade. Consulte O que é um cluster dedicado do DTS.

Time zone of destination database

O fuso horário para dados de data e hora (como DateTime) gravados no cluster ClickHouse de destino.

Retry Time for Failed Connections

Tempo durante o qual o DTS tentará reconectar após uma falha de conexão antes de interromper a tarefa. Intervalo: 10 a 1.440 minutos. Padrão: 720 minutos. Defina um valor maior que 30 minutos. <br><br>

Nota

Caso várias tarefas compartilhem o mesmo banco de dados source ou de destino, o valor definido mais recentemente entrará em vigor. O DTS cobra pela instância durante as novas tentativas.

Retry Time for Other Issues

Tempo durante o qual o DTS tentará executar novamente operações DDL ou DML com falha antes de interromper a tarefa. Intervalo: 1 a 1.440 minutos. Padrão: 10 minutos. Defina um valor maior que 10 minutos. Deve ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Migration

Limita a carga de leitura e gravação no source e no destino durante a migração completa de dados. Configure Queries per second (QPS) to the source database, rows per second (RPS) of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Migration estiver selecionado.

Enable Throttling for Incremental Data Migration

Limita a carga durante a migração incremental de dados. Configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s). Disponível apenas quando Incremental Data Migration estiver selecionado.

Whether to delete SQL operations on heartbeat tables of forward and reverse tasks

Controla se o DTS grava operações SQL da tabela de heartbeat no source enquanto a instância está em execução. Yes: as gravações de heartbeat são suprimidas, mas um indicador de latência pode ser exibido. No: as gravações de heartbeat são ativadas, o que pode afetar o backup físico e a clonagem do banco de dados source.

Environment Tag

Uma tag opcional para identificar o ambiente (por exemplo, produção ou teste).

Configure ETL

Ativa o recurso de extração, transformação e carregamento (ETL). Yes: insira instruções de processamento de dados no editor de código. Consulte Configurar ETL em uma tarefa de migração de dados ou sincronização de dados. No: pule a configuração de ETL.

Monitoring and Alerting

Configura alertas para falhas de tarefa ou latência acima do limiar. Yes: defina o limiar de alerta e os contatos de notificação. Consulte Configurar monitoramento e alertas. No: não configura alertas.

Etapa 5: Configurar os campos da tabela para o ClickHouse

Clique em Next: Configure Database and Table Fields e defina os parâmetros Type, Primary Key Column, Sort Key, Distribution Key e Partition Key para cada tabela migrada.

O DTS fornece configurações padrão. Revise-as ou modifique-as, defina Definition Status como All.

Regras principais:

  • Primary Key Column e Sort Key aceitam chaves compostas: selecione vários campos nas listas suspensas.

  • Selecione uma ou mais colunas da Primary Key Column para atuar como Partition Key.

  • A Distribution Key aceita apenas um único campo.

  • Deixe a Partition Key em branco se não for necessária, mas não selecione um campo anulável para evitar falhas na tarefa de migração.

  • As chaves de partição aceitam apenas BIGINT, INT, TIMESTAMP, DATETIME e DATE. Consulte Partition key calculation logic.

Para obter mais informações sobre chaves primárias, chaves de classificação e chaves de partição, consulte CREATE TABLE.

Etapa 6: Execute a pré-verificação e inicie a migração

  1. Clique em Next: Save Task Settings and Precheck. Visualize os parâmetros da API para esta tarefa, passe o ponteiro do mouse sobre Próximo: Salve as configurações da tarefa e faça a pré-verificação e clique em Preview OpenAPI parameters antes de continuar.

  2. O DTS executa uma pré-verificação antes de iniciar a migração. Caso a pré-verificação falhe:

    • Clique em View Details ao lado de cada item com falha, corrija o problema e clique em Precheck Again.

    • Caso um item exiba um aviso (e não uma falha) e você possa aceitar o risco, clique em Confirm Alert Details > Ignore > OK e, em seguida, clique em Precheck Again.

    Importante

    Ignorar um alerta de pré-verificação pode causar inconsistência de dados.

Etapa 7: Adquirir a instância e iniciar a migração

  1. Aguarde até que a Success Rate atinja 100% e clique em Next: Purchase Instance.

  2. Na página Purchase Instance, configure os seguintes parâmetros.

    Seção

    Parâmetro

    Descrição

    New Instance Class

    Resource Group

    O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte O que é o Resource Management?

    Instance Class

    A classe da instância determina a velocidade da migração. Consulte Classes de instâncias de migração de dados.

  3. Leia e aceite os Data Transmission Service (Pay-as-you-go) Service Terms e clique em Buy and Start > OK.

Visualize o progresso da migração na página Data Migration.

Caso a tarefa não inclua migração incremental de dados, ela será interrompida automaticamente após a conclusão. A coluna Status exibirá Completed .
Caso a tarefa inclua migração incremental de dados, ela será executada continuamente e não será interrompida automaticamente. A coluna Status exibirá Running .

Consultar os dados migrados

Após a migração, execute a seguinte consulta para recuperar dados do cluster ClickHouse de destino e atualize suas aplicações conforme necessário:

SELECT * FROM <table_name> FINAL WHERE _sign > 0;
  • O modificador FINAL desduplica linhas com as mesmas chaves de classificação e garante a exibição da versão mais recente de cada linha.

  • A cláusula WHERE _sign > 0 filtra as linhas excluídas.

Sem o FINAL, as consultas podem retornar registros duplicados ou excluídos.

Apêndice

Requisitos da tabela de destino

Caso pule a migração de schema e crie as tabelas de destino manualmente, as tabelas deverão atender aos seguintes requisitos.

Importante

Caso uma tabela de destino inclua o parâmetro ENGINE, defina-o como ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Qualquer outra configuração de mecanismo pode causar inconsistência de dados.

Edição do cluster

Requisito de criação de tabela

Community-compatible Edition

Crie uma tabela local e uma tabela distribuída. O nome da tabela distribuída deve corresponder ao nome da tabela source. O nome da tabela local deve seguir o formato <distributed_table_name>_local.

Enterprise Edition

Crie uma tabela com o mesmo nome da tabela source.

Campos extras adicionados pelo DTS

O DTS adiciona automaticamente os seguintes campos a cada tabela de destino durante a migração de schema.

Para consultar dados sincronizados, use:

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

Versão do cluster

Campo

Tipo de dados

Valor padrão

Descrição

Community-compatible Edition executando ClickHouse V23.8 ou anterior

_sign

Int8

1

Tipo de operação DML: INSERT ou UPDATE = 1; DELETE = -1.

_version

UInt64

1

Timestamp de gravação do registro no cluster ClickHouse.

Enterprise Edition ou Community-compatible Edition executando ClickHouse V23.8 ou posterior

_sign

Int8

1

Tipo de operação DML: INSERT ou UPDATE = 1; DELETE = -1.

_is_deleted

UInt8

0

Indica se o registro foi excluído: INSERT ou UPDATE = 0; DELETE = 1.

_version

UInt64

1

Timestamp de gravação do registro no cluster ClickHouse.

Intervalos de tipos de dados de data e hora

Caso os dados de data e hora no cluster PolarDB for MySQL source estejam fora dos seguintes intervalos, os valores gravados no ApsaraDB for ClickHouse estarão incorretos.

Tipo de dados

Valor mínimo

Valor máximo

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

Lógica de cálculo da chave de partição

O DTS aplica a seguinte lógica ao derivar valores de chave de partição a partir dos campos source.

Tipo de campo source

Lógica de cálculo

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