Todos os produtos
Search
Central de documentação

DataWorks:Synchronize MySQL to MaxCompute using a full and incremental task

Última atualização: Sep 25, 2026

O Data Integration oferece suporte à sincronização completa e incremental de bancos de dados inteiros a partir de fontes como ApsaraDB for OceanBase, MySQL, Oracle e PolarDB para o MaxCompute. Esse link de sincronização realiza uma migração completa inicial e, em seguida, sincroniza continuamente as alterações incrementais, consolidando-as no destino diariamente (T+1). Este tópico usa MySQL para MaxCompute como exemplo para descrever como criar uma tarefa completa e incremental.

Como funciona

Uma tarefa completa e incremental combina subtarefas em lote e em tempo real para migrar e consolidar dados na tabela base de destino. Após o início da tarefa, o sistema cria e coordena automaticamente subtarefas em lote e em tempo real para consolidar os dados na tabela de destino (tabela base).

O processo compreende três fases:

  1. Carga completa inicial: uma tarefa em lote migra os schemas de tabela e os dados existentes de todas as tabelas do banco de dados de origem para o MaxCompute. Após a conclusão, essa tarefa em lote é congelada.

  2. Sincronização incremental: uma tarefa em tempo real captura continuamente as alterações (Insert, Update, Delete) do binlog do banco de dados de origem (como o binlog do MySQL) e as grava em uma tabela de log temporária no MaxCompute em tempo quase real.

  3. Consolidação periódica: uma tarefa de consolidação diária (T+1) combina os dados incrementais do dia anterior da tabela de log com a tabela base, gerando um snapshot completo em uma nova partição. Essa tarefa de consolidação é executada uma vez por dia.

image

Principais características:

  • Mapeamento de tabelas muitos-para-muitos ou muitos-para-um: sincronize várias tabelas de origem para as tabelas de destino correspondentes, ou consolide múltiplas tabelas de origem em uma única tabela de destino usando regras de mapeamento.

  • Composição: uma tarefa completa e incremental é composta por uma subtarefa em lote (carga completa), uma subtarefa em tempo real (sincronização incremental) e uma tarefa de consolidação (consolidação de dados).

  • Suporte a tipos de tabela de destino: os dados podem ser gravados em tabelas particionadas e não particionadas no MaxCompute.

Observações de uso

  • Requisitos de recursos: as tarefas devem ser executadas em um serverless resource group. Ao sincronizar dados por instância, as especificações mínimas são: 2 CUs para um grupo de recursos sem servidor.

  • Conectividade de rede: certifique-se de que o grupo de recursos do Data Integration tenha conectividade de rede com os data sources de origem (como MySQL) e de destino (como MaxCompute). Para mais informações, consulte Network connectivity.

  • Restrições de região: somente data sources MaxCompute autogerenciados na mesma região do workspace DataWorks atual são suportados. Ao usar um data source MaxCompute autogerenciado, ainda é necessário associar um recurso de computação MaxCompute no Data Studio. Caso contrário, não será possível criar nós SQL do MaxCompute, o que causará falha no nó de conclusão da sincronização completa.

  • Restrições do grupo de recursos de agendamento: o serverless resource group configurado para a tarefa é usado como grupo de recursos de agendamento.

  • Restrições de tipo de tabela de destino: não há suporte para sincronização de dados de origem em tabelas externas do MaxCompute.

