Todos os produtos
Search
Central de documentação

Data Transmission Service:Sincronizar dados de um banco de dados TiDB autogerenciado para um cluster AnalyticDB for MySQL V3.0

Última atualização: Jul 03, 2026

Use o Data Transmission Service (DTS) para sincronizar dados de um banco de dados TiDB autogerenciado para um cluster AnalyticDB for MySQL V3.0 e permitir análises em tempo real.

Como funciona

O DTS lê alterações incrementais do TiDB por meio de um cluster Kafka, que atua como buffer de captura de dados de alteração (CDC), e grava os dados no AnalyticDB for MySQL V3.0. O pipeline completo é:

TiDB → Cluster Kafka → DTS → AnalyticDB for MySQL V3.0

O TiDB não expõe logs binários diretamente ao DTS. Configure um dos seguintes componentes de CDC para publicar alterações incrementais em um tópico Kafka:

  • TiDB Binlog — usa os componentes Pump e Drainer

  • TiCDC — usa o formato Canal-JSON

O DTS lê a partição 0 do tópico Kafka e aplica as alterações no cluster de destino.

Limitações

Analise estas limitações antes de configurar a tarefa.

Limites do banco de dados de origem

Limite

Detalhes

Chave primária ou restrição UNIQUE obrigatória

As tabelas a serem sincronizadas devem ter uma chave primária (PRIMARY KEY) ou restrição UNIQUE com todos os campos únicos. Tabelas sem essa restrição podem gerar registros duplicados no destino.

Restrições de DDL durante a sincronização

Não execute instruções DDL que alterem esquemas de banco de dados ou tabelas durante a sincronização de esquema ou a sincronização completa de dados. A tarefa falhará.

Perda do tamanho do índice de prefixo

O TiDB não armazena o tamanho do índice de prefixo nos metadados. Esse tamanho se perde na sincronização para o AnalyticDB for MySQL V3.0, o que pode causar falha na instância de destino. Corrija manualmente os tamanhos de índices de prefixo em todas as tabelas que os utilizam.

Limite de tabelas por tarefa

Ao selecionar tabelas individuais (em vez de bancos de dados inteiros) e renomeá-las, uma única tarefa suporta até 1.000 tabelas. Se ultrapassar esse limite, configure múltiplas tarefas ou sincronize bancos de dados inteiros.

Configuração do Kafka obrigatória

Implante um cluster Kafka e instale o TiDB Binlog ou TiCDC antes de criar a tarefa do DTS.

Largura de banda de saída

O servidor que hospeda o TiDB deve ter largura de banda de saída suficiente. Largura de banda insuficiente reduz a velocidade de sincronização.

Limites de destino e da tarefa

Limite

Detalhes

Partição do Kafka

O DTS lê apenas a partição 0 do tópico Kafka. Crie o tópico com exatamente uma partição.

Chave primária personalizada obrigatória

Especifique uma chave primária personalizada no AnalyticDB for MySQL V3.0 ou configure a Primary Key Column na etapa Configurations for Databases, Tables, and Columns. Caso contrário, a tarefa poderá falhar.

Limiar de uso de disco

Se o uso de disco em qualquer nó do cluster AnalyticDB for MySQL V3.0 exceder 80%, a tarefa do DTS sofrerá atrasos e retornará erros. Estime o espaço em disco necessário antes de iniciar.

Conflitos de backup

Se houver backup do cluster de destino durante a execução do DTS, a tarefa falhará.

Tipos de dados heterogêneos

Os tipos de dados do TiDB e do AnalyticDB for MySQL V3.0 não possuem mapeamento um para um. Consulte Mapeamentos de tipos de dados para sincronização inicial de esquema para obter detalhes.

Precisão de FLOAT/DOUBLE

O DTS usa ROUND(COLUMN,PRECISION) para recuperar valores FLOAT e DOUBLE. FLOAT tem como padrão 38 dígitos de precisão; DOUBLE, 308 dígitos. Verifique se esses padrões atendem aos seus requisitos.

Visualizações materializadas não suportadas

