Todos os produtos
Search
Central de documentação

Data Transmission Service:Sincronizar dados de um cluster PolarDB for MySQL para um banco de dados Doris autogerenciado

Última atualização: Sep 18, 2026

O Data Transmission Service (DTS) permite sincronizar dados continuamente de um cluster PolarDB for MySQL para um banco de dados Doris autogerenciado, ideal para análises em grande escala. Este tópico descreve a configuração usando um banco de dados Doris implantado em uma instância do Elastic Compute Service (ECS).

Pré-requisitos

Antes de começar, certifique-se de que possui:

  • Um banco de dados Doris de destino com espaço de armazenamento disponível maior que o espaço utilizado pelo cluster PolarDB for MySQL de origem

  • O log binário ativado no cluster PolarDB for MySQL de origem, com o parâmetro loose_polar_log_bin definido como ON. Consulte Enable binary logging e Modify parameters

  • Período de retenção do log binário de pelo menos três dias (sete dias recomendados)

  • Contas de banco de dados com as permissões necessárias (consulte Permissions required)

ative o log binário em um cluster PolarDB for MySQL gera cobranças de armazenamento para os arquivos de log binário.

Para as versões suportadas dos bancos de dados de origem e de destino, consulte Overview of data synchronization solutions.

Permissões necessárias

Banco de dados

Permissões necessárias

Referência

Cluster PolarDB for MySQL de origem

Permissões de leitura e gravação nos objetos a serem sincronizados

Create and manage a database account

Banco de dados Doris de destino

USAGE_PRIV e as seguintes: SELECT_PRIV, LOAD_PRIV, ALTER_PRIV, CREATE_PRIV, DROP_PRIV

Authentication and authorization

Faturamento

Tipo de sincronização

Custo

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

Gratuito

Sincronização incremental de dados

Pago. Consulte Billing overview

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

Tipo de operação

Instruções

DML (Data Manipulation Language)

INSERT, UPDATE, DELETE

DDL (Data Definition Language)

ADD COLUMN, MODIFY COLUMN, CHANGE COLUMN, DROP COLUMN, DROP TABLE, TRUNCATE TABLE, RENAME TABLE

Importante

A operação RENAME TABLE pode causar inconsistência de dados. Se você renomear uma tabela selecionada como objeto de sincronização, a sincronização de seus dados para o destino será interrompida. Para evitar isso, selecione o banco de dados inteiro como objeto de sincronização em vez de tabelas individuais e certifique-se de que a tabela original e a tabela renomeada pertençam a bancos de dados incluídos no escopo de sincronização.

Limitações

Banco de dados de origem

  • Tabelas com restrições PRIMARY KEY ou UNIQUE: todos os campos devem ser exclusivos, ou o destino poderá conter dados duplicados.

  • Tabelas sem restrições PRIMARY KEY ou UNIQUE: selecione Schema Synchronization para Synchronization Types e duplicate para Engine na etapa Configurations for Databases, Tables, and Columns.

  • Se você selecionar tabelas (e não bancos de dados) como objetos de sincronização e precisar renomear tabelas ou colunas no destino, cada tarefa suporta até 1.000 tabelas. Exceder esse limite gera um erro de solicitação. Configure várias tarefas ou sincronize o banco de dados inteiro.

  • Requisitos de log binário:

    • defina o parâmetro loose_polar_log_bin como ON

    • Período de retenção: pelo menos três dias, sete dias recomendados

  • Não execute operações DDL que alterem os schemas de bancos de dados ou tabelas durante a sincronização inicial de schema ou a sincronização inicial completa de dados. O DTS consulta o banco de dados de origem durante a sincronização completa, gerando bloqueios de metadados que podem impedir operações DDL.

  • As alterações provenientes de operações não registradas em logs binários — como dados restaurados de backups físicos ou gerados por operações em cascata — não serão sincronizadas para o destino. Se isso ocorrer, remova e readicione o banco de dados ou tabela afetado dos objetos de sincronização, se o seu cenário de negócios permitir. Consulte Modify synchronization objects.

