O recurso de sincronização completa de banco de dados em tempo real combina uma migração completa única com captura incremental contínua para sincronizar todo o banco de dados de origem, como MySQL ou Oracle, com um sistema de destino com baixa latência. Essa tarefa suporta a sincronização completa dos dados históricos do banco de dados de origem e inicializa automaticamente o esquema e os dados da tabela de destino. Em seguida, a tarefa muda automaticamente para o modo incremental em tempo real, utilizando tecnologias como captura de dados de alteração (CDC) para capturar e sincronizar continuamente as alterações subsequentes. Esse recurso é adequado para cenários como a construção de data warehouses e data lakes em tempo real. Este tópico usa um exemplo de sincronização de dados de um banco de dados MySQL para o MaxCompute em tempo real para descrever como configurar uma tarefa de sincronização.
Pré-requisitos
-
Preparação da fonte de dados
Crie uma fonte de dados de origem e uma fonte de dados de destino. Para mais informações, consulte Gerenciamento de fontes de dados.
Verifique se suas fontes de dados suportam a sincronização completa de banco de dados em tempo real. Para mais informações, consulte Fontes de dados e soluções de sincronização suportadas.
Ative o log para certas fontes de dados, como MySQL, Hologres e Oracle. O método varia conforme a fonte de dados. Para mais informações, consulte Lista de fontes de dados.
MaxCompute: O tipo Decimal é suportado apenas no MaxCompute 2.0. Antes de executar a sincronização, ative os tipos de dados do MaxCompute 2.0. Para mais informações, consulte Edição de tipo de dados do MaxCompute V2.0.
Grupo de recursos: Tenha um grupo de recursos serverless configurado.
Conectividade de rede: Configure a conectividade de rede entre o grupo de recursos e as fontes de dados.
Observações de uso
-
O DataWorks suporta dois tipos de sincronização completa de banco de dados: sincronização completa de banco de dados em tempo real e completa e incremental (quase em tempo real). Ambos os tipos podem realizar a sincronização completa dos dados históricos em um banco de dados de origem e, em seguida, mudar automaticamente para o modo incremental em tempo real. No entanto, os dois tipos diferem na latência e nos requisitos da tabela de destino:
Atualidade: O recurso de sincronização completa de banco de dados em tempo real oferece uma latência de segundos a minutos. O recurso de sincronização completa e incremental (quase em tempo real) oferece uma atualidade T+1.
-
Tabela de destino (MaxCompute):
PK Delta Table: Todos os recursos da sincronização completa de banco de dados em tempo real são suportados.
Tabela regular e Append Delta Table: Apenas o modo Append é suportado quando você seleciona o modo de sincronização incremental em uma tarefa de sincronização completa de banco de dados em tempo real.
Completa e incremental (quase em tempo real): Todos os tipos de tabela anteriores são suportados.
-
As tarefas de sincronização completa de banco de dados em tempo real podem ser configuradas no DataStudio (Data Studio) e na Data Integration. Os dois módulos são funcionalmente interoperáveis.
Configuração consistente: Independentemente de criar uma tarefa no Data Studio ou no módulo 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_jobsno módulo Data Studio. Essas tarefas são categorizadas por canais no formatotipo de origem-tipo de destinopara gerenciamento unificado.
Faça login no console do DataWorks. 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, clique em Create Synchronization Task na parte superior da página 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 objetos de banco de dados (como tabelas, colunas e tipos de dados) no destino que correspondem à origem, sem incluir dados.
Full Synchronization (opcional): Executa uma cópia única de todos os dados históricos dos objetos especificados (como tabelas) da origem para o destino. Isso é normalmente usado para migração inicial de dados ou inicialização de dados.
Incremental Sync (opcional): Após a conclusão da sincronização completa, captura continuamente os dados de alteração (inserções, atualizações e exclusões) da origem e os sincroniza com o destino.
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 para a tarefa.
NotaSe os logs da tarefa exibirem uma mensagem como
Please confirm whether there are enough resources..., isso indica que as unidades de computação (CUs) disponíveis no grupo de recursos atual são insuficientes para iniciar ou executar a tarefa. Aumente o número de CUs alocadas para a tarefa no painel Configure Resource Group para alocar mais recursos de computação.Para valores recomendados de tamanho de recursos, consulte CUs recomendadas para Data Integration. Ajuste os valores com base em seus requisitos reais.
Garanta que tanto a fonte de dados de origem quanto a fonte de dados de destino passem na Connectivity Check.
-
Nesta etapa, selecione as tabelas a serem sincronizadas da fonte de dados de origem na seção Source Tables e clique no ícone
para movê-las para a seção Selected Tables à direita. Se houver muitas tabelas, use Database Filtering ou Table filtering para selecionar as tabelas a serem sincronizadas configurando expressões regulares.
-
Para gravar dados de várias tabelas fragmentadas (com o mesmo esquema) 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 aplica-se a cenários de sincronização de mesclagem de tabelas fragmentadas (semelhante à sincronização baseada em sharding), melhorando a eficiência da configuração e evitando a necessidade de adicionar repetidamente regras de sincronização muitos-para-um.
Replay: Apenas PK Delta Table é suportada. Semelhante à sincronização normal, apenas colunas de dados são sincronizadas.
Append: Tabelas regulares e Append Delta Tables são suportadas. Os dados em tempo real da tabela de origem são gravados na tabela de destino com metadados anexados, como operações de inserção, atualização e exclusão. Para o formato da tabela de log de anexo, consulte Formato da tabela de log de anexo.
Selecione as tabelas para sincronizar em lotes e clique em Batch Refresh Mapping.
Nome da tabela de destino: O nome da tabela de destino é gerado automaticamente com base nas regras de Customize Mapping Rules for Destination Table Names. O formato padrão é
${source_database_name}_${table_name}. Se não existir uma tabela com o mesmo nome no destino, o sistema cria uma automaticamente.Nome da regra: Defina um nome para a regra. Recomendamos usar um nome com significado comercial claro.
Nome da tabela de destino: Clique no botão
para selecionar 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.Editar variáveis integradas: Variáveis integradas suportam transformações de string além dos valores originais.
Adicionar prefixo ou sufixo a um nome: Adicione um prefixo ou sufixo ao nome da tabela de origem definindo uma constante.
Configuração da regra
Resultado


