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:
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.
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.
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 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
-
Faça login no console do DataWorks. Na região desejada, 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 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
Na seção Source Information, selecione a fonte de dados
MySQLadicionada. Na seção Destination, selecione a fonte de dadosMaxComputeadicionada.-
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.
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. 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.
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
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.
|
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 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:
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:
É 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 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 ( |
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.
|
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.
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 é explicado ao lado do 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 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.
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.
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
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 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 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.
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:
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. |
|
Falha na verificação de produção de dados para a partição T-2 da tabela base de destino. |
|
|
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.
na coluna Destination Table Name para adicionar colunas.