Limitações gerais

  • O DTS não sincroniza os nós de somente leitura do cluster PolarDB for MySQL de origem.

  • O DTS não sincroniza as tabelas externas do Object Storage Service (OSS) da origem.

  • Não há suporte para a troca entre primário e standby durante a sincronização inicial completa de dados. Se ocorrer uma troca, reconfigure a tarefa de sincronização.

  • Há suporte apenas para tabelas que usam o Unique Key Model ou Duplicate Key Model no Doris. Ao usar o Duplicate Key Model, o DTS converte instruções UPDATE e DELETE em instruções INSERT. Poderão surgir dados duplicados se ocorrer alguma das seguintes situações. Use as colunas adicionais _is_deleted, _version e _record_id para deduplicar, se necessário (consulte Additional columns added by DTS).

    • Uma operação de retentativa é executada na instância de sincronização de dados

    • A instância é reiniciada

    • Duas ou mais operações DML são aplicadas à mesma linha após a inicialização da instância

  • Você pode especificar apenas o parâmetro bucket_count na seção Selected Objects. O valor deve ser um número inteiro positivo. Padrão: auto.

  • Não crie clusters no banco de dados Doris de destino durante a sincronização. Caso isso ocorra, a tarefa falhará. Reinicie a instância de sincronização de dados para retomar.

  • O Doris aceita apenas nomes de bancos de dados e tabelas iniciados com uma letra. Use o recurso de mapeamento de nomes de objetos para renomear qualquer objeto que comece com um caractere não alfabético.

  • Se o nome de um banco de dados, tabela ou coluna contiver caracteres chineses, use o mapeamento de nomes de objetos para renomeá-lo (por exemplo, para um nome em inglês). Caso contrário, a tarefa poderá falhar.

  • Não modifique operações DDL em várias colunas ao mesmo tempo, nem execute operações DDL consecutivas em uma mesma tabela.

  • Não adicione nós de backend (BE) ao banco de dados Doris de destino durante a sincronização. Caso isso ocorra, a tarefa falhará. Reinicie a instância de sincronização de dados para retomar.

  • Em cenários de mesclagem de várias tabelas (várias tabelas de origem sincronizadas com uma única tabela de destino), os schemas de todas as tabelas de origem devem ser idênticos. Caso contrário, poderá ocorrer inconsistência de dados ou falha na tarefa.

  • No PolarDB for MySQL, VARCHAR(M) utiliza o comprimento em caracteres para M. No Doris, VARCHAR(N) utiliza o comprimento em bytes para N. Se não estiver usando a sincronização de schema, defina o comprimento do VARCHAR do Doris como quatro vezes o comprimento do VARCHAR correspondente do MySQL para evitar perda de dados.

  • Ao usar o DMS ou gh-ost para executar alterações DDL online na origem, o DTS sincroniza apenas o DDL original para o destino. Não há suporte para alterações DDL online feitas com pt-online-schema-change, e elas podem causar perda de dados ou falha na sincronização.

  • Durante a sincronização inicial completa de dados, o DTS usa recursos de leitura e gravação de ambos os bancos de dados. Avalie o impacto no desempenho antecipadamente e agende a sincronização durante horários de baixa demanda, quando o uso da cpu em ambas as extremidades estiver abaixo de 30%.

  • Operações INSERT simultâneas durante a sincronização inicial completa de dados causam fragmentação nas tabelas do destino. Após a conclusão da sincronização completa, as tabelas de destino poderão ocupar mais armazenamento do que a origem.

  • Não use pt-online-schema-change ou ferramentas semelhantes para operações DDL online em objetos de sincronização durante a sincronização. Isso causa falhas na sincronização.

  • Se forem gravados dados no banco de dados de destino a partir de fontes diferentes do DTS durante a sincronização, poderá ocorrer inconsistência de dados entre a origem e o destino.

  • O DTS executa periodicamente CREATE DATABASE IF NOT EXISTS \ test\`` na origem para avançar a posição do log binário.

  • Durante a sincronização incremental, o DTS usa uma estratégia em lote e grava em cada objeto de sincronização no máximo uma vez a cada cinco segundos. Isso pode gerar uma latência de sincronização esperada de menos de 10 segundos. Para reduzir a latência, atualize o parâmetro selectdb.reservoir.timeout.milliseconds (intervalo: 1.000 a 10.000 milissegundos) no console do DTS. Intervalos de lote menores aumentam a frequência de gravação, o que pode elevar a carga e o tempo de resposta do destino.

  • Se uma instância falhar, o suporte do DTS tentará a recuperação em até oito horas. Durante a recuperação, a instância poderá ser reiniciada ou ter seus parâmetros ajustados. O suporte modifica apenas os parâmetros da instância do DTS — os parâmetros do banco de dados permanecem inalterados.

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