Substituição unificada de string: Substitua a string
dev_no nome da tabela de origem porprd_.Configuração da regra
Resultado


Gravar várias tabelas em uma única tabela: Defina o nome da tabela de destino como uma constante.
Configuração da regra
Resultado


Adicionar colunas a uma única tabela: Clique no botão
na coluna Target Table para adicionar colunas.Adicionar colunas em lotes: Selecione todas as tabelas para sincronizar e escolha na parte inferior da tabela.
A renomeação de nomes de coluna não é suportada.
Atribuir valores a uma única tabela: Clique no botão Configuration na coluna Value assignment para atribuir valores às colunas da tabela de destino.
Atribuir valores em lotes: Escolha na parte inferior da lista para atribuir valores em lotes às mesmas colunas na tabela de destino.
Colunas de tabela
Entrada manual: Insira diretamente um valor constante, como
abc.Selecionar uma variável: Selecione uma variável suportada pelo sistema na lista suspensa. Visualize o significado específico da variável na dica de ferramenta
na interface.Função: Use funções para realizar transformações simples nas colunas de destino. Para mais informações, consulte Referência de funções.
Colunas de partição: Crie partições dinamicamente usando os valores de enumeração de uma coluna de origem ou o tempo do evento como valor de partição.
Entrada manual: Insira diretamente um valor constante, como
abc.Coluna de origem: Use os valores de uma coluna da tabela de origem como valores da coluna de partição. O tipo de valor pode ser um valor de coluna ou um valor de tempo.
Valor de coluna: Os valores de enumeração da coluna de origem. Recomendamos usar uma coluna com um número limitado de valores de enumeração para evitar excesso de partições e dados muito dispersos.
Valor de tempo: Se os valores na coluna de origem forem carimbos de data/hora, processe-os com base em diferentes formatos e especifique um Target format para formatar os valores de partição.
String de tempo: Uma string que representa um tempo, como "
2018-10-23 02:13:56" ou "2021/05/18". Serialize-a em um valor de tempo especificando os formatos de tempo de origem e destino. Para os exemplos anteriores, use os formatosyyyy-MM-dd HH:mm:sseyyyy/MM/ddpara serialização.Objeto de tempo: Se o valor de origem já for um tipo de tempo, como
DateouDatetime, selecione este tipo diretamente.Carimbo de data/hora Unix (segundos): Um carimbo de data/hora no nível de segundo. Também suporta números ou strings no formato de carimbo de data/hora de 10 dígitos, como
1610529203ou"1610529203".Carimbo de data/hora Unix (milissegundos): Um carimbo de data/hora no nível de milissegundo. Também suporta números ou strings no formato de carimbo de data/hora de 13 dígitos, como
1610529203002ou"1610529203002".
Selecionar uma variável: Use o tempo de alteração do evento de origem EVENT_TIME como fonte de valor de partição. O uso é semelhante ao das colunas de origem.
Função: Use funções para realizar transformações simples na coluna de origem antes de usar o resultado como valor de partição. Para mais informações, consulte Referência de funções.
O modo completo + incremental da sincronização completa de banco de dados em tempo real suporta apenas o tipo de tabela
PK Delta Tablecomo destino.No modo apenas incremental, o modo replay suporta
PK Delta Table, e o modo append suporta tipos de tabela regular eAppend Delta Table.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 descrições. 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 simultaneidade da tarefa. O modelo de linguagem grande gera valores de parâmetros recomendados. Decida se aceita os parâmetros gerados por IA com base em seus requisitos reais.

