Todos os produtos
Search
Central de documentação

DataWorks:Sincronizar MySQL para MaxCompute usando uma tarefa completa e incremental

Última atualização: Jun 27, 2026

O Data Integration oferece suporte à sincronização completa e incremental de bancos de dados inteiros de fontes como ApsaraDB for OceanBase, MySQL, Oracle e PolarDB para o MaxCompute. Esse link de sincronização executa 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 a sincronização do MySQL para o 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 as subtarefas em lote e em tempo real para mesclar os dados na tabela de destino (tabela base).

O processo consiste em três fases:

  1. Carga completa inicial: Uma tarefa em lote migra os esquemas das tabelas 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 quase em tempo 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 recursos:

  • 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 é formada por uma subtarefa em lote (carga completa), uma subtarefa em tempo real (sincronização incremental) e uma tarefa de consolidação (unificação de dados).

  • Suporte a tabelas de destino: É possível gravar dados tanto em tabelas particionadas quanto não particionadas no MaxCompute.

Observações de uso

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

  • Conectividade de rede: Garanta que o grupo de recursos do Data Integration tenha conectividade de rede tanto com a fonte de dados de origem (como MySQL) quanto com a de destino (como MaxCompute). Para mais informações, consulte Conectividade de rede.

  • Restrições de região: Apenas fontes de dados MaxCompute autogerenciadas na mesma região do workspace atual do DataWorks são suportadas. Ao utilizar uma fonte de dados MaxCompute autogerenciada, associe um recurso de computação do 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 de grupo de recursos de agendamento: O grupo de recursos serverless configurado para a tarefa é utilizado 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 para 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ê configurar uma tarefa completa e incremental para o MaxCompute, apenas os dados históricos completos poderão ser consultados. Os dados incrementais estarão disponíveis para consulta no MaxCompute somente após a conclusão da consolidação do dia seguinte. Para mais detalhes, consulte a seção de consolidação periódica em Como funciona.

  • 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 do MaxCompute criadas automaticamente pela tarefa possuem 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 correspondente do MaxCompute para modificar o ciclo de vida durante a configuração da tarefa. Para mais informações, consulte Editar o esquema da tabela de destino (opcional).

  • SLA: O Data Integration utiliza o canal de dados do MaxCompute para upload e download de dados. Para mais informações sobre o SLA do canal de dados, consulte SLA do canal de dados do MaxCompute. 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. Garanta que o período de retenção do binlog seja suficiente para evitar interrupções na sincronização causadas pela ausência de offsets iniciais quando uma tarefa ficar pausada por um longo período ou for 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 faturadas separadamente. Todas consomem CUs do grupo de recursos. Para mais informações sobre o faturamento de CU, consulte Faturamento de grupos de recursos. A tarefa agendada também incorre em taxas de agendamento de tarefas. Para mais detalhes, consulte Faturamento de agendamento de tarefas.

  • Além disso, o link de sincronização completa e incremental para o MaxCompute requer 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 tamanho dos dados completos e ao ciclo de consolidação. Para mais informações, consulte Faturamento do MaxCompute.

Procedimento

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

  1. Faça login no console do DataWorks. Na região desejada, 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 na parte superior 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: Configurar fontes de dados e grupos de recursos

  1. Na seção Source Information, selecione a fonte de dados MySQL adicionada. Na seção Destination, selecione a fonte de dados MaxCompute adicionada.

  2. Na seção Running Resources, selecione o Resource Group para a tarefa e aloque Resource Group CU a ele. Configure CUs separadamente para sincronização completa e incremental para controlar precisamente os recursos e evitar 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. Portanto, as tarefas de sincronização em lote 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. Certifique-se de que ambas as fontes de dados, origem e destino, passem na Connectivity Check.

Etapa 3: Selecionar tabelas para sincronizar

Na área Source Tables, selecione as tabelas a serem sincronizadas 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. É possível selecionar até 5.000 tabelas. Use também Batch Paste to Select Tables para adicionar tabelas rapidamente.

Se houver muitos bancos de dados e tabelas, utilize Database Filtering ou Search for Tables, ou configure expressões regulares para selecionar as tabelas a serem sincronizadas.

Etapa 4: Configurar definições da tarefa

  • Intervalo de tempo da tabela de log: Este parâmetro define o intervalo de tempo de consulta 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, estenda esse intervalo adequadamente para garantir que todos os dados pertencentes à partição sejam consolidados corretamente.

  • Definiçõ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 Configurações de agendamento.

  • Parâmetros de agendamento periódico: Configure os parâmetros de agendamento. Utilize esses parâmetros para atribuir valores às partições nas configurações subsequentes, permitindo a gravação de dados em partições por data.

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

Etapa 5: Configurar mapeamento da tabela de destino

Nesta etapa, defina as regras de mapeamento entre as tabelas de origem e de destino, além de especificar chaves primárias, partições dinâmicas, configurações de DDL/DML e outras regras para determinar como os dados serã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ê atualizá-los e confirmá-los.

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

  • Nome da tabela de destino: O nome é 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 criará 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 Edit na coluna Customize Mapping Rules for Destination Table Names para adicionar regras personalizadas de nomes de tabelas de destino.

  • Nome da regra: Defina um nome para a regra. Recomendamos especificar 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 da fonte de dados de origem, o nome do banco de dados de origem e o nome da tabela de origem.

  • Editar variáveis integradas: É possível realizar transformações de string nas variáveis integradas.

