Use o Data Transmission Service (DTS) para sincronizar o esquema e os dados de uma instância RDS for MySQL para uma instância primária analítica baseada em DuckDB. O DuckDB oferece armazenamento colunar, compilação just-in-time (JIT), execução vetorizada e processamento paralelo, proporcionando desempenho até 100 vezes superior em consultas complexas em comparação ao InnoDB. Essas características tornam a solução ideal para criar painéis de business intelligence (BI), sistemas de consulta interativa e pipelines de relatórios em tempo real.
Setup overview: A configuração envolve três etapas: configurar os bancos de dados de origem e destino → selecionar objetos de sincronização e configurações avançadas → executar a pré-verificação e adquirir a instância de sincronização.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância primária analítica baseada em DuckDB. Consulte Create a DuckDB-based analytical primary instance.
Espaço de armazenamento na instância de destino superior ao espaço utilizado no banco de dados de origem.
Tipos de instância de origem suportados
O DTS suporta os seguintes tipos de origem MySQL:
RDS for MySQL
Banco de dados MySQL autogerenciado em uma instância ECS
Banco de dados MySQL autogerenciado local
Este tópico demonstra a configuração usando uma instância RDS for MySQL. O procedimento é semelhante para bancos de dados MySQL autogerenciados.
Se sua origem for um banco de dados MySQL autogerenciado, conclua primeiro as etapas adicionais de preparação. Consulte Overview of preparations .
Operações SQL suportadas
DDL: CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN, MODIFY COLUMN
DML: INSERT, UPDATE, DELETE
As instruçõesUPDATEeDELETEnão podem incluir cláusulasORDER BYouLIMIT.
Se você alterar o tipo de campo de uma tabela de origem durante a sincronização, a tarefa reportará um erro e será interrompida. Consulte Fix a synchronization failure caused by a field type change para resolver essa situação manualmente.
Limitações
Todas as tabelas de origem devem ter uma chave primária. Tabelas sem chave primária não podem ser sincronizadas.
Não execute alterações DDL online nas tabelas de origem usando gh-ost ou pt-online-schema-change durante a sincronização, pois a tarefa falhará. Ao usar DMS ou gh-ost, configure a opção Replicate Temporary Tables Generated by Online DDL Tools na etapa de configurações avançadas.
Índices de prefixo não são suportados. Se uma tabela de origem usar índices de prefixo, a tarefa poderá falhar.
Um cluster de instância primária analítica baseada em DuckDB é bloqueado quando o uso de disco em qualquer nó ultrapassa 80%. Estime antecipadamente o espaço necessário para seus objetos de sincronização.
A execução de backup na instância de destino enquanto uma tarefa DTS está em andamento causa falha na tarefa.
Uma instância primária analítica baseada em DuckDB não pode atuar como origem em uma tarefa de sincronização.
Instruções DML contendo cláusula
LIMIT, função não determinística comoUUID()ou transaçãoXAsão classificadas como operações de replicaçãoUnsafe. Tais operações podem gerar inconsistência de dados entre origem e destino.Programe a sincronização para horários de baixa demanda, quando a utilização de CPU em ambos os bancos de dados estiver abaixo de 30%. A sincronização completa de dados aumenta a carga de leitura e escrita nos dois bancos.
Faturamento
|
Tipo de sincronização |
Preço |
|
Sincronização de esquema e sincronização completa de dados |
Gratuito |
|
Sincronização incremental de dados |
Pago. Consulte Visão geral do faturamento. |
Permissões necessárias para contas de banco de dados
|
Banco de dados |
Permissões necessárias |
|
RDS for MySQL |
Use uma conta privilegiada (recomendado). Para conta padrão: |
|
Instância primária analítica baseada em DuckDB |
Use uma conta privilegiada (recomendado). Para conta padrão: |
Configurar a tarefa de sincronização
Etapa 1: Configurar bancos de dados de origem e destino
Faça login no console DTS. No painel de navegação à esquerda, escolha Data Synchronization. Na barra de navegação superior, selecione a região onde sua instância está localizada.
Na página Data Synchronization Tasks, clique em Create Task.
Na página Create Synchronization Task > Configure Source and Destination Databases, configure os parâmetros a seguir.
Instância de origem
| Parâmetro | Descrição |
|---|---|
| Database Type | Relational Database > MySQL |
| Access Mode | Cloud Instance |
| Instance Region | Região da instância de origem. Selecionada no momento da compra da tarefa e não pode ser alterada. |
| Cross-account Synchronization | No |
| Instance ID | ID da instância RDS for MySQL de origem. |
| Database Account | Conta do banco de dados da instância de origem. Consulte Required database account permissions. |
| Database Password | Senha da conta do banco de dados. |
| Connection Method | Non-encrypted Connection ou SSL-encrypted Connection. Para usar SSL, ative primeiro a criptografia SSL na instância RDS. Consulte Use a cloud-native certificate to enable SSL encryptionUse a cloud-native certificate to enable SSL encryption
Importante
Atualmente, a opção Encryption só pode ser definida nas regiões da China continental e China (Hong Kong). |
A criptografia SSL só pode ser configurada nas regiões da China continental e China (Hong Kong).
Instância de destino
| Parâmetro | Descrição |
|---|---|
| Database Type | Data Warehouse > DuckDB |
| Access Mode | Cloud Instance |
| Instance Region | Região da instância de destino. Selecionada no momento da compra da tarefa e não pode ser alterada. |
| Cross-account Synchronization | No |
| RDS Instance ID | ID da instância primária analítica baseada em DuckDB de destino. |
| Database Account | Conta do banco de dados da instância de destino. Consulte Required database account permissions. |
| Database Password | Senha da conta do banco de dados. |
| Connection Method | Non-encrypted Connection ou SSL-encrypted Connection
Importante
Atualmente, a opção Encryption só pode ser definida nas regiões da China continental e China (Hong Kong). |
O DTS suporta sincronização entre regiões. Este tópico usa instâncias na mesma região e VPC como exemplo. Para outros cenários, consulte Overview of data synchronization scenarios .
Clique em Test Connection and Proceed.
Na caixa de diálogo DTS Server Access Authorization, clique em Test Connection.
Etapa 2: Configurar objetos de sincronização e configurações avançadas
Na página Configure Synchronization Objects, configure os parâmetros a seguir.
| Parâmetro | Descrição |
|---|---|
| Synchronization Types | Selecione os tipos de sincronização conforme seu caso de uso: <br>• Apenas sincronização completa: selecione Schema Synchronization e Full Data Synchronization. <br>• Sincronização contínua sem interrupção de service: selecione Schema Synchronization, Full Data Synchronization e Incremental Data Synchronization (pago). <br><br> Nota
Se você optar por não realizar a Schema Synchronization, garanta que o banco de dados de destino já contenha as tabelas alvo. Se pular a Incremental Data Synchronization, evite gravar na origem durante a sincronização para manter a consistência dos dados. |
| Trigger Migration Method | Define como lidar com triggers. Disponível apenas quando Schema Synchronization estiver selecionado. Se não houver triggers envolvidos, ignore este parâmetro. Consulte Configure a method to synchronize or migrate triggers. |
| Enable Migration Evaluation | Avalia se os esquemas de origem e destino (tamanho de índice, procedimentos armazenados, tabelas dependentes) atendem aos requisitos. Disponível somente se Schema Synchronization estiver selecionado. Ao definir como Yes, a pré-verificação demora mais, mas permite visualizar os resultados da avaliação durante o processo. Os resultados não afetam o resultado final da pré-verificação. |
| Synchronization Topology | Selecione One-way Synchronization. |
| Processing Mode for Existing Tables | • Precheck and Report Error: Reporta erro na pré-verificação se já existir uma tabela com o mesmo nome no destino. Para renomear tabelas conflitantes, consulte Map table and column names. <br>• Ignore and Continue: Ignora a verificação de existência. <br><br> Aviso
Com a opção Ignore and Continue, os conflitos são tratados de forma diferente dependendo do tipo de sincronização: na sincronização completa, o DTS mantém o registro de destino e ignora o da origem; na sincronização incremental, o registro de origem sobrescreve o de destino. Esquemas inconsistentes podem causar sincronização parcial ou falha. |
| Migrate Event | Indique se deseja migrar eventos. Ao selecionar Yes, siga os requisitos descritos em Synchronize or migrate events. |
| Case Sensitivity of Object Names | Define a política de diferenciação entre maiúsculas e minúsculas para nomes de bancos de dados, tabelas e colunas no destino. O padrão é DTS Default Policy. Consulte Case-sensitivity policy for names of objects in the destination database. |
| Source Objects | Na caixa Source Objects, selecione os objetos a sincronizar e clique em |
| Selected Objects | Clique com o botão direito em um objeto para renomeá-lo ou filtrar linhas usando uma cláusula WHERE. Use Batch Edit para renomear vários objetos simultaneamente. Consulte Map table and column names e Filter data by using a WHERE clause. |
Clique em Next: Advanced Settings e configure os parâmetros abaixo conforme necessário. As configurações padrão atendem à maioria dos cenários.
| Parâmetro | Descrição |
|---|---|
| Dedicated Cluster | Por padrão, o DTS executa tarefas em um cluster compartilhado. Para maior estabilidade, adquira um cluster dedicado. Consulte DTS dedicated clusters. |
| Replicate Temporary Tables Generated by Online DDL Tools | Controla como o DTS lida com tabelas temporárias geradas por ferramentas de DDL online. O pt-online-schema-change não é suportado. <br>• Yes: Sincroniza os dados das tabelas temporárias. Tabelas temporárias grandes podem aumentar a latência. <br>• No, Adapt to DMS Online DDL: Ignora os dados das tabelas temporárias e sincroniza apenas o DDL original do DMS. As tabelas no destino ficam bloqueadas durante esse processo. <br>• No, Adapt to gh-ost: Ignora os dados das tabelas temporárias e sincroniza apenas o DDL original do gh-ost. Configure expressões regulares para tabelas shadow e trash se necessário. As tabelas no destino ficam bloqueadas durante esse processo. |
| Migrate Accounts | Define se as informações de conta do banco de dados de origem devem ser sincronizadas. Se escolher Yes, selecione as contas e confirme suas permissões. Consulte Migrate database accounts. |
| Retry Duration upon Connection Failure | Tempo durante o qual o DTS tenta reconectar antes de falhar a tarefa após um erro de conexão. Padrão: 720 minutos. Intervalo: 10–1.440 minutos. Defina 30 minutos ou mais. Se o DTS reconectar dentro dessa janela, a tarefa retoma automaticamente. <br><br> Nota
Quando várias instâncias DTS compartilham uma mesma origem ou destino, a menor duração de tentativa de reconexão entre elas se aplica a todas. O DTS cobra pelo período de tentativas de reconexão. |
| Retry Duration for Other Errors | Tempo de nova tentativa para erros que não sejam de conexão (como falhas na execução de DDL ou DML). Padrão: 10 minutos. Intervalo: 1–1.440 minutos. Defina 10 minutos ou mais. Deve ser menor que Retry Duration upon Connection Failure. |
| Data Rate Limit for Full Synchronization | Limita a taxa de dados na sincronização completa para reduzir a carga no destino. Defina QPS Limit for Source Database, RPS Limit for Full Synchronization e BPS Limit for Full Synchronization (MB/s). Disponível apenas quando Full Data Synchronization estiver selecionado. |
| Data Rate Limit for Incremental Synchronization | Limita a taxa de dados na sincronização incremental. Defina RPS Limit for Incremental Synchronization e BPS Limit for Incremental Synchronization (MB/s). |
| Remove Heartbeat Table SQL | Controla se o DTS grava SQL de heartbeat no banco de dados de origem. <br>• Yes: Não grava SQL de heartbeat. A instância DTS pode apresentar atraso. <br>• No: Grava SQL de heartbeat. Isso pode afetar o backup físico e a clonagem do banco de dados de origem. |
| Environment Tag | Tag para identificar o ambiente da instância. |
| Scenario Tag | Tag para identificar o caso de uso da instância. |
| Configure ETL | Define se o recurso de extração, transformação e carga (ETL) deve ser configurado. Consulte Configure ETL in a DTS migration or synchronization task. |
| Sensitive Data Scan and Desensitization | Ative para identificar e mascarar dados sensíveis durante a transmissão. |
Clique em Next: Configure Data Verification e defina as configurações de verificação de dados.
A verificação de esquema pode reportar falsos erros de inconsistência devido a problemas históricos de compatibilidade. Esses erros não afetam o resultado real da sincronização. Para evitar falsos positivos, não ative a verificação de esquema.
| Parâmetro | Descrição |
|---|---|
| Full Verification Mode | • Full-field verification on sampled rows: Define uma porcentagem de amostragem (10–100%) para verificação de campos completos. Cobrado com base no volume de dados verificado. <br>• Row count verification: Verifica apenas a contagem de linhas, não o conteúdo dos dados. Gratuito. |
| Full Verification Schedule | Somente Start Now é suportado. |
| Full Verification Timeout | • Not set: A tarefa de verificação executa até ser concluída. <br>• Set: Encerra forçadamente a tarefa após a duração especificada. O valor deve ser um número inteiro de 1 a 72. |
| Full Verification Baseline | • Default: Usa a união de origem e destino como linha de base. <br>• Source: Verifica se os dados de destino correspondem à origem; ignora dados existentes apenas no destino. <br>• Destination: Verifica se os dados de origem correspondem ao destino; ignora dados existentes apenas na origem. |
| Maximum RPS for Full Verification | Limita as linhas lidas por segundo durante a verificação completa para reduzir a carga no banco de dados. O valor 0 significa sem limite. Se tanto este quanto Maximum BPS for Full Verification (byte/s) estiverem definidos como 0, nenhum limite de taxa será aplicado. |
| Maximum BPS for Full Verification (byte/s) | |
| Incremental Verification Baseline | Filtre as operações DML a serem verificadas. |
| Verification Objects | Por padrão, todos os objetos de sincronização são incluídos. Remova objetos que não deseja verificar selecionando-os na caixa Selected Objects e clicando em |
| Full Verification Alert | Configure alertas para falhas de verificação ou quando dados inconsistentes ultrapassarem um limiar. |
| Incremental Verification Alert | Configure alertas para falhas de verificação, contagens de registros inconsistentes ou latência acima de um limiar. |
Clique em Next: Save Task and Precheck.
Etapa 3: Executar a pré-verificação e adquirir
-
Após a Precheck Pass Rate atingir 100%, clique em Next: Purchase.
A tarefa não pode iniciar até passar na pré-verificação. Se algum item falhar, clique em no ícone
ao lado do item com falha para ver a causa, corrija o problema e execute novamente a pré-verificação. Para ignorar itens de aviso, clique em Acknowledge e depois em Ignore and Rerun Precheck . Na página Purchase, selecione um método de faturamento e uma especificação de link.
| Categoria | Parâmetro | Descrição |
|---|---|---|
| Basic Information | Billing Method | • Subscription: Pagamento antecipado. Mais econômico para uso de longo prazo — durações maiores oferecem descontos maiores. <br>• Pay-as-you-go: Cobrança horária. Melhor para uso de curto prazo; libere a instância a qualquer momento para parar as cobranças. |
| Resource Group | Grupo de recursos da instância. O padrão é Default Resource Group. Consulte What is Resource Management?. | |
| Link Specification | Determina o throughput da sincronização. Selecione com base no volume de dados e nos requisitos de latência. Consulte Specifications of data synchronization links. | |
| Subscription Duration | Disponível apenas para o método de faturamento Subscription. Selecione de 1 a 9 meses ou 1, 2, 3 ou 5 anos. |
Leia e concorde com os Data Transmission Service (Pay-As-You-Go) Terms of Service, clique em Purchase and Start e, em seguida, clique em OK.
Após a conclusão da compra, você será redirecionado para a página Data Synchronization Tasks. Clique em no ID da tarefa para abrir sua página de detalhes e, em seguida, clique em Task Management para monitorar o progresso da sincronização.
Corrigir falha de sincronização causada por alteração de tipo de campo
Se um tipo de campo em uma tabela de origem for alterado durante a sincronização, a tarefa será interrompida. Siga estas etapas para resolver o problema.
Na instância de destino, crie uma nova tabela (por exemplo,
customer_new) baseada na tabela com falha (por exemplo,customer). Ajuste os tipos de campo para corresponder ao esquema atualizado.Execute
INSERT INTO SELECTpara copiar os dados da tabela original para a nova tabela. Verifique se ambas as tabelas contêm dados idênticos.Renomeie ou exclua a tabela original e, em seguida, renomeie a nova tabela para o nome original (por exemplo,
customer).No console DTS, reinicie a tarefa de sincronização.