Processamento normal: O destino processa as informações de alteração DDL da origem.
Ignorar: A mensagem de alteração é ignorada e o destino não é modificado.
Erro: A tarefa de sincronização completa de banco de dados em tempo real é encerrada e o status é definido como Error.
Alerta: Um alerta é enviado a você quando esse tipo de alteração ocorre na origem. Configure uma regra de notificação DDL em Configure Alert Rule.
Após concluir todas as configurações, clique em Save na parte inferior da página para salvar a configuração da tarefa.
Tarefas de sincronização completa de banco de dados não suportam depuração direta. Implante-as no Operation Center para execução. Portanto, execute a operação Deploy para que qualquer tarefa nova ou editada entre em vigor.
Durante a implantação, se selecionar Start immediately after deployment, a tarefa inicia simultaneamente com a implantação. Caso contrário, após a implantação, acesse e inicie manualmente a tarefa na coluna Operation da tarefa alvo.
Clique no Name/ID da tarefa correspondente em Tasks para visualizar o processo detalhado de execução da tarefa.
Ao configurar Configure Advanced Parameters, controle o intervalo de tempo entre mensagens de alerta para evitar o envio excessivo de mensagens de uma só vez, o que pode causar desperdício e acúmulo de mensagens.
Se o motivo do alerta estiver definido como Business delay, Task status ou Task Resource Utilization, ative também notificações de recuperação para avisar os destinatários quando a tarefa retornar ao normal.
Na página , localize a tarefa de sincronização criada, clique em More na coluna Operation e clique em Edit para modificar as informações da tarefa. O procedimento é o mesmo da configuração de tarefa.
Para tarefas que não estão em execução, modifique diretamente a configuração, salve-a e implante a tarefa no ambiente de produção para que entre em vigor.
Para tarefas Running, ao editar e implantar a tarefa sem selecionar Start immediately after deployment, o botão de operação original muda para Apply Updates. Clique neste botão para que as alterações entrem em vigor no ambiente de produção.
-
Após clicar em Apply Updates, o sistema executa três etapas: Stop, Deploy e Restart.
-
Se a alteração envolver adição de novas tabelas ou troca de tabelas existentes:
A seleção de checkpoint não é suportada ao aplicar atualizações. Após confirmar, o sistema executa migração de esquema e inicialização completa para as novas tabelas. Após a conclusão da inicialização completa, as novas tabelas iniciam operações incrementais juntamente com as tabelas originais.
-
Se outras informações forem modificadas:
A seleção de checkpoint é suportada ao aplicar atualizações. Após confirmar, a tarefa continua executando a partir do checkpoint especificado. Se nenhum checkpoint for especificado, a tarefa retoma do checkpoint em que foi parada pela última vez.
Tabelas não modificadas não são afetadas. Após a atualização e reinício, elas continuam executando a partir do ponto em que a tarefa foi parada pela última vez.
-
Clique em Start ou Stop na coluna Operation para iniciar ou parar uma tarefa de sincronização. No menu More, edite ou View a tarefa de sincronização.
-
Para tarefas iniciadas, visualize o status básico de execução em Execution Overview e clique na área de resumo correspondente para ver os detalhes da execução.

