O recurso de sincronização de banco de dados em lote do DataWorks sincroniza periodicamente o schema e os dados de algumas ou de todas as tabelas de um banco de dados de origem para um destino. Ele oferece suporte aos modos de sincronização completa, incremental ou combinada. O exemplo a seguir usa uma migração de MySQL para MaxCompute para ilustrar o processo de configuração.
Pré-requisitos
-
Fontes de dados
Crie as fontes de dados de source e de destino. Para mais informações, consulte Data Source Management.
Verifique se suas fontes de dados oferecem suporte à sincronização de banco de dados em lote. Para obter detalhes sobre as fontes de dados de source compatíveis, como PostgreSQL ou Oracle, consulte Supported data sources. Caso sua fonte de dados de source não esteja na lista de compatibilidade (por exemplo, certas versões do PostgreSQL), use a sincronização offline de tabela única.
Grupo de recursos: Adquira e configure um serverless resource group.
Conectividade de rede: Estabeleça network connectivity entre o grupo de recursos e as fontes de dados.
Aplicabilidade
É possível configurar tarefas de sincronização de banco de dados em lote tanto no DataStudio quanto na Data Integration. Os recursos são idênticos em ambos os módulos.
Configuração consistente: A interface, os parâmetros e as funções subjacentes são idênticos, independentemente de você criar a tarefa no DataStudio ou na Data Integration.
Sincronização bidirecional: A Data Integration sincroniza automaticamente as tarefas e as exibe no diretório
data_integration_jobsno DataStudio. Essas tarefas são categorizadas pelo canalSourceType-DestinationTypepara gerenciamento unificado.Sincronização de dados T+1: A sincronização de banco de dados em lote também se aplica a cenários de sincronização T+1. Configure-a como uma sincronização completa Recurring ou como uma sincronização completa única seguida de sincronização incremental recorrente integrada. Isso permite implementar um snapshot completo agendado diariamente ou um pipeline ETL incremental.
Configurar uma tarefa de sincronização
Etapa 1: Criar uma tarefa de sincronização
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 e, em seguida, clique em Create Synchronization Task na parte superior da página. Configure as informações da tarefa:
Data Source Type:
MySQL.Data Source Type:
MaxCompute.Specific Type:
batch database synchronization.-
Synchronization Mode: A configuração de Synchronization steps funciona em conjunto com a configuração subsequente de full and incremental control. Combine-as para criar diferentes soluções de sincronização. Para obter detalhes, consulte Full and incremental control.
Schema Migration: Cria automaticamente objetos de banco de dados, como tabelas, campos e tipos de dados no destino para corresponder ao schema de source, mas não migra dados.
Full Synchronization (opcional): Copia todos os dados históricos dos objetos de source especificados, como tabelas, para o destino em uma única operação. Geralmente é usada para migração inicial ou inicialização de dados.
Incremental Sync (opcional): Após a conclusão de uma sincronização completa, este modo captura continuamente novos dados da source com base na incremental condition e os sincroniza com o destino.
Etapa 2: Configurar fontes de dados e recursos de execução
Na seção Source Data Source, selecione a fonte de dados
MySQLem seu 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 as Resource Group CUs. Se sua tarefa de sincronização falhar devido a um erro de falta de memória (OOM), aumente as Resource Group CUs alocadas.
NotaO valor de Resource Group CUs definido aqui é o limite máximo de CUs disponíveis para toda a tarefa de sincronização de banco de dados em lote. O número de CUs que a subtarefa de sincronização de uma única tabela realmente consome é determinado pelo parâmetro Offline synchronization task cu em no canto superior direito da página de edição da tarefa. O valor padrão é 1 CU e o valor mínimo é 0,5 CU.
Essas duas configurações determinam juntas quantas tabelas podem ser sincronizadas simultaneamente: número máximo de subtarefas simultâneas = Resource Group CUs ÷ Offline synchronization task cu. Por exemplo, se você alocar 10 CUs para a tarefa e 2 CUs para cada tabela, no máximo cinco subtarefas serão executadas ao mesmo tempo, o que significa que cinco tabelas são sincronizadas concomitantemente. As tabelas restantes só iniciam após a conclusão das subtarefas anteriores e a liberação dos recursos.
Garanta que ambas as fontes de dados, de source e de destino, passem na Connectivity Check.
Etapa 3: Configurar a solução de sincronização
1. Fonte de dados
Selecione as tabelas a serem sincronizadas da fonte de dados de source na seção Source tables. Clique no ícone
para movê-las para a lista Selected tables à direita.