Os seguintes cenários são suportados:

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

  2. Substituição uniforme de strings: Substitua a string dev_ nos nomes das tabelas de origem por prd_.

  3. Gravar várias tabelas em uma única tabela.

Editar mapeamento de tipos de colunas (opcional)

O sistema fornece um mapeamento padrão entre os tipos de colunas 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 colunas 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 colunas, garanta que as regras de conversão de tipos estejam corretas. Regras incorretas causam falhas na conversão de tipos, gerando dados inconsistentes e afetando a execução da tarefa.

Editar o esquema da tabela de destino (opcional)

O sistema cria automaticamente tabelas de destino inexistentes com base nas regras personalizadas de mapeamento de nomes de tabelas 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. Intervenção manual não é necessária em cenários comuns. Modifique o esquema 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 serem sincronizadas 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, apenas é possível adicionar colunas. Para novas tabelas, adicione colunas, colunas de partição e defina o tipo ou propriedades da tabela. Consulte as áreas editáveis na página para obter detalhes.

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 nas etapas anteriores exigem atribuição manual de valores. Execute as seguintes operações:

  • Atribuição para tabela única: 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 para 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:

  • Colunas da tabela

    • Entrada manual: Insira um valor constante ou parâmetro de agendamento diretamente, como abc ou ${bizdate}.

    • Selecionar variável: Selecione uma variável fornecida pelo sistema como valor da coluna. Para tipos de variáveis, consulte as descrições na página.

    • Coluna de origem: Utilize 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 tempo especificando os formatos de tempo de origem e destino. Para os exemplos acima, utilize os formatos yyyy-MM-dd HH:mm:ss e yyyy/MM/dd, respectivamente, para serialização.

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

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

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

    • Função: Aplique transformações simples às colunas de origem usando funções para gerar valores de partição. Para mais informações, consulte Referência de funções.

  • Colunas de partição: Crie partições dinamicamente com base nos valores enumerados ou no tempo de evento das colunas de origem.

    • Entrada manual: 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 de chave de divisão de origem, 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 nesta coluna para leitura de dados em lote e concorrente.

Recomendamos utilizar uma coluna com dados distribuídos uniformemente, como a chave primária da tabela, como chave de divisão de origem. Tipos string, ponto flutuante e data não são suportados.

A chave de divisão de origem é suportada atualmente apenas quando a origem é MySQL.

Skip Full Synchronization

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

Full condition

Aplique filtragem baseada em condições à origem durante a fase de carga completa. Especifique apenas a cláusula WHERE aqui, sem 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 que os dados sejam gravados no destino durante a sincronização em tempo real. Esta regra entra em vigor apenas durante a fase incremental.

Full Merge Cycle

Atualmente, apenas consolidações diárias são suportadas. Configure o horário específico de agendamento 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 exclusivos (como id) como chave primária.

  • Chave primária composta: Se nenhuma coluna individual for exclusiva, selecione uma combinação de várias colunas. Os valores combinados dessas colunas devem identificar exclusivamente cada linha para garantir a unicidade dos dados durante as gravações e evitar sobrescritas.

Etapa 6: Configuração avançada

Configuração avançada de parâmetros

Se precisar de uma configuração refinada da tarefa para atender a requisitos personalizados de sincronização, acesse a aba Advanced Parameters para modificar 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 é explicado ao lado do nome do parâmetro.

  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 grande gera valores recomendados para os parâmetros. Decida se aceita os parâmetros gerados pela IA com base nas suas necessidades reais.

Importante

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

Configuração de capacidade DDL

Alguns links de sincronização em tempo real detectam alterações de metadados nos esquemas das tabelas 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 da página para definir uma política de processamento para cada tipo de alteração. As políticas suportadas variam dependendo do canal.

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

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

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

  • Alerta: Um alerta é enviado quando esse tipo de alteração ocorre na origem. Configure regras de notificação DDL em Configure Alert Rule.

Nota

Após a adição de uma nova coluna na origem e sua sincronização para o destino via DDL, o sistema não preenche retroativamente os dados existentes na tabela de destino para essa coluna.

Etapa 7: Executar 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 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 precisam ser implantadas no ambiente de produção antes de serem executadas. Portanto, execute a operação Publish após criar ou editar uma tarefa para que as alterações entrem em vigor.

  3. Clique no 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 para a tarefa e visualize métricas principais da tarefa. Para mais informações, consulte Gerenciar tarefas de sincronização.

Perguntas frequentes

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

R: A seguir, apresentamos a análise da causa raiz e as soluções:

image

Sintoma

Causa

Solução

Falha na verificação de produção de dados para a partição T-1 da tabela de log incremental.

A tarefa de sincronização em tempo real falhou, impedindo a produção normal dos dados da partição T-1 na tabela de log incremental.

  • 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 correspondente no tempo for purgado, 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.

Falha na verificação de produção de dados para a partição T-2 da tabela base de destino.

  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 Configurar regras de monitoramento.

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