Durante a sincronização de esquema, o DTS não oferece suporte à sincronização de visualizações materializadas para a instância AnalyticDB for MySQL de destino. Para usar visualizações materializadas, crie-as manualmente na instância de destino após a conclusão da sincronização.

Inicialização do offset da tarefa

Após criar a tarefa, realize operações no banco de dados de origem ou insira dados de teste prontamente para atualizar o offset da tarefa. Pular esta etapa pode causar falha devido à latência excessiva.

Dados de outras origens

Não grave dados no cluster de destino a partir de outras fontes durante a sincronização. Isso causa inconsistência de dados.

Retomada de tarefa com falha

O DTS tenta automaticamente retentar tarefas com falha por até 7 dias. Antes de alternar cargas de trabalho para o cluster de destino, pare ou libere quaisquer tarefas com falha. Alternativamente, execute REVOKE para remover as permissões de gravação do DTS no banco de dados de destino e impedir que uma tarefa retomada sobrescreva novos dados.

Desempenho da sincronização completa de dados

A sincronização completa de dados aumenta a carga tanto no banco de dados de origem quanto no de destino. Execute-a fora do horário de pico, quando o uso da CPU estiver abaixo de 30%.

Tamanho do tablespace após sincronização completa

Operações INSERT simultâneas durante a sincronização completa de dados causam fragmentação da tabela. O tablespace de destino será maior que o de origem.

Falhas de DDL

Se uma instrução DDL falhar no banco de dados de destino, a tarefa continuará. Verifique os logs da tarefa para visualizar as instruções DDL com falha.

SLA do suporte técnico do DTS

Se uma tarefa do DTS falhar na execução, o suporte técnico tentará restaurá-la em até 8 horas. Durante a restauração, a tarefa pode ser reiniciada e seus parâmetros modificados. Apenas os parâmetros da tarefa podem ser modificados — os parâmetros do banco de dados permanecem inalterados.

Nota
  • Se o destino for um cluster AnalyticDB for MySQL, o DTS suporta apenas a gravação de tipos de dados nativamente suportados pelo AnalyticDB for MySQL. Isso inclui tipos de dados básicos e tipos de dados complexos, como ARRAY, MAP e JSON. Tipos de dados como MULTIVALUE não são suportados.

Operações SQL para sincronização incremental

Tipo de operação

Instruções suportadas

DML

INSERT, UPDATE, DELETE

DDL

CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN

Ao gravar instruções UPDATE no AnalyticDB for MySQL V3.0, o DTS as converte automaticamente para REPLACE INTO . Se a instrução UPDATE afetar a chave primária, o DTS a converterá em DELETE seguido de INSERT.

Faturamento

Tipo de sincronização

Custo

Sincronização de esquema e sincronização completa de dados

Gratuito

Sincronização incremental de dados

Pago. Consulte Visão geral do faturamento.

Pré-requisitos

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

  • Um cluster AnalyticDB for MySQL V3.0 com armazenamento disponível maior que o tamanho total dos dados do seu banco de dados TiDB. Consulte Criar um cluster

  • Um cluster Kafka ou uma instância ApsaraMQ for Kafka implantada e acessível a partir do servidor TiDB

  • As permissões necessárias na conta do banco de dados (consulte Permissões necessárias)

Permissões necessárias

Banco de dados

Permissões necessárias

Referência

TiDB

SELECT nos objetos a serem sincronizados, SHOW VIEW

Gerenciamento de privilégios

AnalyticDB for MySQL V3.0

Permissões de leitura e gravação no banco de dados de destino

Criar uma conta de banco de dados

Configurar a captura incremental de dados

O DTS exige a publicação de eventos de alteração incremental do TiDB em um tópico Kafka. Escolha um dos métodos a seguir.

Escolher um método

TiDB Binlog

TiCDC

Componentes

Pump + Drainer

TiCDC (gerenciado via TiUP)

Formato de saída

Formato binlog padrão do TiDB

Formato Canal-JSON

Mais indicado para

Implantações existentes do TiDB Binlog

Novas configurações e TiDB v4.0+

Configuração do DTS