Dois modos de seleção de tabela estão disponíveis: Select specified tables e Use a regular expression to select tables. O modo de expressão regular também adiciona e remove tabelas correspondentes enquanto a tarefa está em execução. A troca de modos limpa todas as tabelas selecionadas no outro modo. Para adicionar tabelas em massa, clique em Batch paste tables no canto superior direito.
Se houver muitos bancos de dados ou tabelas, utilize o Database Filtering ou o Table filtering e configure expressões regulares para selecionar as tabelas que deseja sincronizar.
2. Destino
Clique no botão Configuration ao lado de Partition Initialization Configuration para inicializar partições uniformemente para novas tabelas de destino. As alterações feitas aqui aplicam-se a todas as novas tabelas de destino e não afetam as tabelas existentes.
3. Controle completo e incremental
-
Configure a frequência de execução da tarefa.
Ao selecionar "Full synchronization" ou "Incremental synchronization", escolha executar a tarefa como uma tarefa One-time ou Recurring.
-
Ao selecionar tanto "Full synchronization" quanto "Incremental synchronization", o sistema utiliza um modo integrado: "One-time full synchronization for the first run, followed by recurring incremental synchronization". Esta opção não pode ser alterada.
Etapas de sincronização
Controle completo e incremental
Comportamento
Caso de uso
Sincronização completa
Única
Após o início da tarefa, ela sincroniza todos os dados da tabela de source uma vez para a tabela de destino ou para uma partição especificada.
Inicialização de dados, migração de sistema
Recorrente
Com base no ciclo de agendamento configurado, sincroniza periodicamente todos os dados da tabela de source para a tabela de destino ou para uma partição especificada.
Reconciliação de dados, snapshots completos T+1
Sincronização incremental
Única
Após o início da tarefa, sincroniza dados incrementais uma vez para uma partição especificada com base na condição incremental definida.
Reparo manual de um lote específico de dados
Recorrente
Após o início da tarefa, sincroniza periodicamente dados incrementais para uma partição especificada com base no ciclo de agendamento e na condição incremental configurados.
ETL diário, construção de tabelas históricas
Sincronização completa & Sincronização incremental
(Modo integrado, não selecionável)
Primeira execução: Realiza automaticamente uma migração de schema única e sincronização completa dos dados históricos.
Execuções subsequentes: Sincroniza periodicamente dados incrementais para uma partição especificada com base no ciclo de agendamento e na condição incremental configurados.
Ingestão de dados com um clique em data warehouse ou data lake
NotaPara sincronização de banco de dados em lote, o sistema gera instâncias para tarefas recorrentes da mesma forma que para tarefas configuradas como Start immediately after deployment. Para mais informações, consulte Instance generation method: Start immediately after deployment.
Defina o método de geração de partições na etapa subsequente de Value assignment. Utilize constantes ou gere partições dinamicamente usando variáveis predefinidas pelo sistema e parâmetros de agendamento.
As configurações para o ciclo de agendamento, condição incremental e método de geração de partições são interdependentes. Para mais informações, consulte 6. Incremental condition.
-
Configure os parâmetros de agendamento.
Se sua tarefa envolver sincronização recorrente, clique em Scheduling Parameters for Periodical Scheduling para configurá-los. Esses parâmetros podem ser usados posteriormente ao configurar a condição incremental e a atribuição de valores de campo no mapeamento da tabela de destino.
4. Mapeamento da tabela de destino
Defina as regras de mapeamento entre as tabelas de source e de destino e especifique o método de gravação de dados por meio da configuração recorrente e da condição incremental.