Notas

  • Requisitos de chave primária: tabelas sem chaves primárias não são suportadas. Para essas tabelas, especifique manualmente uma ou mais colunas como chaves primárias de negócio (Specify Primary Key) durante a configuração.

  • Latência de visibilidade dos dados: no dia em que você configura uma tarefa completa e incremental para o MaxCompute, só é possível consultar dados históricos completos. Os dados incrementais podem ser consultados no MaxCompute somente após a conclusão da consolidação do dia seguinte. Para mais informações, consulte a seção de consolidação periódica em How it works.

  • Armazenamento e ciclo de vida: uma tarefa completa e incremental gera uma partição completa todos os dias. Para evitar uso excessivo de armazenamento, as tabelas MaxCompute criadas automaticamente pela tarefa têm um ciclo de vida padrão de 30 dias. Se isso não atender às suas necessidades de negócio, clique no nome da tabela MaxCompute correspondente para modificar o ciclo de vida durante a configuração da tarefa. Para mais informações, consulte Edit the destination table schema (optional).

  • SLA: o Data Integration usa o canal de dados do MaxCompute para upload e download de dados. Para mais informações sobre o SLA do canal de dados, consulte MaxCompute data channel SLA. Avalie sua solução de sincronização de dados com base no SLA do canal de dados do MaxCompute.

  • Política de retenção de binlog: a sincronização em tempo real depende do binlog da instância MySQL de origem. Certifique-se de que o período de retenção do binlog seja suficiente para evitar interrupções na sincronização causadas por offsets de início ausentes quando uma tarefa fica pausada por um período prolongado ou é reiniciada após uma falha.

Faturamento

  • Uma tarefa completa e incremental inclui uma tarefa de sincronização em lote para a fase de carga completa, uma tarefa de sincronização em tempo real para a fase incremental e uma tarefa agendada para a fase de consolidação periódica. Essas três fases são cobradas separadamente. Todas elas consomem CUs do grupo de recursos. Para mais informações sobre o faturamento de CUs, consulte Resource group billing. A tarefa agendada também gera taxas de agendamento de tarefas. Para mais informações, consulte Task scheduling billing.

  • Além disso, o link de sincronização completa e incremental para o MaxCompute exige consolidações periódicas de dados completos e incrementais, que consomem recursos de computação do MaxCompute. Esses custos são cobrados diretamente pelo MaxCompute e são proporcionais ao volume dos dados completos e ao ciclo de consolidação. Para mais informações, consulte MaxCompute billing.

Procedimento

Etapa 1: Selecione um tipo de tarefa de sincronização

  1. Acesse o DataWorks console. Na região de destino, clique em Data Integration > Data Integration no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Integration.

  2. No painel de navegação à esquerda, clique em Synchronization Task e, em seguida, clique em Create Synchronization Task no topo da página. Na caixa de diálogo exibida, configure as seguintes definições principais:

    • Source Type: MySQL.

    • Destination Type: MaxCompute.

    • Specific Type: Full and Incremental.

    • Sync Procedure: Schema Migration, Incremental Sync, Full Synchronization e Periodic Merge.

Etapa 2: Configure os data sources e os grupos de recursos

  1. Na seção Source Information, selecione o data source MySQL que você adicionou. Na seção Destination, selecione o data source MaxCompute que você adicionou.

  2. Na seção Running Resources, selecione o Resource Group para a tarefa e aloque Resource Group CU para ele. É possível configurar CUs separadamente para sincronização completa e incremental, controlando os recursos com precisão e evitando desperdícios.

    Nota

    As tarefas de sincronização em lote no DataWorks são despachadas pelo grupo de recursos de agendamento para o grupo de recursos do Data Integration para execução. Por isso, essas tarefas consomem recursos tanto do grupo de recursos do Data Integration quanto do grupo de recursos de agendamento, o que gera taxas de instância de agendamento.

  3. Verifique se os data sources de origem e de destino passam na Connectivity Check.

Etapa 3: Selecione as tabelas a sincronizar

Na área Source Tables, selecione as tabelas a sincronizar e clique no ícone image para movê-las para a lista Selected Tables à direita.

Dois métodos de seleção de tabelas estão disponíveis: Select Specific Tables e Select Tables by Regex. Alternar entre os métodos limpa os resultados do outro método. Você pode selecionar até 5.000 tabelas. Também é possível usar Batch Paste to Select Tables para adicionar tabelas rapidamente.

Quando houver muitos bancos de dados e tabelas, use Database Filtering ou Search for Tables, ou configure expressões regulares para selecionar as tabelas a sincronizar.