Criar uma tarefa de sincronização de dados

Etapa 1: acesse a página de sincronização de dados

Use um dos seguintes métodos:

DTS console

  1. Faça logon 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 tarefa de sincronização de dados está localizada.

DMS console

As etapas podem variar com base no modo e no layout do console do DMS. Consulte Simple mode e Customize the layout and style of the DMS console.

  1. Faça logon no console do DMS.console do DMS

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

  3. Na lista suspensa ao lado de Data Synchronization Tasks, selecione a região onde a instância está localizada.

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

  1. clique em Create Task.

  2. configure o Task Name. O DTS gera um nome automaticamente. especifique um nome descritivo para facilitar a identificação da tarefa — o nome não precisa ser exclusivo.

  3. configure as conexões dos bancos de dados de origem e de destino com os parâmetros abaixo.

Banco de dados de origem (PolarDB for MySQL)

Parâmetro

Valor

Select Existing Connection

selecione uma instância registrada na lista para preencher automaticamente os campos a seguir, ou configure-os manualmente

Database Type

PolarDB for MySQL

Access Method

Alibaba Cloud Instance

Instance Region

A região onde o cluster PolarDB for MySQL de origem está localizado.

Replicate Data Across Alibaba Cloud Accounts

Não (este exemplo usa a conta atual)

PolarDB Cluster ID

O id do cluster PolarDB for MySQL de origem

Database Account

A conta do cluster de origem (consulte Permissions required)

Database Password

A senha da conta do banco de dados

Encryption

selecione conforme a necessidade. Para a configuração de SSL, consulte Configure SSL encryption

Banco de dados de destino (Doris)

Parâmetro

Valor

Select Existing Connection

selecione uma instância registrada na lista para preencher automaticamente os campos a seguir, ou configure-os manualmente

Database Type

Doris

Access Method

Self-managed Database on ECS (este exemplo). Para outros métodos de acesso, consulte Preparations

Instance Region

A região onde o banco de dados Doris de destino está localizado.

ECS Instance ID

O id da instância ECS que hospeda o banco de dados Doris. Se os nós BE ou frontend (FE) estiverem em instâncias ECS separadas, adicione os blocos CIDR dos servidores DTS às regras de segurança de cada instância

Port Number

A porta de service do banco de dados Doris de destino. Padrão: 9030

Database Account

A conta do banco de dados de destino (consulte Permissions required)

Database Password

A senha da conta do banco de dados

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

Certifique-se de que os blocos CIDR dos servidores DTS estejam adicionados às configurações de segurança dos bancos de dados de origem e de destino. Consulte Add DTS server IP addresses to a whitelist .

Etapa 3: selecione objetos de sincronização

  1. Na etapa Configure Objects, configure os seguintes parâmetros:

Parâmetro

Descrição

Synchronization Types