A parte superior da página contém as caixas de pesquisa Search database name e Search source table. A página também fornece as opções de filtro Show all, Show only unrefreshed tables e Show only tables that failed to refresh. A coluna Actions de cada linha contém um link Remove. Os botões Batch remove e Batch modify aparecem abaixo da tabela.
Ações | Descrição | ||||||||||||
Atualizar mapeamento | O sistema lista automaticamente as tabelas de source selecionadas, mas é necessário atualizar o mapeamento para aplicar as propriedades da tabela de destino.
| ||||||||||||
Editar mapeamento de tipo de campo (opcional) | O sistema possui um mapeamento padrão entre os tipos de campo de source e de destino. Clique em Edit Mapping of Field Data Types no canto superior direito para personalizar o mapeamento. Após a configuração, clique em Apply and Refresh Mapping. Ao editar mapeamentos de tipos de campo, garanta que as regras de conversão estejam corretas. Caso contrário, a conversão de tipo pode falhar, resultando em dados incorretos e afetando a execução da tarefa. | ||||||||||||
Personalizar mapeamento de nome da tabela de destino (opcional) | O sistema possui uma regra padrão de geração de nomes de tabela:
Este recurso oferece suporte aos seguintes cenários:
| ||||||||||||
Personalizar mapeamento de nome do banco de dados de destino (opcional) | Algumas fontes de dados de destino, como o Hologres, oferecem suporte à definição de regras de mapeamento para bancos de dados de destino. O método de configuração é o mesmo que para Personalizar mapeamento de nome da tabela de destino. | ||||||||||||
Personalizar mapeamento de nome do schema de destino (opcional) | Algumas fontes de dados de destino, como o Hologres, oferecem suporte à definição de regras de mapeamento para schemas de destino. O método de configuração é o mesmo que para Personalizar mapeamento de nome da tabela de destino. | ||||||||||||
Editar schema da tabela de destino (opcional) | O sistema gera automaticamente o schema da tabela de destino com base no schema da tabela de source. Normalmente, não é necessário modificá-lo. Para requisitos especiais, personalize-o da seguinte forma:
| ||||||||||||
Atribuição de valores para campos da tabela de destino | Atribua valores manualmente aos campos de partição e a quaisquer campos recém-adicionados. Os campos padrão são mapeados automaticamente com base nos nomes correspondentes nas tabelas de source e de destino. Siga estas etapas:
É possível atribuir constantes ou variáveis. No Value Type para Table fields e Partition fields, alterne entre os seguintes tipos:
Tanto as variáveis quanto os parâmetros de agendamento são substituídos automaticamente por valores específicos de data quando a tarefa é agendada para execução. | ||||||||||||
Definir coluna de fragmentação de source | Na coluna de fragmentação de source, selecione um campo da tabela de source ou escolha Disable. Quando a tarefa de sincronização é executada, o DataWorks divide a tarefa em várias subtarefas com base neste campo para permitir a leitura de dados em lotes e simultânea. Recomenda-se usar a chave primária da tabela como coluna de fragmentação de source. Não há suporte para tipos string, ponto flutuante e data. Atualmente, a coluna de fragmentação de source é suportada apenas para origens MySQL. | ||||||||||||
Personalizar parâmetros avançados | Modifique esses parâmetros apenas se os compreender totalmente. Configurações incorretas podem causar atrasos na tarefa, contenção de recursos ou perda de dados. Defina writer-side configurations e runtime configurations individuais para subtarefas. | ||||||||||||
Tipo de tabela | Tipo de Tabela: O MaxCompute oferece suporte a tabelas padrão, PK Delta Tables e Append Delta Tables. Se o status da tabela de destino for "To be created", selecione o tipo de tabela ao editar o schema da tabela de destino. Não é possível alterar o tipo de uma tabela existente. Para mais informações sobre Delta Tables, consulte Delta Table. |
5. Configuração recorrente
Se a sincronização incremental estiver configurada como Recurring, complete a configuração recorrente para a tabela de destino. Isso inclui configurações como Scheduling Frequency, Data Timestamp e Resource Group for Scheduling. A configuração de agendamento para esta tarefa de sincronização é consistente com a configuração de agendamento de nó no DataStudio. Para obter detalhes dos parâmetros, consulte Configure node scheduling.
Se uma sincronização única envolver um grande número de tabelas, recomendamos escalonar seus horários de execução no agendamento para evitar acúmulo de tarefas e contenção de recursos.
6. Condição incremental
Se a tarefa precisar sincronizar dados incrementais, configure uma condição incremental. Essa condição determina quais dados cada instância agendada sincroniza.
-
Função e sintaxe
Função: A condição incremental é essencialmente uma cláusula
WHEREque filtra os dados de source.Sintaxe: Ao configurar, insira apenas a expressão condicional que segue a palavra-chave
WHERE. Não inclua a própria palavra-chaveWHERE.
-
Usar parâmetros de agendamento para sincronização incremental
Para obter sincronização incremental periódica, utilize parâmetros de agendamento na condição incremental. Por exemplo, configurar a condição como
STR_TO_DATE('${bizdate}', '%Y%m%d') <= columnName AND columnName < DATE_ADD(STR_TO_DATE('${bizdate}', '%Y%m%d'), INTERVAL 1 DAY)sincroniza os dados gerados no dia anterior. -
Gravar em uma partição específica
Ao combinar a condição incremental com o campo de partição da tabela de destino, garanta que cada lote de dados incrementais seja gravado na partição correta.
Por exemplo, usando a condição incremental da etapa anterior, defina o campo de partição como
ds=${bizdate}e configure a tabela de destino para ser particionada por dia. Dessa forma, cada instância diária sincroniza apenas os dados da data correspondente na source e os grava na partição correspondente na tabela de destino.
Ao combinar adequadamente o intervalo de tempo especificado pela condição incremental, o intervalo de tempo para geração de partições e o ciclo de agendamento da configuração recorrente, crie um pipeline ETL incremental T+n automatizado onde as regras de negócio e as partições físicas estejam estritamente alinhadas.
Se uma tarefa de sincronização de banco de dados em lote encontrar uma exceção ou erro (por exemplo, se uma configuração incorreta de parâmetro de partição impedir a sincronização dos dados), primeiro clique em Stop fora da tarefa para pará-la completamente. Em seguida, corrija o parâmetro de partição ou a configuração de atribuição de valores — incluindo quaisquer configurações relacionadas à coluna de fragmentação da tabela de source — antes de republicar e iniciar a tarefa novamente. Evite reexecutar a tarefa diretamente, pois isso pode deixá-la em um estado inconsistente.
Etapa 4: Configurar definições avançadas
Parâmetros avançados
Para ajustar a tarefa para requisitos de sincronização personalizados, modifique os parâmetros avançados.
Clique em Advanced configuration no canto superior direito para acessar a página de configuração de parâmetros avançados.
Modifique os valores dos parâmetros com base nas dicas de ferramenta. O significado de cada parâmetro é explicado ao lado de seu nome.
-
Utilize também a configuração assistida por IA inserindo instruções em linguagem natural, como ajustar a simultaneidade da tarefa. O modelo de IA gera valores de parâmetros recomendados, que podem ser revisados e aceitos.