Etapa 4: Configure as definições da tarefa

  • Intervalo de tempo da tabela de log: este parâmetro define o intervalo de consulta de tempo para consolidar dados da tabela de log na partição de destino.

    Para evitar erros de partição entre dias causados por latência de dados, amplie esse intervalo adequadamente para garantir que todos os dados pertencentes à partição sejam consolidados corretamente.

  • Configurações de agendamento da tarefa de consolidação: defina o horário de agendamento para a tarefa de consolidação diária. Para mais informações sobre como configurar o horário de agendamento, consulte Schedule settings.

  • Parâmetros de agendamento periódico: configure os parâmetros de agendamento. É possível usá-los para atribuir valores às partições nas configurações de partição subsequentes, permitindo gravar dados em partições por data.

  • Configurações de partição da tabela: configure partições para a tabela de destino, incluindo parâmetros importantes como nomes de colunas de partição e métodos de atribuição de valores. Utilize parâmetros de agendamento na coluna de atribuição para gerar partições por data automaticamente.

Etapa 5: Configure o mapeamento da tabela de destino

Nesta etapa, defina as regras de mapeamento entre as tabelas de origem e de destino, e especifique chaves primárias, partições dinâmicas, configurações de DDL/DML e outras regras que determinam como os dados são gravados.

Ação

Descrição

Refresh

O sistema lista automaticamente as tabelas de origem selecionadas, mas os atributos da tabela de destino só entram em vigor após você atualizar e confirmá-los.

  • Selecione as tabelas a sincronizar em lote e clique em Batch Refresh Mapping.

  • 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.

Customize Mapping Rules for Destination Table Names (opcional)

O sistema possui uma regra padrão de geração de nomes de tabela: ${source_database_name}_${table_name}. Clique em Modify na coluna Customize Mapping Rules for Destination Table Names para adicionar regras personalizadas de nomenclatura da tabela de destino.

  • Nome da regra: defina um nome para a regra. Recomenda-se usar um nome com significado claro para o negócio.

  • Nome da tabela de destino: clique no botão image para selecionar Manual Input e Built-in Variable para concatenar o nome da tabela de destino. As variáveis suportadas incluem o nome do data source de origem, o nome do banco de dados de origem e o nome da tabela de origem.

  • Editar variáveis integradas: aplique transformações de string às variáveis integradas.

Os seguintes cenários são suportados:

  1. Adicionar prefixos ou sufixos aos nomes de tabela: acrescente um prefixo ou sufixo ao nome da tabela de origem configurando constantes.

  2. Substituição uniforme de strings: substitua a string dev_ nos nomes de tabela de origem por prd_.

  3. Gravar múltiplas tabelas em uma única tabela.

Editar mapeamento de tipos de coluna (opcional)

O sistema fornece um mapeamento 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 o mapeamento de tipos de coluna entre as tabelas de origem e destino. Após a configuração, clique em Apply and Refresh Mapping.

Ao editar o mapeamento de tipos de coluna, certifique-se de que as regras de conversão de tipos estão corretas. Regras incorretas causam falhas na conversão de tipos, gerando dados inválidos e afetando a execução da tarefa.

Editar o schema da tabela de destino (opcional)

O sistema cria automaticamente as tabelas de destino que não existem com base nas regras de mapeamento de nomes personalizados, 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. Em cenários comuns, não é necessária intervenção manual. Também é possível modificar o schema da tabela das seguintes formas:

  • Adicionar colunas a uma única tabela: clique no botão image.png na coluna Destination Table Name para adicionar colunas.

  • Adicionar colunas em lote: selecione todas as tabelas a sincronizar e escolha Batch Modify > Destination Table Schema - Batch Modify and Add Field na parte inferior da tabela.

  • Não há suporte para renomear colunas.

Para tabelas existentes, só é possível adicionar colunas. Para novas tabelas, você pode adicionar colunas, colunas de partição e definir o tipo 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 recém-adicionadas nas etapas anteriores exigem atribuição manual de valores. Execute as seguintes operações:

  • Atribuição para uma única tabela: clique no botão Configuration na coluna Value assignment para atribuir valores às colunas da tabela de destino.

  • Atribuição em lote: na parte inferior da lista, escolha Batch Modify > Value assignment para atribuir valores em lote a colunas com o mesmo nome nas tabelas de destino.