Usar o formato binlog padrão do banco de dados TiDB

Usar o formato TiCDC Canal-JSON

Preparar o cluster Kafka

Ambos os métodos requerem um cluster Kafka. Use uma das opções abaixo:

Independentemente da opção escolhida:

  • Implante o cluster Kafka na mesma rede ou Virtual Private Cloud (VPC) do servidor TiDB para minimizar a latência de rede.

  • Defina valores altos para os parâmetros do broker Kafka message.max.bytes e replica.fetch.max.bytes e defina um valor alto correspondente para o parâmetro do consumidor fetch.message.max.bytes. Isso garante que o cluster consiga lidar com o volume de dados de log binário do TiDB. Consulte a referência de configuração do Kafka.

Após configurar o cluster, crie um tópico com exactly one partition. O DTS lê apenas a partição 0; portanto, múltiplas partições causarão perda de dados.

Opção 1: TiDB Binlog

  1. Implante o Pump e o Drainer em servidores na mesma rede interna do TiDB. Consulte a Implantação de cluster do TiDB Binlog.

  2. Edite o arquivo de configuração do Drainer para apontar para o seu cluster Kafka como sink downstream. Consulte o Guia do usuário do Binlog Consumer Client. Verifique se o servidor TiDB consegue se conectar ao cluster Kafka antes de prosseguir.

  3. Adicione os blocos CIDR dos servidores DTS à lista de permissões do banco de dados TiDB. Consulte Adicionar os blocos CIDR dos servidores DTS.

Opção 2: TiCDC

  1. Instale o TiCDC usando o TiUP. Adicione um novo nó TiCDC ou escale horizontalmente um nó existente no cluster TiDB. Consulte Implantar e manter o TiCDC.

  2. Crie um changefeed para replicar dados incrementais do TiDB para o seu cluster Kafka. Use tiup cdc cli changefeed create e especifique a URI do sink Canal-JSON. Consulte Replicar dados para o Kafka. Verifique se o servidor TiDB consegue se conectar ao cluster Kafka antes de prosseguir.

Criar uma tarefa de sincronização de dados

Etapa 1: Acessar a página de Sincronização de Dados

Use o console do DTS ou o console do DMS.

Console do DTS

  1. Faça login no console do DTS.console do DTS

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

  3. No canto superior esquerdo, selecione a região onde a instância de sincronização residirá.

Console do DMS

As etapas podem variar dependendo do layout do console do DMS. Consulte Modo simples e Personalizar o layout e o estilo do console do DMS .
  1. Faça login no console do DMS.console do DMS

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

  3. Na lista suspensa à direita de Data Synchronization Tasks, selecione a região onde a instância de sincronização residirá.

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

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

Banco de dados de origem

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.

Select a DMS database instance

Selecione um banco de dados registrado existente ou deixe este campo em branco e preencha os parâmetros abaixo. Para registrar um banco de dados: no console do DMS, clique em Add DMS Database Instance; no console do DTS, use a página Database Connections. Consulte Registrar uma instância de banco de dados Alibaba Cloud e Registrar um banco de dados hospedado em um serviço de nuvem de terceiros ou um banco de dados autogerenciado.

Database Type

Selecione TiDB.

Access Method

Selecione o método de acesso correspondente ao local onde o TiDB está implantado. Este exemplo usa Self-managed Database on ECS. Para outros métodos de acesso, prepare o ambiente necessário primeiro. Consulte a Visão geral da preparação.

Instance Region

Região onde o TiDB reside.

ECS Instance ID

ID da instância ECS que hospeda o TiDB.

Port Number

Porta do serviço TiDB. Padrão: 4000.

Database Account

Conta do TiDB com as permissões necessárias.

Database Password

Senha da conta do TiDB.

Migrate Incremental Data

Sempre definido como Yes configurações de notificação de alerta. Isso não pode ser alterado. Para sincronizar sem dados incrementais, crie uma tarefa de migração de dados. Consulte Migrar dados de um banco de dados TiDB autogerenciado para um cluster AnalyticDB for MySQL V3.0.