Modifique esses parâmetros apenas se os compreender totalmente. Configurações incorretas podem causar atrasos na tarefa, contenção de recursos ou perda de dados.
Parâmetros do mecanismo
Normalmente, não é necessário configurar parâmetros do mecanismo. Se forem necessárias alterações, utilize-as apenas com orientação do suporte técnico.
Etapa 5: Implantar e executar a tarefa
Após concluir todas as configurações, clique em Save na parte inferior da página para finalizar a configuração da tarefa.
Não é possível depurar tarefas de sincronização em lote diretamente. É necessário Deploy (implantar) as tarefas no Operation Center para executá-las. Portanto, qualquer tarefa nova ou editada deve ser implantada para que as alterações tenham efeito.
Durante a implantação, se selecionar Start immediately after deployment, a tarefa iniciará automaticamente. Caso contrário, após a conclusão da implantação, acesse a página e inicie a tarefa manualmente na coluna Actions.
Clique no Name/ID da tarefa em Tasks para visualizar o processo detalhado de execução.
Se clicar em Start não produzir resposta após a implantação, ou se a barra de progresso não for atualizada, verifique primeiro o log de execução da subtarefa correspondente no Operation Center para obter detalhes específicos do erro. Confirme também se selecionou Start immediately after deployment durante a implantação ou se clicou manualmente em Start após a implantação na coluna Actions.
Etapa 6: Configurar regras de alerta
Configure regras de alerta para tarefas de sincronização de banco de dados em lote em suas subtarefas correspondentes no Operation Center.
Na página , obtenha o Task ID da tarefa de destino.
Na coluna , localize a subtarefa offline de banco de dados completo correspondente com base no ID da tarefa de integração (por exemplo, se o ID da tarefa de integração for
34862, a subtarefa acionada automaticamente de sincronização incremental chama-seoffline_odps_cyc_sync_mysql_test_timetest_to_mysql_test_timetest_34862) e clique em para acessar a página de Gerenciamento de Regras.-
Clique em Create Custom Rule e defina o Rule Object, o Trigger Method e os Alert Details. Para mais informações, consulte Rule Management.
Pesquise o ID da subtarefa obtido no Rule Object para localizar a tarefa de destino e definir um alerta para ela.
Gerenciar tarefas de sincronização
Editar uma tarefa
Na página , localize a tarefa de sincronização criada. Na coluna Operation, clique em More e, em seguida, clique em Edit para modificar as informações da tarefa. As etapas são as mesmas da configuração da tarefa.
Para uma tarefa que não está em execução, modifique diretamente a configuração, salve-a e implante-a para que as alterações tenham efeito.
Para uma tarefa que está em execução, se editá-la e implantá-la sem selecionar Start immediately after deployment, o botão de ação original mudará para Apply Updates. Clique neste botão para que as alterações tenham efeito no ambiente de produção.
-
Após clicar em Apply Updates, o sistema executa três etapas nas alterações: Stop, Deploy e Restart.
-
Se adicionar uma tabela:
Após clicar em Apply Updates, uma subtarefa de sincronização para a nova tabela é adicionada. A migração de schema e a sincronização completa única da tarefa iniciam imediatamente, seguidas pela sincronização incremental conforme o agendamento.
-
Se alternar a tabela de destino (o que equivale a excluir a tabela antiga e adicionar uma nova):
Após clicar em Apply Updates, a subtarefa da tabela antiga é excluída, uma nova subtarefa é criada e a migração de schema e a sincronização completa única da nova tarefa iniciam imediatamente. A nova tarefa então realiza a sincronização incremental conforme o agendamento.
-
Se outras informações forem modificadas:
A migração de schema e a sincronização completa única da tabela permanecem inalteradas. Instâncias recém-geradas para sincronização incremental usarão a configuração atualizada, enquanto as instâncias já geradas não serão afetadas.
Tabelas não modificadas não são afetadas e não serão reexecutadas.
-
Visualizar tarefas
Após criar uma tarefa de sincronização, visualize a lista de tarefas e as informações básicas na página de tarefas de sincronização.

