O recurso de sincronização em tempo real de banco de dados completo combina sincronização completa única com captura incremental contínua para sincronizar um banco de dados de origem inteiro (como MySQL ou Oracle) em um sistema de destino com baixa latência. As tarefas de sincronização em tempo real de banco de dados completo suportam a sincronização completa de dados históricos do banco de dados de origem e inicializam automaticamente o esquema de tabela e os dados no destino. Em seguida, a tarefa alterna automaticamente para o modo incremental em tempo real e utiliza tecnologias como change data capture (CDC) para capturar e sincronizar continuamente as alterações de dados subsequentes. Esse recurso é aplicável a cenários como data warehousing em tempo real e construção de data lakes. Este tópico usa a sincronização em tempo real de banco de dados completo do MySQL para o MaxCompute como exemplo para descrever como configurar a tarefa.
Pré-requisitos
-
Preparação das fontes de dados
As fontes de dados de origem e destino estão criadas. Para saber como configurar fontes de dados, consulte Configure data sources.
Verifique se as fontes de dados suportam a sincronização em tempo real de banco de dados completo. Para mais informações, consulte Supported data sources.
Algumas fontes de dados exigem a ativação de logs, como MySQL, Hologres e Oracle. O método de ativação de logs varia conforme a fonte de dados. Para mais informações, consulte Data source configurations.
MaxCompute: O tipo de dados Decimal é suportado pelo MaxCompute 2.0. Antes da sincronização, ative os tipos de dados do MaxCompute 2.0. Para mais informações, consulte MaxCompute 2.0 data types.
Resource group: Um serverless resource group deve ser adquirido e configurado.
Conectividade de rede: Configure Network connectivity entre o resource group e as fontes de dados.
Observações de uso
-
O DataWorks suporta dois tipos de sincronização de banco de dados completo: real-time full-database e full and incremental full-database. Ambos os tipos suportam a sincronização completa de dados históricos do banco de dados de origem e alternam automaticamente para o modo incremental em tempo real. No entanto, os dois tipos diferem em termos de pontualidade e requisitos de tabela de destino:
Pontualidade: A sincronização em tempo real de banco de dados completo oferece pontualidade em nível de segundos a minutos. O Full and incremental full-database synchronization oferece pontualidade T+1.
-
Tabela de destino (MaxCompute):
PK Delta Table: A sincronização em tempo real de banco de dados completo suporta todos os recursos.
Tabelas regulares e Append Delta Tables: O modo Append é suportado somente quando você selecione o modo de sincronização incremental em uma tarefa de sincronização em tempo real de banco de dados completo.
Full and incremental full-database synchronization: Todos os tipos de tabela mencionados anteriormente são suportados.
-
As tarefas de sincronização em tempo real de banco de dados completo podem ser configuradas nos módulos DataStudio (Data Studio) e Data Integration. Os dois módulos são funcionalmente interoperáveis.
Configuração consistente: Independentemente de a tarefa ser criada no módulo Data Studio ou Data Integration, a interface de configuração, as definições de parâmetros e os recursos subjacentes são idênticos.
Sincronização bidirecional: As tarefas criadas no módulo Data Integration são automaticamente sincronizadas e exibidas no diretório
data_integration_jobsdo módulo Data Studio, categorizadas pelo canalsource type-destination typepara gerenciamento unificado.
Configurar uma tarefa
Etapa 1: Criar uma tarefa de sincronização
Acesse o DataWorks console. Na região de destino, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Integration.
-
No painel de navegação à esquerda, clique em Synchronization Task. Na página exibida, clique em Create Synchronization Task e configure as informações da tarefa:
Source Type:
MySQL.Destination Type:
MaxCompute.Specific Type:
Real-time Full-database.-
Synchronization Mode:
Schema Migration: Cria automaticamente no destino os objetos de banco de dados (como tabelas, colunas e tipos de dados) correspondentes aos do source, sem incluir os dados.
Full Synchronization (opcional): Copia todos os dados históricos dos objetos especificados (como tabelas) do source para o destino em uma única operação. Geralmente utilizado para migração inicial de dados ou inicialização de dados.
Incremental Sync (opcional): Captura continuamente as alterações de dados (inserções, atualizações e exclusões) do source após a conclusão da sincronização completa e as sincroniza para o destino.
Etapa 2: Configurar fontes de dados e recursos de execução
Na seção Source Data Source, selecione a fonte de dados
MySQLadicionada ao workspace. Na seção Destination, selecione a fonte de dadosMaxComputeadicionada.-
Na seção Running Resources, selecione o Resource Group para a tarefa de sincronização e aloque Resource Group CU à tarefa.
NotaQuando uma mensagem como
Please confirm whether there are enough resources...aparecer nos logs da tarefa, as unidades de computação (CUs) disponíveis no resource group atual são insuficientes para iniciar ou executar a tarefa. No painel Configure Resource Group, aumente o número de CUs alocadas à tarefa para atribuir mais recursos de computação.Para valores de tamanho de recursos recomendados, consulte Recommended CUs for Data Integration. Ajuste os valores conforme suas necessidades reais.
Verifique se as fontes de dados de origem e destino passam na Connectivity Check.
Etapa 3: Configuração do plano de sincronização
1. Configurar a fonte de dados
-
Nesta etapa, selecione as tabelas a serem sincronizadas da fonte de dados de origem na área Source Tables e clique no ícone
para movê-las para a área Selected Tables à direita. Caso haja muitas tabelas, use Database Filtering ou Table filtering para selecionar as tabelas a sincronizar configurando expressões regulares.
-
Para gravar múltiplas tabelas fragmentadas (com o mesmo schema) em uma única tabela de destino, use Select Tables by Regex.
Insira uma expressão regular na configuração da tabela de origem. O DataWorks identifica e coleta automaticamente todas as tabelas de origem correspondentes e grava seus dados na tabela de destino mapeada pela expressão.NotaEste método é adequado para cenários em que tabelas fragmentadas são mescladas durante a sincronização (similar à sincronização de sharding de banco de dados e tabelas). Melhora a eficiência da configuração e elimina a necessidade de adicionar repetidamente regras de sincronização de muitos-para-um.
2. Configurar o destino dos dados
Se apenas Incremental Sync estiver selecionado para a tarefa de sincronização completa de banco de dados em tempo real, você pode configurar o modo de sincronização incremental para gravação na tabela de destino.
Replay: Apenas PK Delta Table é suportado. Similar à sincronização normal, somente as colunas de dados são sincronizadas.
Incremental stream: Tabelas regulares e Append Delta Table são suportadas. Os dados em tempo real da tabela de origem são acrescentados com metadados como operações de inserção, atualização e exclusão antes de serem gravados na tabela de destino. Para o formato das tabelas de incremental stream, consulte Incremental stream table format.
3. Mapeamento de tabelas de destino
Nesta etapa, defina as regras de mapeamento entre tabelas de origem e tabelas de destino, além de especificar regras como chaves primárias, partições dinâmicas e configurações de DDL/DML para determinar como os dados serão gravados.
Operation | Description | ||||||||||||
Refresh | O sistema lista automaticamente as tabelas de origem selecionadas, mas as propriedades específicas das tabelas de destino só entram em vigor após você atualizar e confirmá-las.
| ||||||||||||
Customize Mapping Rules for Destination Table Names (opcional) | O sistema possui uma regra padrão de geração de nomes de tabela:
Os seguintes cenários são suportados:
Tanto MaxCompute quanto Hologres suportam personalização do mapeamento de nome do schema de destino. Ao sincronizar um banco de dados MySQL completo para o MaxCompute em tempo real, configure regras de personalização do mapeamento de nome do schema de destino para rotear os dados sincronizados para um schema não padrão especificado no projeto MaxCompute de destino, em vez de gravar todos os dados no schema padrão. Importante O recurso Schema do MaxCompute está desativado por padrão. Antes de usar a personalização do mapeamento de nome do schema de destino, ative manualmente o modo Schema no projeto MaxCompute de destino. Caso contrário, as regras de mapeamento não entrarão em vigor. | ||||||||||||
Edit column type mapping (opcional) | O sistema possui mapeamentos padrão entre os tipos de coluna de origem e destino. Clique em Edit Mapping of Field Data Types no canto superior direito da tabela para personalizar os mapeamentos de tipo de coluna entre as tabelas de origem e destino e, em seguida, clique em Apply and Refresh Mapping. Ao editar os mapeamentos de tipo de coluna, certifique-se de que as regras de conversão de tipo estejam corretas. Regras incorretas podem causar falhas na conversão de tipos, resultando em dados inválidos e afetando a execução da tarefa. | ||||||||||||
Edit destination table schema (opcional) | O sistema cria automaticamente as tabelas de destino que não existem com base nas regras de mapeamento de nome de tabela personalizado, ou reutiliza tabelas existentes com o mesmo nome. O DataWorks gera automaticamente o schema da tabela de destino com base no schema da tabela de origem. Na maioria dos casos, nenhuma intervenção manual é necessária. O schema da tabela também pode ser modificado das seguintes formas:
Para tabelas existentes, é possível apenas adicionar colunas. Para novas tabelas, é possível adicionar colunas, colunas de partição e configurar o tipo de tabela ou as propriedades da tabela. Consulte as áreas editáveis na página para obter detalhes. | ||||||||||||
Value assignment | As colunas nativas são mapeadas automaticamente com base em colunas de mesmo nome nas tabelas de origem e destino. As colunas adicionadas e colunas de partição das etapas anteriores requerem atribuição de valor manual. Execute as seguintes operações:
Na atribuição de valores, use constantes ou variáveis. Alterne o tipo em Value Type. Os seguintes métodos são suportados:
Nota Um número excessivo de partições degrada o desempenho da sincronização. Se mais de 1.000 novas partições forem criadas em um único dia, a criação de partições falha e a tarefa é encerrada. Portanto, ao definir o método de atribuição de valor para colunas de partição, estime o número de partições que podem ser geradas. Use com cautela os métodos de criação de partições em nível de segundo ou milissegundo. | ||||||||||||
Source Split Key | Selecione uma coluna da tabela de origem ou escolha Not Split na lista suspensa da chave de divisão de origem. Durante a execução da tarefa, os dados são divididos em múltiplas tarefas com base nessa coluna para permitir leituras de dados simultâneas e em lote. Recomenda-se usar a chave primária da tabela como chave de divisão de origem. Tipos string, ponto flutuante, data e outros tipos não são suportados. Atualmente, a chave de divisão de origem é suportada apenas quando a origem é MySQL. | ||||||||||||
Skip Full Synchronization | Se a sincronização completa tiver sido configurada na Etapa 3, cancele individualmente a sincronização completa de dados para uma tabela específica. Esse recurso é adequado para cenários em que os dados completos já foram sincronizados para o destino por outros meios. | ||||||||||||
Full condition | Aplique filtragem condicional à origem durante a fase de sincronização completa. Insira apenas a cláusula WHERE sem a palavra-chave WHERE. | ||||||||||||
Configure DML Rule | O processamento de mensagens DML filtra e controla com granularidade fina os dados de alteração capturados da origem ( | ||||||||||||
Outros | Table Type: MaxCompute suporta tabelas regulares,
Para mais informações sobre Delta Table, consulte Delta Table overview. |
Etapa 4: Configuração avançada
Configuração de parâmetros avançados
Para uma configuração mais granular da tarefa a fim de atender a requisitos de sincronização personalizados, acesse a aba Advanced Parameters e modifique os parâmetros avançados.
Clique em Advanced Configuration no canto superior direito da página para acessar a página de configuração de parâmetros avançados.
Modifique os valores dos parâmetros com base nas instruções exibidas. O significado de cada parâmetro está descrito após o nome do parâmetro.
-
A configuração assistida por IA também é suportada. Insira instruções em linguagem natural, como ajustar a concorrência da tarefa, e um modelo de linguagem de grande porte gera valores de parâmetros recomendados. Aceite ou rejeite os parâmetros gerados pela IA conforme suas necessidades reais.

Modifique os parâmetros somente após compreender completamente seus significados. Modificações inadequadas podem causar problemas inesperados, como latência na tarefa, consumo excessivo de recursos que bloqueia outras tarefas ou perda de dados.
Configuração de capacidade DDL
Alguns canais de sincronização em tempo real detectam alterações nos metadados do schema da tabela de origem, notificam o destino e sincronizam as atualizações para ele. Outras políticas de tratamento, como alertas, ignorar ou encerrar a tarefa, também estão disponíveis.
Clique em Configure DDL Capability no canto superior direito da página para definir a política de tratamento para cada tipo de alteração DDL. As políticas disponíveis variam de acordo com o canal.
Process normally: O destino processa as informações de alteração DDL provenientes da origem.
Ignore: A mensagem de alteração é ignorada e o destino não é modificado.
Error: A tarefa de sincronização completa de banco de dados em tempo real é encerrada e o status é definido como Error.
Alert: Um alerta é enviado quando esse tipo de alteração ocorre na origem. Configure as regras de notificação DDL em Configure Alert Rule.
Após uma coluna ser adicionada à tabela de origem e criada na tabela de destino via sincronização DDL, o sistema não preenche retroativamente os dados existentes na tabela de destino.
A exclusão de colunas não tem suporte para sincronização automática em fontes MySQL. Ao excluir uma coluna de uma tabela MySQL de origem, o schema da tabela fica inconsistente com o binary log, o que pode causar erros na tarefa de sincronização.
Para remover uma coluna que já foi sincronizada para a tabela de destino, use a seguinte solução alternativa:
Exclua a tabela de destino correspondente (por exemplo, a tabela de destino no Hologres).
Edite a tarefa de sincronização e remova a tabela da tarefa.
Adicione novamente a tabela à tarefa.
Atualize os mapeamentos de coluna.
Salve e implante a tarefa.
Se a tarefa estiver em execução, clique em Apply Updates para que as alterações entrem em vigor.
Etapa 5: Implantar e executar a tarefa
Após concluir todas as configurações, clique em Save na parte inferior da página para salvar a configuração da tarefa.
As tarefas de sincronização de banco de dados completo não suportam depuração direta e precisam ser implantadas no Operation Center para execução. Portanto, tanto tarefas novas quanto editadas requerem a operação Deploy para entrar em vigor.
Durante a implantação, se você selecionar Start immediately after deployment, a tarefa é iniciada simultaneamente à implantação. Caso contrário, após a conclusão da implantação, acesse a página e inicie a tarefa manualmente na coluna Actions da tarefa de destino.
Clique no Name/ID da tarefa correspondente em Tasks para visualizar o processo de execução detalhado da tarefa.
Etapa 6: Configuração de alertas
1. Adicionar um alerta
Na lista , localize a tarefa de sincronização de banco de dados completo em tempo real desejada e clique em na coluna de ações para configurar políticas de alerta para a tarefa.

(1) Clique em Create Rule para configurar uma regra de alerta.
Defina Alert Reason para monitorar métricas como Business delay, Failover, Task status, DDL Notification e Task Resource Utilization para a tarefa, e configure níveis de alerta CRITICAL ou WARNING com base nos limiares especificados.
Ao configurar Configure Advanced Parameters, é possível controlar o intervalo entre mensagens de alerta para evitar o envio excessivo de mensagens de uma só vez, o que pode gerar desperdício e acúmulo de mensagens.
Se você selecionar Business delay, Task status ou Task Resource Utilization como motivo do alerta, também é possível ativar notificações de recuperação para informar os destinatários quando a tarefa retornar ao estado normal.
(2) Gerencie as regras de alerta.
Para regras de alerta já criadas, use o botão de alternância para ativar ou desativar uma regra. Também é possível enviar alertas para destinatários distintos com base nos níveis de alerta.
2. Visualizar alertas
Clique em na lista de tarefas expandida para acessar a página de eventos de alerta, onde é possível visualizar os alertas que foram disparados.
Gerenciar tarefas
Editar uma tarefa
Na página , localize a tarefa de sincronização criada, clique em More na coluna Operation e, em seguida, clique em Edit para modificar as informações da tarefa. O procedimento é o mesmo utilizado para configurar uma tarefa.
Para tarefas que não estão no estado em execução, modifique a configuração diretamente, salve as alterações e implante a tarefa no ambiente de produção para que as mudanças entrem em vigor.
Para tarefas no estado Running, se você editar e implantar a tarefa sem selecionar Start immediately after deployment, o botão de ação original será alterado para Apply Updates. Clique nesse botão para que as alterações entrem em vigor no ambiente de produção.
-
Após clicar em Apply Update, o sistema executa três etapas sequenciais: Stop, Deploy e Restart.
-
Se a alteração envolver adição de novas tabelas ou substituição de tabelas existentes:
Durante a aplicação da atualização, não é possível selecionar um checkpoint. Após confirmar, o sistema realiza a migração de schema e a inicialização completa das novas tabelas. Concluída a inicialização completa, a sincronização incremental das novas tabelas tem início junto com as tabelas já existentes.
-
Se outras configurações forem modificadas:
Durante a aplicação da atualização, é possível selecionar um checkpoint. Após confirmar, a tarefa é retomada a partir do checkpoint especificado. Se nenhum checkpoint for especificado, a tarefa é retomada a partir do checkpoint em que foi interrompida pela última vez.
As tabelas não modificadas não são afetadas e retomam a execução a partir do checkpoint em que foram interrompidas após a atualização e reinicialização.
-
Visualizar tarefas
Após criar uma tarefa de sincronização, é possível visualizar a lista de tarefas criadas e as informações básicas de cada uma na página de tarefas de sincronização.

Na coluna de ações, é possível Start ou Stop tarefas de sincronização e, no menu More, é possível edit ou View tarefas de sincronização.
-
Para tarefas iniciadas, visualize o status básico de execução em Execution Overview e clique na área de visão geral correspondente para ver os detalhes de execução.

Retomada baseada em checkpoint
Casos de uso
A redefinição manual de checkpoints ao iniciar ou reiniciar uma tarefa é aplicável aos seguintes cenários:
Recuperação de tarefas e retomada de dados: Quando uma tarefa é interrompida inesperadamente, pode ser necessário especificar manualmente um ponto de interrupção como novo checkpoint de início para garantir que os dados sejam retomados a partir do breakpoint correto.
Solução de problemas e retroação de dados: Se dados sincronizados estiverem ausentes ou com anomalias, reverta o checkpoint para um ponto anterior ao problema e reprocesse os dados com falha para corrigi-los.
Alterações significativas na configuração da tarefa: Após realizar mudanças relevantes na configuração, como o schema da tabela de destino ou os mapeamentos de colunas, recomenda-se redefinir o checkpoint para iniciar a sincronização a partir de um ponto específico no tempo, garantindo a precisão dos dados sob a nova configuração.
Instruções
Clique em Start e, na caixa de diálogo, selecione Whether to reset the site:

Primeira inicialização: não é necessário selecionar a opção de redefinição de checkpoint. Execute a tarefa diretamente. O sistema realiza automaticamente a inicialização completa e, após concluí-la, alterna para a sincronização incremental.
Executar sem redefinir o checkpoint: a tarefa é retomada a partir do checkpoint em que foi interrompida pela última vez (o último checkpoint).
Redefinir o checkpoint e selecionar um horário: a tarefa inicia a partir do checkpoint de tempo especificado. Certifique-se de que o horário selecionado não ultrapasse o checkpoint mais antigo suportado pelo binlog do source.
Se ocorrer um erro de checkpoint ou de checkpoint não encontrado ao executar uma tarefa de sincronização, tente as seguintes soluções:
Redefina o checkpoint: ao iniciar a tarefa de sincronização em tempo real, redefina o checkpoint e selecione o checkpoint mais antigo disponível do banco de dados de source.
Ajuste o período de retenção do log: se o checkpoint do banco de dados tiver expirado, considere ajustar o período de retenção do log no banco de dados. Por exemplo, defina o período de retenção para 7 dias.
Sincronização de dados: se dados forem perdidos, considere realizar novamente uma sincronização completa ou configure uma tarefa de sincronização em lote para sincronizar manualmente os dados perdidos.
O&M e ajuste de tarefas
Após o início de uma tarefa, se você encontrar problemas como latência no consumo de dados, tarefas travadas ou desempenho insatisfatório, consulte Troubleshoot and tune real-time synchronization tasks para obter soluções.
FAQ
Para perguntas frequentes sobre sincronização de banco de dados completo em tempo real, consulte FAQ about real-time full-database synchronization.
Apêndice: Formato da tabela de changelog incremental
Layout plano das colunas de source
|
Nome da coluna |
Descrição |
|
sequence_id |
O ID do registro do evento incremental. O valor é único e auto-incremental. |
|
operation_type |
O tipo de operação (I/D/U). |
|
execute_time |
Timestamp dos dados |
|
before_image |
Indica se este é um registro anterior à alteração (Y/N) |
|
after_image |
Indica se este é um registro posterior à alteração (Y/N) |
|
src_datasource |
Fonte de dados de source dos dados |
|
src_database |
Banco de dados de source dos dados |
|
src_table |
Tabela de source dos dados |
|
Coluna 1 |
Coluna de dados real 1 |
|
Coluna 2 |
Coluna de dados real 2 |
|
Coluna 3 |
Coluna de dados real 3 |
Mesclar colunas da tabela de source em JSON
|
Nome da coluna |
Descrição |
|
sequence_id |
ID do registro do evento incremental. O valor é único e incremental. |
|
operation_type |
Tipo de operação (I/D/U)DDL: ALTER, TRUNCATE, RENAME |
|
execute_time |
Timestamp dos dados |
|
before_image |
Indica se este é um registro anterior à alteração (Y/N) |
|
after_image |
Indica se este é um registro posterior à alteração (Y/N) |
|
src_datasource |
Fonte de dados de source dos dados |
|
src_database |
Banco de dados de source dos dados |
|
src_table |
Tabela de source dos dados |
|
ddl_sql |
Quando a operação é do tipo DDL, a instrução DDL é gravada nesta coluna. |
|
data_columns |
Mescla as colunas de dados reais em JSON |
e selecione Manually enter e Built-in Variable para concatenar e gerar o nome da tabela de destino. As variáveis suportadas incluem nome da fonte de dados de origem, nome do banco de dados de origem e nome da tabela de origem.





na coluna Target Table para adicionar colunas.
na página.