selecione Schema Synchronization, Full Data Synchronization e Incremental Data Synchronization. A sincronização completa estabelece os dados de linha de base antes que a sincronização incremental comece. Se você pular a sincronização de schema, crie as tabelas de destino usando o Unique Key Model ou Duplicate Key Model com antecedência. Consulte Data type mappings, Additional columns added by DTS e Unique Key Model

Processing Mode of Conflicting Tables

Precheck and Report Errors: retorna um erro se existir uma tabela com o mesmo nome no destino. Ignore Errors and Proceed: ignora a verificação. Se os schemas das tabelas forem diferentes, a inicialização de dados poderá falhar ou haverá sincronização apenas de colunas parciais. Se os schemas forem iguais, os dados de origem substituirão os registros de destino com chaves primárias ou exclusivas correspondentes

Capitalization of Object Names in Destination Instance

O valor padrão é DTS default policy. Ajuste conforme necessário. Consulte Specify the capitalization of object names

Source Objects

selecione bancos de dados ou tabelas a serem sincronizados, e clique no ícone de seta para a direita para adicioná-los aos Selected Objects

Selected Objects

Clique com o botão direito em um objeto para renomeá-lo, filtrar dados com condições WHERE ou selecionar operações SQL específicas. Se a sincronização de schema estiver ativada, clique com o botão direito em uma tabela e configure bucket_count em Parameter Settings

  1. clique em Next: Advanced Settings e configure o seguinte:

Parâmetro

Descrição

Dedicated Cluster for Task Scheduling

Por padrão, o DTS usa o cluster compartilhado. Para maior estabilidade, adquira um cluster dedicado. Consulte What is a DTS dedicated cluster

Retry Time for Failed Connections

Por quanto tempo o DTS tenta reconectar após uma falha de conexão. Intervalo: 10 a 1.440 minutos. Padrão: 720. defina como pelo menos 30. Se a reconexão for bem-sucedida dentro dessa janela, a sincronização será retomada; caso contrário, a tarefa falhará. Aplica-se o valor mais curto entre as tarefas que compartilham a mesma origem ou destino.

Retry Time for Other Issues

Por quanto tempo o DTS tenta executar novamente após falhas de DDL ou DML. Intervalo: 1 a 1.440 minutos. Padrão: 10. defina como pelo menos 10. Deve ser menor que Retry Time for Failed Connections

Enable Throttling for Full Data Synchronization

Limite a sincronização completa definindo o QPS (consultas por segundo) para a origem, RPS (linhas por segundo) da migração completa e a velocidade de migração de dados. Disponível apenas quando Full Data Synchronization estiver selecionada

Enable Throttling for Incremental Data Synchronization

Limite a sincronização incremental definindo o RPS e a velocidade de sincronização de dados

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

Yesconfigurações de notificação de alerta: não grava as operações SQL de heartbeat na origem (a latência pode ser exibida). No: grava as operações SQL de heartbeat (pode afetar o backup físico e a clonagem da origem)

Environment Tag

Opcional. Adicione uma tag à instância para identificação do ambiente

Configure ETL

ative a extração, transformação e carga (ETL) para aplicar transformações de dados. Consulte What is ETL? e Configure ETL

Monitoring and Alerting

configure alertas para falhas de tarefa ou latência que exceda um limiar. Consulte Configure monitoring and alerting

  1. (Opcional) clique em Next: Configure Database and Table Fields. especifique Primary Key Column, Distribution Key e Engine para cada tabela.

Esta etapa está disponível apenas quando Schema Synchronization estiver selecionada. defina Definition Status como All para visualize todas as tabelas.
Primary Key Column suporta várias colunas. Distribution Key deve ser um subconjunto das colunas de chave primária.
Para tabelas sem chaves primárias ou restrições UNIQUE, selecione duplicate para Engine . Caso contrário, a tarefa poderá falhar ou poderá ocorrer perda de dados.

Etapa 4: execute a pré-verificação

clique em Next: Save Task Settings and Precheck.