Recuperação de tarefa e retomada de dados: Após uma interrupção da tarefa, especifique manualmente um checkpoint no momento da interrupção para garantir que os dados retomem exatamente do ponto de parada.
Solução de problemas de dados e replay: Se detectar que os dados sincronizados estão ausentes ou anormais, reverta o checkpoint para um momento anterior à ocorrência do problema para reproduzir e corrigir os dados problemáticos.
Alterações importantes na configuração da tarefa: Após fazer alterações significativas na configuração da tarefa (como esquema da tabela de destino ou mapeamento de colunas), recomendamos redefinir o checkpoint para iniciar a sincronização a partir de um horário específico, garantindo a precisão dos dados sob a nova configuração.
Não selecione redefinir checkpoint e execute diretamente: A tarefa continua executando a partir do checkpoint em que foi parada pela última vez (o último checkpoint).
Redefinir checkpoint e selecionar um horário: A tarefa começa a executar a partir do checkpoint especificado. Certifique-se de que o horário selecionado não exceda o horário mais antigo suportado pelo Binlog de origem.
Redefina o checkpoint: Ao iniciar a tarefa de sincronização em tempo real, redefina o checkpoint e selecione o checkpoint disponível mais antigo para o banco de dados de origem.
Ajuste o período de retenção de log: Se o checkpoint do banco de dados expirou, considere ajustar o período de retenção de log no banco de dados, por exemplo, para 7 dias.
Sincronização de dados: Se houver perda de dados, considere realizar uma sincronização completa novamente ou configurar uma tarefa de sincronização em lote para sincronizar manualmente os dados ausentes.
Configurar uma tarefa
Etapa 1: Criar uma tarefa de sincronização
Etapa 2: Configurar fontes de dados e recursos de execução
Etapa 3: Configurar a solução de sincronização
1. Configurar a fonte de dados
2. Configurar o destino de dados
Se apenas Incremental Sync for selecionado para a tarefa de sincronização completa de banco de dados em tempo real, configure o modo de sincronização incremental para gravação na tabela de destino.
3. Mapeamento da tabela de destino
Nesta etapa, defina as regras de mapeamento entre as tabelas de origem e de destino e especifique a chave primária, partição dinâmica, configuração DDL/DML e outras regras para determinar como os dados são gravados.
Operação | Descrição |
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ê atualizá-las 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: |
Edit column type mapping (opcional) | O sistema possui mapeamentos padrão de tipos de coluna entre origem e destino. Clique em Edit Mapping of Field Data Types no canto superior direito da tabela para personalizar o mapeamento de tipos de coluna entre as tabelas de origem e destino e, em seguida, clique em Apply and Refresh Mapping. Ao editar mapeamentos de tipos de coluna, certifique-se de que as regras de conversão de tipo estejam corretas. Regras incorretas podem causar falhas na conversão de tipo, gerando dados incorretos e afetando a execução da tarefa. |
Edit destination table schema (opcional) | O sistema cria automaticamente tabelas de destino inexistentes com base nas regras personalizadas de mapeamento de nomes de tabela ou reutiliza tabelas existentes com o mesmo nome. O DataWorks gera automaticamente o esquema da tabela de destino com base no esquema da tabela de origem. A intervenção manual não é necessária na maioria dos casos. Modifique também o esquema da tabela das seguintes maneiras: Para tabelas existentes, apenas adicione colunas. Para novas tabelas, adicione colunas e colunas de partição e defina o tipo de tabela ou propriedades da tabela. Para detalhes, consulte as áreas editáveis na interface. |
Value assignment | Colunas nativas são mapeadas automaticamente com base em colunas com o mesmo nome nas tabelas de origem e destino. As colunas recém-adicionadas e colunas de partição das etapas anteriores devem receber valores manualmente. Execute as seguintes operações: Ao atribuir valores, utilize constantes e variáveis. Alterne o tipo em Value Type. Os seguintes métodos são suportados: Nota Excesso de partições pode afetar a eficiência da sincronização. Se mais de 1.000 novas partições forem criadas por dia, a criação de partições falhará e a tarefa será encerrada. Portanto, ao definir métodos de atribuição de valores de coluna de partição, estime o número de partições que podem ser geradas. Use métodos de criação de partição no nível de segundo e milissegundo com cautela. |
Source Split Key | Selecione uma coluna da tabela de origem ou selecione Not Split na lista suspensa de chave de divisão de origem. Durante a execução da tarefa, os dados são divididos em várias tarefas com base nesta coluna para permitir leituras de dados simultâneas e em lotes. Recomendamos usar a chave primária da tabela como chave de divisão de origem. Tipos string, ponto flutuante, data e outros não são suportados. Atualmente, a chave de divisão de origem é suportada apenas quando a origem é MySQL. |
Skip Full Synchronization | Se você configurou a sincronização completa na Etapa 3, ignore individualmente a sincronização completa de dados para tabelas específicas. Isso se aplica a cenários onde os dados completos já foram sincronizados com o destino por outros métodos. |
Full condition | Aplique filtragem condicional à origem durante a fase de sincronização completa. Escreva apenas a cláusula WHERE aqui, sem a palavra-chave WHERE. |
Configure DML Rule | O processamento de mensagens DML é usado para realizar filtragem e controle refinados nos dados de alteração capturados da origem ( |
Outros | Table Type: O MaxCompute suporta tabelas regulares, Para mais informações sobre Delta Table, consulte Visão geral da Delta Table. |
Etapa 4: Configuração avançada
Configuração avançada de parâmetros
Para ajustar a configuração da tarefa e atender a requisitos personalizados de sincronização, acesse a aba Advanced Parameters e modifique os parâmetros avançados.
Modifique parâmetros apenas quando compreender totalmente seus significados. Modificações incorretas podem causar problemas inesperados, como latência de tarefa, consumo excessivo de recursos que bloqueia outras tarefas e perda de dados.
Configuração de capacidade DDL
Alguns canais de sincronização em tempo real detectam alterações de metadados no esquema da tabela de origem e notificam o destino para sincronizar as atualizações, ou tomam outras ações, como alertar, ignorar ou encerrar a tarefa.
Clique em Configure DDL Capability no canto superior direito para definir a política de processamento para cada tipo de alteração. As políticas de processamento suportadas variam por canal.
Após a adição de uma nova coluna na origem e sua criação no destino via sincronização DDL, o sistema não preenche dados retroativamente para os dados existentes na tabela de destino.
Etapa 5: Implantar e executar a tarefa
Etapa 6: Configuração de alertas
1. Criar um alerta
Na lista , localize a tarefa de banco de dados completo em tempo real e clique em na coluna Operation 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 da tarefa, como Business delay, Failover, Task status, DDL Notification e Task Resource Utilization, e defina níveis de alerta CRITICAL ou WARNING com base em limiares especificados.
(2) Gerenciar regras de alerta.
Para regras de alerta existentes, use a chave de alerta para ativar ou desativar regras. Envie também alertas para pessoas diferentes com base no nível de alerta.
2. Visualizar alertas
Clique em na lista de tarefas para expandir o painel e acessar a página de eventos de alerta, onde visualize os alertas ocorridos.
Gerenciar tarefas
Editar uma tarefa
Visualizar uma tarefa
Após criar uma tarefa de sincronização, visualize a lista de tarefas de sincronização criadas e as informações básicas de cada tarefa na página de tarefas de sincronização.

Retomada baseada em checkpoint
Casos de uso
Redefinir manualmente o checkpoint ao iniciar ou reiniciar uma tarefa aplica-se principalmente aos seguintes cenários:
Instruções
Clique em Start e, na caixa de diálogo, selecione Whether to reset the site:

Se receber um erro de checkpoint ou uma mensagem indicando que o checkpoint não existe ao executar uma tarefa de sincronização, tente as seguintes soluções:
Operações e ajuste de tarefas
Após o início da tarefa, se encontrar problemas como latência no consumo de dados, paralisação ou baixo desempenho, consulte Solucionar problemas e ajustar tarefas de sincronização em tempo real para obter soluções.
FAQ
Para perguntas frequentes sobre sincronização completa de banco de dados em tempo real, consulte FAQ sobre sincronização completa de banco de dados em tempo real.
Apêndice: Formato da tabela de log de anexo
Colunas de origem achatadas
|
Nome da coluna |
Descrição |
|
sequence_id |
O ID do registro do evento incremental. O valor é único e crescente. |
|
operation_type |
O tipo de operação (I/D/U). |
|
execute_time |
O carimbo de data/hora dos dados. |
|
before_image |
Indica se esta é a imagem pré-alteração (Y/N). |
|
after_image |
Indica se esta é a imagem pós-alteração (Y/N). |
|
src_datasource |
A fonte de dados de onde os dados se originam. |
|
src_database |
O banco de dados de onde os dados se originam. |
|
src_table |
A tabela de onde os dados se originam. |
|
Column 1 |
Coluna de dados real 1. |
|
Column 2 |
Coluna de dados real 2. |
|
Column 3 |
Coluna de dados real 3. |
Colunas de origem mescladas em JSON
|
Nome da coluna |
Descrição |
|
sequence_id |
O ID do registro do evento incremental. O valor é único e crescente. |
|
operation_type |
O tipo de operação (I/D/U).DDL: ALTER, TRUNCATE, RENAME |
|
execute_time |
O carimbo de data/hora dos dados. |
|
before_image |
Indica se esta é a imagem pré-alteração (Y/N). |
|
after_image |
Indica se esta é a imagem pós-alteração (Y/N). |
|
src_datasource |
A fonte de dados de onde os dados se originam. |
|
src_database |
O banco de dados de onde os dados se originam. |
|
src_table |
A tabela de onde os dados se originam. |
|
ddl_sql |
Quando a operação é do tipo DDL, a instrução DDL é gravada nesta coluna. |
|
data_columns |
Colunas de dados reais mescladas em JSON. |