É possível atribuir constantes ou variáveis às colunas. Alterne o tipo em Value Type. Os seguintes métodos são suportados:

  • Table columns

    • Manual input: insira diretamente um valor constante ou parâmetro de agendamento, como abc ou ${bizdate}.

    • Select variable: selecione uma variável fornecida pelo sistema como valor da coluna. Consulte as descrições na página para conhecer os tipos de variável.

    • Source column: use o valor de uma coluna da tabela de origem como valor da coluna. O tipo de valor pode ser um valor de coluna ou um valor de tempo.

      • Valor de coluna: se a coluna de origem não for do tipo tempo, grave diretamente o valor da coluna de origem na coluna de destino.

      • Valor de tempo: se o valor da coluna de origem for um valor de tempo, processe-o de acordo com diferentes formatos e especifique o Destination Format para formatar o valor da partição.

        • String de tempo: uma string que representa um tempo, como 2018-10-23 02:13:56 ou 2021/05/18. Serialize-a como um tempo especificando os formatos de tempo de origem e destino. Para os exemplos acima, use os formatos yyyy-MM-dd HH:mm:ss e yyyy/MM/dd, respectivamente, para a serialização.

        • Objeto de tempo: se o valor de origem for do tipo tempo, como Date ou Datetime, selecione diretamente o tipo correspondente.

        • Timestamp Unix (segundos): timestamp em nível de segundo. Números ou strings em formato de timestamp de 10 dígitos também são suportados, como 1610529203 ou "1610529203".

        • Timestamp Unix (milissegundos): timestamp em nível de milissegundo. Números ou strings em formato de timestamp de 13 dígitos também são suportados, como 1610529203002 ou "1610529203002".

    • Function: aplique transformações simples às colunas de origem usando funções para gerar valores de partição. Para mais informações, consulte Function reference.

  • Partition columns: crie partições dinamicamente com base nos valores enumerados ou no tempo de evento das colunas de origem.

    • Manual input: insira um valor constante ou um parâmetro de agendamento configurado em Configure Scheduling Parameters for Periodical Scheduling, como abc ou ${bizdate}.

Source Split Key

Na coluna source split key, selecione uma coluna da tabela de origem na lista suspensa ou escolha Not Split. Durante a execução da tarefa, os dados são divididos em múltiplas tarefas com base nessa coluna para leitura de dados em lote e de forma concorrente.

Recomenda-se usar uma coluna com dados distribuídos uniformemente, como a chave primária da tabela, como source split key. Tipos string, ponto flutuante e data não são suportados.

O source split key atualmente é suportado apenas quando a origem é MySQL.

Skip Full Synchronization

Se a sincronização completa estiver configurada na etapa 3, cancele a sincronização de dados completos para tabelas individuais. Essa opção é indicada quando você já sincronizou os dados completos para o destino por outros métodos.

Full condition

Aplique filtragem condicional à origem durante a fase de carga completa. Especifique apenas a cláusula WHERE, sem incluir a palavra-chave WHERE.

Configure DML Rule

O processamento de mensagens DML filtra e controla os dados de alteração (Insert, Update, Delete) capturados da origem antes de serem gravados no destino durante a sincronização em tempo real. Esta regra só entra em vigor durante a fase incremental.

Full Merge Cycle

Atualmente, apenas consolidações diárias são suportadas. Configure o horário de agendamento específico da tarefa de consolidação em Custom Merge Time.

Merge Primary Key

Defina uma chave primária selecionando uma ou mais colunas na tabela.

  • Chave primária de coluna única: selecione uma única coluna com valores únicos (como id) como chave primária.

  • Chave primária composta: quando nenhuma coluna individual for única, selecione uma combinação de múltiplas colunas. Os valores combinados dessas colunas devem identificar exclusivamente cada linha para garantir a unicidade dos dados durante as gravações e evitar sobreposições.

Etapa 6: Configuração avançada

Configuração de parâmetros avançados