Kafka Cluster Type

Selecione o método de acesso correspondente ao local onde seu cluster Kafka está implantado. Este exemplo usa Self-managed Database on ECS. Se você selecionar Express Connect, VPN Gateway, or Smart Access Gateway, selecione também uma VPC em Connected VPC e especifique o Domain Name or IP.

Kafka Data Source Component

Selecione Use the default binlog format of the TiDB database (para TiDB Binlog) ou Use the TiCDC Canal-JSON format (para TiCDC), com base no que você configurou em Configurar a captura incremental de dados.

ECS Instance ID

ID da instância ECS onde o cluster Kafka está implantado.

Port Number

Porta do serviço Kafka.

Kafka Cluster Account / Kafka Cluster Password

Nome de usuário e senha do Kafka. Deixe em branco se a autenticação não estiver habilitada.

Kafka Version

Versão do Kafka. Se a versão for 1,0 ou posterior, selecione 1.0.

Encryption

Selecione Non-encrypted ou SCRAM-SHA-256 com base nos seus requisitos de segurança.

Topic

Tópico Kafka que recebe dados incrementais do TiDB.

Banco de dados de destino

Parâmetro

Descrição

Select a DMS database instance

Selecione um banco de dados registrado existente ou deixe este campo em branco e preencha os parâmetros abaixo.

Database Type

Selecione AnalyticDB for MySQL 3.0.

Access Method

Selecione Alibaba Cloud Instance.

Instance Region

Região onde o cluster AnalyticDB for MySQL V3.0 reside.

Instance ID

ID do cluster AnalyticDB for MySQL V3.0 de destino.

Database Account

Conta do banco de dados com permissões de leitura e gravação.

Database Password

Senha da conta do banco de dados.

Etapa 3: Testar a conectividade

Clique em Test Connectivity and Proceed. Na caixa de diálogo CIDR Blocks of DTS Servers, clique em Test Connectivity.

Se os blocos CIDR do DTS ainda não tiverem sido adicionados às configurações de segurança do seu banco de dados, adicione-os antes de prosseguir. Consulte Adicionar os blocos CIDR dos servidores DTS.

Etapa 4: Configurar objetos para sincronização

Na etapa Configure Objects, defina os seguintes parâmetros.

Parâmetro Descrição
Synchronization Types Selecione Schema Synchronization, Full Data Synchronization e Incremental Data Synchronization. Todos os três são obrigatórios. Incremental Data Synchronization vem selecionado por padrão; selecione também os outros dois. A sincronização completa de dados fornece a linha de base de dados históricos para a sincronização incremental.
Processing Mode of Conflicting Tables Precheck and Report Errors (padrão): falha na pré-verificação se existirem tabelas com nomes idênticos no destino. Use o mapeamento de nomes de objetos para resolver conflitos sem excluir tabelas de destino. Consulte Mapear nomes de objetos. Ignore Errors and Proceed: ignora a pré-verificação para nomes de tabelas idênticos. Durante a sincronização completa, os registros existentes no destino são mantidos. Durante a sincronização incremental, os registros de destino são sobrescritos. Use com cautela — isso pode causar inconsistência de dados.
Capitalization of Object Names in Destination Instance Controla a capitalização dos nomes de bancos de dados, tabelas e colunas no destino. Padrão: DTS default policy. Consulte Especificar a capitalização dos nomes de objetos na instância de destino.
Source Objects Selecione os bancos de dados ou tabelas a serem sincronizados e clique no ícone de seta para movê-los para Selected Objects.
Selected Objects Para renomear um objeto no destino, clique com o botão direito nele e use o mapeamento de nomes de objetos. Para renomear vários objetos de uma vez, clique em Batch Edit. Para filtrar linhas com condições SQL WHERE, clique com o botão direito em uma tabela e especifique as condições. Consulte Especificar condições de filtro. Renomear um objeto pode quebrar objetos dependentes.

Etapa 5: Configurar definições avançadas

Clique em Next: Advanced Settings e configure o seguinte.

Parâmetro

Descrição

Dedicated Cluster for Task Scheduling