Para cada tarefa, a lista de tarefas de sincronização exibe o Task name, Task ID, Data source e Destination, Task type e Status. As colunas seguintes mostram o status das etapas de subtarefa de Schema migration, Full synchronization e Incremental synchronization, seguidas pelo Group.
Na coluna Actions, Start (inicie) ou Stop (pare) a tarefa de sincronização. No menu More, execute operações como Edit e View.
-
Para uma tarefa em execução, visualize o status básico na Execution Overview. Clique também na área de visão geral correspondente para visualizar detalhes da execução.

A seção Basic information da página de detalhes da tarefa mostra o ID da tarefa, fonte de dados, solução de sincronização, grupo de recursos de sincronização, status e especificações. A seção Execution status usa barras de progresso para mostrar o andamento e a porcentagem de conclusão das etapas de Schema migration, Full synchronization e Incremental synchronization. Clique em uma guia de etapa para visualizar os detalhes de sincronização de cada tabela. Os detalhes incluem o banco de dados de source, tabela de source, tabela de destino, método de conexão, progresso e número de registros gravados.
Cotas e limitações
Limitação de depuração: Não é possível depurar tarefas de sincronização em lote diretamente na Data Integration ou no DataStudio. É necessário implantá-las no Operation Center para executá-las.
Limitação de coluna de fragmentação: O recurso Set source sharding column atualmente oferece suporte apenas a origens MySQL. O campo da coluna de fragmentação deve ser de tipo numérico; não há suporte para tipos string, ponto flutuante ou data.
Limitação de alteração de schema: Ao editar o schema da tabela de destino, não há suporte para renomeação de colunas. Para uma tabela de destino existente, não é possível alterar seu Table type.
Limitação de operação no nível de campo: Não há suporte para excluir, filtrar ou ignorar campos específicos (como campos no formato XML), nem para mapeamento personalizado de campos. Se precisar remover campos ou aplicar transformações complexas, utilize uma tarefa de sincronização offline de tabela única ou processe os dados com um nó de código (Spark ou Python).
Limitação de diferenciação de maiúsculas e minúsculas: Por padrão, os nomes de tabelas e campos são convertidos para minúsculas antes de serem gravados no destino, portanto, não há suporte para transferência com distinção entre maiúsculas e minúsculas (por exemplo, para PostgreSQL). Se a sincronização falhar porque a source contém tabelas com distinção entre maiúsculas e minúsculas, recomendamos renomear as tabelas de source para minúsculas ou utilizar a sincronização offline de tabela única.
Limitação de descrição de metadados: A descrição de uma tabela de source não pode ser exibida diretamente ou mapeada para o destino. Configure descrições de campos manualmente apenas ao criar uma nova tabela de destino.
Próximas etapas
Após o início da tarefa, clique no nome da tarefa para visualizar detalhes da execução e realizar operations, maintenance (O&M), and tuning.
FAQ
Para perguntas frequentes sobre tarefas de sincronização de banco de dados em lote, consulte FAQ about full and incremental synchronization tasks.
P: Se uma única tabela falhar ao sincronizar em uma tarefa de sincronização de banco de dados em lote, isso afeta as outras tabelas?
R: Se não houver dependência upstream ou downstream entre as tabelas em uma tarefa da Data Integration, a falha na sincronização de uma tabela não afeta a sincronização das outras tabelas. Apenas a subtarefa dessa tabela específica falha, enquanto as outras tabelas continuam a ser executadas normalmente.
P: O que faço se campos adicionados na tabela de source não forem sincronizados com a tabela de destino em uma tarefa de sincronização de banco de dados em lote (offline)?
R: A sincronização de banco de dados em lote (offline) não detecta automaticamente alterações DDL na source. Portanto, campos de source adicionados não são refletidos automaticamente no destino. Para sincronizar os campos adicionados, exclua primeiro a tabela de destino. Em seguida, na página de edição da tarefa, acesse Destination table mapping, clique em Batch refresh mappings para recarregar o schema da tabela de source e reexecute a sincronização completa. Se o seu negócio exigir sincronização automática de campos de source adicionados, utilize a sincronização de banco de dados em lote em tempo real. Suas configurações avançadas fornecem DDL support settings, onde é possível configurar políticas de processamento para os seguintes eventos DDL: create table, drop table, add column, drop column, rename table, rename column, modify column type e truncate table. O evento add column é processado normalmente por padrão.
Mais casos de uso
Consulte Batch database synchronization use cases.
e combinando Manually enter e Built-in Variable. As variáveis suportadas incluem o nome da fonte de dados de source, o nome do banco de dados de source e o nome da tabela de source.





na coluna Target Table para adicionar um campo.
na interface.