O DTS executa uma pré-verificação antes de iniciar a tarefa. A tarefa só começa após a aprovação em todas as verificações.
Se alguma verificação falhar, clique em View Details para ver a causa, corrija o problema e execute a pré-verificação novamente.
Se um aviso aparecer: corrija o problema e execute novamente se o item não puder ser ignorado; clique em Confirm Alert Details > Ignore > OK > Precheck Again se o item puder ser ignorado com segurança. Ignorar alertas pode causar inconsistência de dados.

Para visualize os parâmetros do OpenAPI para esta configuração de tarefa, passe o ponteiro do mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters.

Etapa 5: Adquirir uma instância

  1. Aguarde até que 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 prazo fixo, mais econômico para uso a longo prazo. Pay-as-you-go: cobrança por hora, adequado para uso de curto prazo. exclua a instância quando não for mais necessária para interromper as cobranças

Resource Group Settings

O grupo de recursos para a instância. Padrão: default resource group. Consulte What is Resource Management?

Instance Class

selecione com base em seus requisitos de throughput. Consulte Instance classes of data synchronization instances

Subscription Duration

Disponível para faturamento por assinatura. Opções: 1 a 9 meses, 1, 2, 3 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.

A tarefa aparece na lista de tarefas. Monitore seu progresso por lá.

Mapeamentos de tipos de dados

A tabela a seguir mostra o mapeamento dos tipos de dados do PolarDB for MySQL para os tipos de dados do Doris.

Categoria

PolarDB for MySQL

Doris

Numérico

TINYINT

TINYINT

TINYINT UNSIGNED

SMALLINT

SMALLINT

SMALLINT

SMALLINT UNSIGNED

INT

MEDIUMINT

INT

MEDIUMINT UNSIGNED

BIGINT

INT

INT

INT UNSIGNED

BIGINT

BIGINT

BIGINT

BIGINT UNSIGNED

LARGEINT

BIT(M)

INT

Decimal

Decimal

Decimal (ZEROFILL não suportado)

Numeric

Decimal

Float

Float

Double

DOUBLE

BOOL / BOOLEAN

BOOLEAN

Data e hora

DATE

DATEV2

DATETIME[(fsp)]

DATETIMEV2

Timestamp[(fsp)]

DATETIMEV2

Time[(fsp)]

VARCHAR

YEAR[(4)]

INT

String

CHAR / VARCHAR

VARCHAR

BINARY / VARBINARY

STRING

TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT

STRING

TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB

STRING

ENUM

STRING

SET

STRING

JSON

STRING

Notas de conversão de CHAR e VARCHAR:

  • O DTS converte os valores CHAR e VARCHAR(n) para VARCHAR(4*n) para evitar perda de dados. Isso compensa a diferença na forma como o PolarDB for MySQL (comprimento em caracteres) e o Doris (comprimento em bytes) definem o tamanho do VARCHAR.

  • Se nenhum comprimento for especificado, o padrão é VARCHAR(65533).

  • O DTS converte valores que excedem 65.533 caracteres para o tipo STRING.

Importante

Se não estiver usando a sincronização de schema, defina o comprimento do VARCHAR do Doris como quatro vezes o comprimento do VARCHAR correspondente do MySQL.

Colunas adicionais adicionadas pelo DTS

Ao sincronizar dados com uma tabela usando o Duplicate Key Model, o DTS adiciona automaticamente as seguintes colunas à tabela de destino:

Coluna

Tipo de dados

Padrão

Descrição

_is_deleted

Int

0

Sinalizador de exclusão: 0 para operações INSERT e UPDATE, 1 para operações DELETE

_version

Bigint

0

0 durante a sincronização completa; o timestamp do log binário correspondente (em segundos) durante a sincronização incremental

_record_id

Bigint

0

0 durante a sincronização completa; o ID de registro exclusivo e incremental do log incremental durante a sincronização incremental

Use essas colunas para deduplicar dados quando a tabela de destino usar o Duplicate Key Model.

Próximos passos