Para uma configuração detalhada da tarefa que atenda a requisitos de sincronização personalizados, acesse a aba Advanced Parameters e modifique os parâmetros avançados.

  1. Clique em Advanced Configuration no canto superior direito da página para acessar a página de configuração de parâmetros avançados.

  2. Modifique os valores dos parâmetros com base nas descrições fornecidas. O significado de cada parâmetro está explicado ao lado do seu nome.

  3. A configuração assistida por IA também é suportada. Insira instruções em linguagem natural, como ajustar a concorrência da tarefa, e o modelo de linguagem de grande escala gera valores de parâmetros recomendados. Decida se aceita ou não os parâmetros gerados pela IA com base em suas necessidades reais.

Importante

Modifique parâmetros somente quando entender completamente seus significados. Modificações incorretas podem causar problemas inesperados, como latência na tarefa, consumo excessivo de recursos que bloqueia outras tarefas ou perda de dados.

Configuração de recursos DDL

Alguns links de sincronização em tempo real detectam alterações de metadados nos schemas de tabelas de origem e notificam o destino para sincronizar as atualizações, ou executam outras ações, como enviar alertas, ignorar ou encerrar a tarefa.

Clique em Configure DDL Capability no canto superior direito da página para definir uma política de processamento para cada tipo de alteração. As políticas suportadas variam conforme o canal.

  • Normal: o destino processa as informações de alteração DDL provenientes da origem.

  • Ignore: a mensagem de alteração é ignorada e nenhuma modificação é feita no destino.

  • Error: a tarefa de sincronização em tempo real é encerrada e seu status é definido como Error.

  • Alert: um alerta é enviado quando este tipo de alteração ocorre na origem. Configure as regras de notificação DDL em Configure Alert Rule.

Nota

Após uma nova coluna ser adicionada na origem e sincronizada para o destino via DDL, o sistema não preenche retroativamente os dados existentes na tabela de destino para essa coluna.

Etapa 7: Execute a tarefa de sincronização

  1. Após concluir todas as configurações, clique em Save para salvar a tarefa.

  2. Na página Data Integration > Sync Tasks, localize a tarefa de sincronização criada e clique em Deploy na coluna Operation. Se você selecionar Start immediately after deployment durante a implantação, a tarefa será executada imediatamente após a confirmação. Caso contrário, inicie a tarefa manualmente.

    Nota

    As tarefas do Data Integration devem ser implantadas no ambiente de produção antes de serem executadas. Por isso, realize a operação Publish após criar ou editar uma tarefa para que as alterações entrem em vigor.

  3. Clique em Name/ID da tarefa correspondente em Tasks para visualizar o processo detalhado de execução da tarefa.

Próxima etapa

Após concluir a configuração da tarefa, gerencie a tarefa criada, adicione ou remova tabelas, configure alertas de monitoramento e visualize as principais métricas da tarefa. Para mais informações, consulte Manage synchronization tasks.

Perguntas frequentes

P: Por que os dados da tabela base não são atualizados conforme o esperado?

R: Veja a seguir a análise das causas e as soluções:

image

Sintoma

Causa

Solução

A verificação de produção de dados da partição T-1 da tabela de log incremental falhou.

A tarefa de sincronização em tempo real falhou, fazendo com que os dados da partição T-1 da tabela de log incremental não fossem produzidos normalmente.

  • Verifique a causa da falha da tarefa de sincronização em tempo real e reinicie a tarefa a partir do offset com falha.

    Nota

    A retenção de binlog do RDS é limitada. Se o binlog no ponto de tempo correspondente for removido, a tarefa de sincronização em tempo real reportará um erro indicando que o offset não foi encontrado.

  • Configure alertas de monitoramento para a subtarefa de sincronização em tempo real.

A verificação de produção de dados da partição T-2 da tabela base de destino falhou.

  1. A tarefa de consolidação do dia anterior falhou.

  2. A partição do dia anterior da tabela base foi excluída.

  • Configure o monitoramento de status de execução para o nó de consolidação. Para mais informações, consulte Configure monitoring rules.

  • Se você excluiu acidentalmente a partição T-2 da tabela base, use o recurso de preenchimento retroativo de dados para restaurá-la. Após restaurar a partição, execute novamente o nó de consolidação. Para mais informações, consulte Backfill data.