Por padrão, o DTS agenda tarefas em um cluster compartilhado, e não é necessário selecionar um cluster. Para um desempenho mais estável, adquira um cluster dedicado para executar tarefas de sincronização do DTS. Para mais informações, consulte O que é um cluster dedicado do DTS?.

Retry Time for Failed Connections

Tempo durante o qual o DTS tenta reconectar após falhas de conexão depois que a tarefa inicia. Intervalo: 10–1440 minutos. Padrão: 720 minutos. Defina como mais de 30 minutos. Se várias tarefas compartilharem o mesmo banco de dados de origem ou de destino, o menor tempo de nova tentativa terá precedência.

Retry Time for Other Issues

Tempo durante o qual o DTS tenta novamente operações DDL ou DML com falha. Intervalo: 1–1440 minutos. Padrão: 10 minutos. Defina como mais de 10 minutos. Este valor deve ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Synchronization

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

Enable Throttling for Incremental Data Synchronization

Limita a carga de gravação durante a sincronização incremental de dados. Configure RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s).

Environment Tag

Uma tag opcional para identificar a instância do DTS por ambiente (por exemplo, produção ou teste).

Configure ETL

Selecione Yes para habilitar extração, transformação e carga (ETL) e inserir instruções de processamento de dados. Selecione No para pular. Consulte O que é ETL?

Monitoring and Alerting

Selecione Yes para configurar alertas para falhas de tarefa ou violações de limiar de latência. Configure o limiar de alerta e as configurações de notificação. Consulte Configurar monitoramento e alertas.

Etapa 6: Configurar verificação de dados (opcional)

Clique em Next Step: Data Verification para configurar a verificação de dados. Consulte Configurar uma tarefa de verificação de dados.

Etapa 7: Configurar campos de banco de dados e tabelas (opcional)

Clique em Next: Configure Database and Table Fields para definir configurações específicas do AnalyticDB for MySQL V3.0 para cada tabela.

Esta etapa está disponível apenas quando Schema Synchronization estiver selecionado. Defina Definition Status como All para visualizar e modificar todas as tabelas.

Parâmetro

Descrição

Type

Tipo da tabela no AnalyticDB for MySQL V3.0.

Primary Key Column

Colunas de chave primária da tabela. Suporta chaves primárias compostas.

Distribution Key

Chave de distribuição da tabela. Deve ser uma ou mais das colunas de chave primária.

Partition Key / Partitioning Rules / Partition Lifecycle

Configurações de particionamento da tabela. Consulte CREATE TABLE.

Etapa 8: Salvar a tarefa e executar a pré-verificação

  • Para visualizar os parâmetros da API desta configuração de tarefa, passe o ponteiro sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters.

  • Clique em Next: Save Task Settings and Precheck para salvar e iniciar a pré-verificação.

Se a pré-verificação falhar:

  • Clique em View Details ao lado de cada item com falha, corrija o problema e execute a pré-verificação novamente.

  • Se um item mostrar um alerta que pode ser ignorado, clique em Confirm Alert Details, depois em Ignore, em seguida em OK e, por fim, em Precheck Again. Ignorar alertas pode causar inconsistência de dados.

Etapa 9: Adquirir uma instância

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

  2. Na página de compra, configure o seguinte.

Parâmetro

Descrição

Billing Method

Subscription: pagamento antecipado por um período fixo. Mais econômico para uso de longo prazo. Pay-as-you-go: faturamento por hora. Adequado para uso de curto prazo. Libere a instância quando não for mais necessária para evitar cobranças desnecessárias.

Resource Group Settings

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

Instance Class

Nível de velocidade de sincronização. Consulte Classes de instâncias de sincronização de dados.

Subscription Duration

Disponível para o método de faturamento por assinatura. Opções: 1–9 meses, 1 ano, 2 anos, 3 anos ou 5 anos.

  1. Leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.

  2. Clique em Buy and Start e, em seguida, clique em OK na caixa de diálogo de confirmação.

A tarefa aparecerá na lista de tarefas. Monitore o progresso dela nessa lista.

Próximos passos