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:
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.
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.
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.
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
-
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 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
Na seção Source Information, selecione o data source
MySQLque você adicionou. Na seção Destination, selecione o data sourceMaxComputeque você adicionou.-
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.
NotaAs 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.
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
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.
|
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:
|
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:
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:
É possível atribuir constantes ou variáveis às colunas. Alterne o tipo em Value Type. Os seguintes métodos são suportados:
|
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 ( |
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.
|
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.
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 fornecidas. O significado de cada parâmetro está explicado ao lado do seu nome.
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.
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.
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
Após concluir todas as configurações, clique em Save para salvar a tarefa.
-
Na página , 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.
NotaAs 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.
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:
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. |
|
A verificação de produção de dados da partição T-2 da tabela base de destino falhou. |
|
|
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.
na coluna Destination Table Name para adicionar colunas.