Uma tarefa de sincronização completa e incremental para bancos de dados inteiros replica os schemas do banco e das tabelas, os dados históricos e as alterações contínuas de um banco de dados source para um destino, como o MaxCompute. Este tópico descreve operações comuns de O&M, métodos de solução de problemas, recomendações de ajuste e configuração de alertas para essas tarefas.
Aplicabilidade e limites
Antes de aplicar as orientações deste tópico, avalie o formato da sua tarefa e o caminho dos dados.
|
Item de verificação |
Escopo aplicável |
Quando não se aplica |
|
Formato da tarefa |
Dados históricos completos + incremental em tempo real + saída agendada ou merge |
Para sources de mensagens que gravam dados apenas em tempo real, consulte Real-time full-database synchronization: Operations and tuning. |
|
Caminho dos dados |
Source de banco de dados → MaxCompute, data lake ou destino que gera snapshots ou partições |
Os métodos deste tópico não se aplicam quando o destino não oferece suporte a saída agendada ou merge. |
Os métodos descritos aqui dependem das seguintes capacidades da tarefa: inicialização de dados completos para tabelas recém-adicionadas, transição entre as fases completa e em tempo real, proteção de checkpoint ao adicionar tabelas e nós de saída agendada ou merge. Caso a tarefa não ofereça suporte a alguma dessas capacidades, os resultados downstream podem ficar incompletos.
Este tópico aplica-se exclusivamente a tarefas de sincronização completa e incremental para bancos de dados inteiros. Para tarefas incrementais em tempo real, consulte Real-time full-database synchronization: Operations and tuning. Para tarefas que sincronizam dados apenas em lotes agendados, consulte O&M and tuning for offline database synchronization.
Fases da tarefa
Uma tarefa de sincronização completa e incremental percorre as seguintes fases:
|
Fase |
Descrição |
Foco de O&M |
|
Migração de Schema |
Migra os schemas do banco de dados e das tabelas do source para o destino |
Permissões de metadados do source, permissões de criação de tabelas no destino, mapeamento de tipos de campos e regras de mapeamento de tabelas |
|
Inicialização de Dados Completos |
Grava os dados históricos do source no destino em uma única passagem |
Chave de divisão, concorrência completa, conexões do source, desempenho de consulta do source e capacidade de gravação do destino |
|
Incremental em Tempo Real |
Consome continuamente as alterações do source ocorridas após o início da fase completa |
Atraso de checkpoint, failover, checkpoints, DDL e retenção de logs do source |
|
Merge Incremental |
Mescla periodicamente os dados de alterações incrementais na tabela de snapshot ou na partição do destino. Apenas algumas soluções incluem esta fase. |
Agendamento do Merge Incremental, sincronização dos dados incrementais upstream, timestamp de dados, partição do destino e duração da execução SQL |
O source pode continuar gravando dados durante a inicialização dos dados completos. Após a conclusão da fase completa, a tarefa replaya os dados incrementais até alcançar o estado atual do source. A conclusão da fase completa não significa que toda a tarefa foi finalizada. É necessário verificar também se o incremental em tempo real alcançou a sincronização.
Pré-requisitos
Antes de operar ou solucionar problemas em uma tarefa de sincronização completa e incremental, confirme os seguintes itens:
Um workspace do DataWorks e um grupo de recursos para integração de dados.
Conexões de fonte de dados do source e do destino configuradas, com conectividade de rede entre o grupo de recursos e ambos os endpoints.
A conta do source possui permissões para ler metadados de banco de dados e tabelas, além de logs binários ou WAL.
A conta do destino possui permissões para criar tabelas, modificar tabelas e gravar dados.
(Se a tarefa incluir Merge Incremental) Um destino que ofereça suporte a nós de saída agendada ou merge. Para o MaxCompute, o schema da tabela de destino deve permitir a execução de SQL de merge.
(Caso planeje reexecutar a tarefa) Um destino Hologres ou MaxCompute.
Localizar sua tarefa e visualizar detalhes de execução
Escolha Data Integration > Synchronization Task para abrir a lista de tarefas de sincronização. A lista exibe informações básicas e o status de execução atual de cada tarefa. É possível filtrar as tarefas por nome, status, hora de criação, tipo de fonte de dados e tipo de destino.
Clique em no nome de uma tarefa para abrir a página de detalhes de execução. Utilize esta página como interface principal de monitoramento durante operações rotineiras e investigação de problemas. A página apresenta as seguintes informações:
Uma barra de progresso da tarefa que indica a fase atual: migração de schema, inicialização de dados completos, incremental em tempo real ou Merge Incremental. Use-a para identificar em qual fase a tarefa se encontra.
A lista de subtarefas de cada fase. Utilize-a para inspecionar subtarefas individuais e identificar qual falhou ou está lenta.
O status de sincronização em tempo real, incluindo atraso de checkpoint e throughput. Essas métricas ajudam a avaliar se o incremental em tempo real acompanha as alterações do source.
Links para logs da tarefa e métricas de monitoramento para investigações mais detalhadas.
Operações comuns de O&M
Execute as operações a seguir na coluna Operations da lista de tarefas.
Iniciar e parar uma tarefa
Para iniciar a tarefa, clique em Submit and Run. Após o início, verifique primeiro se a migração de schema e a inicialização de dados completos estão executando normalmente e, em seguida, confirme se o incremental em tempo real alcançou a sincronização.
Para parar a tarefa, clique em Stop na coluna Operations. Antes de interromper uma tarefa, confirme a fase atual:
Se você parar a tarefa durante a inicialização de dados completos, algumas subtarefas completas podem precisar ser executadas novamente após a recuperação.
Se a interrupção ocorrer durante o incremental em tempo real, a recuperação dependerá do período de retenção de logs do source.
Ao parar uma tarefa que inclui Merge Incremental, confirme se a partição do destino já contém saída parcial.
Modificar configurações e aplicar atualizações
Alterações comuns em uma tarefa de sincronização completa e incremental para bancos de dados inteiros incluem adicionar tabelas, remover tabelas, ajustar mapeamentos de tabelas, ajustar recursos e modificar parâmetros avançados. Para modificar uma tarefa, escolha More > Modify Configuration na coluna Operations. Após realizar uma alteração, envie a tarefa e aplique a atualização. A mudança só entra em vigor após o envio.
A tabela a seguir lista os pontos de risco e recomendações para os tipos de alteração mais comuns. Para orientações sobre ajuste de recursos e parâmetros, consulte Tuning recommendations.
|
Tipo de alteração |
Pontos de risco |
Recomendações |
|
Adicionar tabela |
A nova tabela exige migração de schema e inicialização de dados completos, entrando no incremental em tempo real somente após a conclusão da inicialização |
Evite horários de pico de negócios. Confirme se o período de retenção de logs do source é suficiente. Verifique se tanto a fase completa quanto a incremental foram concluídas para a nova tabela. |
|
Remover tabela |
Pode afetar mapeamentos de tabelas existentes, arquivos de recursos e dados no destino |
Confirme se os sistemas downstream não dependem mais da tabela antes da remoção. Se a tarefa existente não puder ser enviada com sucesso, crie uma nova tarefa para assumir o processo. |
|
Modificar mapeamento de tabela |
Pode impactar gravações completas, gravações em tempo real e resultados do Merge Incremental |
Verifique conjuntamente os mapeamentos das tabelas completas, das tabelas incrementais e das tabelas finais no destino. |
|
Ajustar recursos |
Afeta consultas no source, gravações no destino e consumo do grupo de recursos |
Faça ajustes por fase. Não aplique os mesmos critérios para a fase completa e para a fase em tempo real. |
Checklist de operações de alto risco
Antes de executar uma reexecução, um backfill de dados, uma adição de tabelas em grande lote, uma remoção de tabela ou uma alteração significativa de parâmetros, confirme os seguintes itens:
Em qual fase o problema atual ocorre.
O escopo da operação: banco de dados inteiro, tabelas específicas, timestamps de dados específicos ou partições específicas do destino.
Se o período de retenção de logs do source é suficiente.
Se os dados existentes no destino podem ser sobrescritos ou gravados novamente.
Se há uma instância de Merge Incremental em execução ou prestes a executar, incluindo instâncias para o mesmo timestamp de dados ou partição do destino.
Se sistemas downstream estão lendo ou dependem das tabelas, partições ou timestamps de dados afetados no destino, e se os nós downstream precisam ser reexecutados após a conclusão da operação.
Se o source e o destino suportam a carga adicional de leitura e gravação ou maior concorrência.
Reexecutar uma tarefa
Considere uma reexecução quando os dados no destino estiverem corrompidos, a tarefa em tempo real falhar por um período prolongado, os logs do source não puderem ser replayados ou a tarefa precisar ser reinicializada. Na coluna Operations, escolha More > Rerun para forçar uma reinicialização completa e incremental de todas as tabelas do source.
As seguintes limitações aplicam-se à reexecução forçada:
Apenas destinos Hologres e MaxCompute oferecem suporte a reexecução forçada. Tarefas de sincronização completa e incremental fragmentadas não suportam reexecução forçada.
Uma reexecução forçada sincroniza colunas das tabelas do source para as tabelas do destino. Se uma tabela de destino não possuir colunas presentes na tabela do source, as colunas ausentes serão adicionadas.
Antes de reexecutar, conclua as verificações em High-risk operation checklist.
Em uma tarefa que inclui Merge Incremental, uma reexecução e um merge não devem processar o mesmo timestamp de dados ou a mesma partição do destino simultaneamente. Execuções concorrentes no mesmo timestamp de dados podem sobrescrever dados da partição ou da tabela.
Se houver possibilidade de conflito, utilize um dos seguintes métodos:
Pause a reexecução, aguarde a conclusão da instância de Merge Incremental conflitante e, em seguida, realize a reexecução.
Congele a próxima instância de Merge Incremental, aguarde a conclusão da reexecução e, depois, descongele a instância.
Após a conclusão da reexecução, verifique se a instância de Merge Incremental retomou a execução automática. Se os dados não forem gerados no dia seguinte ou se a instância de Merge Incremental não retomar, verifique e retome a instância manualmente.
Backfill de dados completos
Quando algumas tabelas, partições ou timestamps de dados apresentarem dados ausentes no destino, utilize o backfill de dados completos para reparar os dados. Apenas tarefas de sincronização completa e incremental de banco de dados inteiro oferecem suporte a backfill de dados completos. Clique em Backfill All Data na coluna Operations e configure os parâmetros.
Antes de executar um backfill de dados, conclua as verificações em High-risk operation checklist e confirme o seguinte item específico da operação:
Se o incremental em tempo real alcançou a sincronização.
Ao fazer backfill de múltiplos timestamps de dados, execute o processo em lotes e valide cada lote antes de prosseguir para o próximo. Isso evita interferências entre o backfill, o incremental em tempo real, o Merge Incremental e o agendamento downstream.
Métodos de solução de problemas
Além do status da tarefa, combine métricas e logs para uma solução de problemas detalhada. Os objetos típicos de troubleshooting incluem migração de schema, inicialização de dados completos, incremental em tempo real, checkpoints, instâncias agendadas, timestamps de dados, partições do destino e SQL de merge. Você pode visualizar o progresso da tarefa, status das subtarefas, atraso de checkpoint, throughput, logs e métricas de monitoramento na página de detalhes de execução da tarefa. Para mais informações, consulte Find your task and view execution details.
Identifique a fase à qual o problema pertence e, em seguida, acesse a seção correspondente:
|
Sintoma |
Fase |
Seção |
|
Falha na migração de schema devido a permissões, leitura de metadados, criação de tabela no destino, tipos de campo ou mapeamentos de tabela |
Migração de Schema |
|
|
Inicialização de dados completos travada, não inicia ou executa lentamente |
Inicialização de Dados Completos |
|
|
A latência do incremental em tempo real aumenta ou o incremental em tempo real não consegue alcançar a sincronização após a conclusão da fase completa |
Incremental em Tempo Real |
|
|
Saída agendada ou Merge Incremental não é gerado, ou os dados estão incompletos |
Merge Incremental |
|
|
Outros sintomas, como resultados inesperados após adicionar ou remover tabelas, erros de DDL, dados sujos ou conflitos após reexecução ou backfill |
Múltiplas fases |
Falha na migração de schema
Falhas na migração de schema geralmente envolvem permissões, leitura de metadados, criação de tabelas no destino, tipos de campo e mapeamentos de tabela. Verifique os seguintes itens nesta ordem:
Verifique se a conta do source tem permissões para ler metadados do banco de dados e das tabelas.
Verifique se o grupo de recursos da tarefa consegue se conectar ao source e ao destino.
Verifique se a conta do destino tem permissões para criar tabelas, modificar tabelas e gravar dados.
Verifique se o banco de dados, schema ou namespace de destino existe.
Verifique se há conflitos nos mapeamentos de nomes de tabelas e se os tipos de campo e campos de partição são compatíveis.
Inicialização de dados completos lenta ou travada
Trate a inicialização de dados completos lenta ou travada como um problema de subtarefa em lote. Não utilize métodos de latência em tempo real para solucioná-la. Primeiro, confirme qual fase está travada e, em seguida, verifique se as subtarefas completas foram iniciadas.
|
Item de verificação |
Método de avaliação |
Recomendações |
|
Desempenho de consulta do source |
O banco de dados source apresenta alto uso de CPU, I/O elevado, consultas SQL lentas, esperas por bloqueio ou muitas conexões |
Otimize as consultas no source, evite horários de pico de negócios e reduza a concorrência se necessário. |
|
Chave de divisão |
Alguns fragmentos demoram significativamente mais que outros |
Escolha uma chave de divisão mais uniforme. Não aumente a concorrência quando não existir uma chave de divisão adequada. |
|
Conexões ou cota do source |
Logs indicam cota insuficiente ou poucas conexões |
Aumente as conexões do source ou a cota da fonte de dados conforme apropriado e monitore a carga do banco de dados source. |
|
Concorrência completa |
Tanto o source quanto o destino possuem capacidade ociosa, mas o throughput é baixo |
Aumente a concorrência gradualmente. Não eleve para um valor alto de uma só vez. |
|
Gravação no destino |
O destino tem limitação de taxa, grava lentamente ou possui muitas partições |
Priorize a resolução de recursos do destino, limitação de taxa e design de partições. |
|
Especificações de recursos |
CPU, memória ou rede tornam-se gargalos |
Aumente as especificações de recursos ou unidades de computação e monitore o garbage collection e a taxa de falhas. |
Latência do incremental em tempo real
Ao solucionar problemas na fase incremental em tempo real, verifique primeiro o atraso de checkpoint, o throughput de leitura e gravação e o tempo de espera da janela. Em seguida, revise logs, eventos de failover, checkpoints, métricas JVM, garbage collection, backpressure e eventos DDL.
As causas comuns incluem:
Transações grandes no source ou crescimento rápido de logs binários ou WAL.
Desequilíbrio de partições ou shards no source.
Limitação de taxa de gravação no destino, conexões insuficientes ou commits em lote lentos.
Checkpoints que demoram muito ou falham frequentemente.
Falhas no tratamento de eventos DDL.
Erros de falta de memória na tarefa ou failover frequente.
Se o incremental em tempo real não conseguir alcançar a sincronização por um longo período após a conclusão da inicialização de dados completos, isso geralmente indica que muitos dados incrementais acumularam durante a fase completa ou que a capacidade de gravação do destino é insuficiente. Verifique tanto a taxa de geração de dados incrementais no source quanto o throughput de gravação do destino.
Verifique se o atraso continua diminuindo. Caso contrário, analise separadamente o checkpoint de leitura, as esperas de gravação e a limitação de taxa do destino.
Merge não gera saída ou dados incompletos
Para uma tarefa que inclui um nó de Merge Incremental, não verifique apenas se a tarefa em tempo real está em execução. Uma tarefa em tempo real funcionando normalmente não garante que a tabela de snapshot ou a partição do destino seja gerada. Verifique os seguintes itens nesta ordem:
Verifique se a instância agendada do Merge Incremental foi gerada, se está em execução e se teve sucesso.
Verifique se as dependências upstream da instância de Merge Incremental estão completas.
Confirme se o incremental em tempo real alcançou o intervalo de tempo exigido pela instância de Merge Incremental.
Verifique o timestamp de dados, a partição do destino e a duração da execução SQL.
Se houve reexecução ou backfill de dados recentemente, confirme se a mesma partição foi processada.
Analise conjuntamente a instância agendada, a saída da partição do destino e o consumo downstream.
Se os tempos de evento do source ou os logs binários estiverem fora de ordem, uma instância de Merge Incremental acionada por horário agendado pode executar antes da chegada de alguns eventos incrementais atrasados. Mantenha uma margem de segurança no agendamento do Merge Incremental, por exemplo, um atraso de 30 minutos, para cobrir a janela máxima de desordem ou atraso do source.
Recomendações de ajuste
As fases completa e em tempo real possuem objetivos de ajuste distintos. A fase completa visa a inicialização eficiente dos dados históricos. A fase em tempo real busca estabilidade contínua e baixa latência. Já a fase de Merge Incremental foca na tempestividade da saída de partições e na integridade dos dados.
|
Item de ajuste |
Fase aplicável |
Recomendações |
|
Concorrência completa |
Inicialização de Dados Completos |
Aumente a concorrência gradualmente com base na capacidade de conexão do source e na capacidade de gravação do destino. |
|
Número máximo de conexões do source |
Inicialização de Dados Completos |
Poucas conexões limitam a velocidade de leitura, enquanto conexões excessivas podem afetar a estabilidade do banco de dados source. Aumente as conexões gradualmente e monitore a utilização do pool de conexões do banco de dados source. |
|
Especificações de recursos em lote ou unidades de computação |
Inicialização de Dados Completos |
Aumente as especificações de recursos ou unidades de computação quando CPU, memória ou rede se tornarem gargalos. O efeito é limitado quando o source ou o destino possui limitação de taxa. |
|
Especificações de recursos em tempo real ou unidades de computação |
Incremental em Tempo Real |
Se o atraso de checkpoint exceder 5 minutos, considere aumentar as unidades de computação em 1 ou 2. Monitore a frequência de failover, o estado do checkpoint e o garbage collection antes de fazer novos ajustes. |
|
Intervalo de checkpoint ou flush |
Incremental em Tempo Real |
Um intervalo ligeiramente maior reduz commits frequentes, mas aumenta o atraso até que novos dados fiquem visíveis no destino. Se o atraso de checkpoint for alto, verifique se o intervalo de checkpoint não está definido com um valor muito baixo. |
|
Horário de agendamento do Merge Incremental |
Merge Incremental |
Mantenha uma margem para atrasos incrementais do source e eventos fora de ordem para evitar merges prematuros. Uma margem de 30 minutos cobre a maioria dos cenários comuns de atraso. |
Alertas e métricas
Monitore pelo menos o status da tarefa, o atraso de negócios e o failover. Com base na capacidade do canal e na configuração da tarefa, adicione também alertas para utilização de recursos, exceções de gravação, notificações de DDL, backlog de mensagens e dados sujos. Para tarefas configuradas com nós de saída agendada ou merge, monitore também falhas em instâncias agendadas e a saída de partições do destino.
As seguintes métricas de alerta estão disponíveis:
|
Métrica |
ID da Métrica |
Descrição |
|
Atraso de Negócios |
|
Diferença de tempo entre uma alteração de dados no source e a conclusão da gravação no destino |
|
Dados Sujos |
|
Número de registros que falharam na validação ou gravação devido a problemas de qualidade de dados |
|
Failover |
|
Número de eventos de failover acionados por erros de tarefa ou falhas de recursos |
|
Backlog de Mensagens |
|
Volume de mensagens ou entradas de log não processadas aguardando consumo |
|
Status da Tarefa |
|
Status de execução atual da tarefa de sincronização |
|
DDL Não Suportado |
|
Operações DDL que a tarefa não consegue tratar automaticamente |
|
Notificação de DDL |
|
Notificações sobre eventos DDL que a tarefa processou ou ignorou |
|
Utilização de Recursos da Tarefa |
|
Utilização de CPU, memória e rede dos recursos da tarefa |
Métricas recomendadas por fase
Concentre-se nas seguintes métricas para cada fase:
|
Fase |
Métricas de foco |
|
Inicialização de Dados Completos |
Tabelas restantes, tabelas processadas, divisões restantes, divisões processadas e contagem de gravações completas |
|
Incremental em Tempo Real |
Atraso de checkpoint, throughput de leitura e gravação, contagens de DML e DDL, duração do checkpoint e contagem de failover |
|
Merge Incremental |
Status da instância de Merge Incremental, tempo de conclusão upstream, timestamp de dados, partição do destino e duração da execução SQL |
|
Recursos |
CPU, memória, garbage collection, rede e utilização do grupo de recursos |
Resposta a alertas
Quando um alerta for acionado, responda da seguinte forma:
|
Condição do alerta |
Resposta recomendada |
|
Atraso de Negócios excede 5 minutos |
Verifique o estado do checkpoint e confirme se a janela de retenção de logs do source não foi excedida. Revise o throughput do incremental em tempo real e a capacidade de gravação do destino. |
|
Aumento na contagem de failover |
Verifique nos logs da tarefa a causa raiz de cada failover. Causas comuns incluem perda de conectividade com o source, erros de gravação no destino e condições de falta de memória. |
|
Aumento na contagem de Dados Sujos |
Revise os logs de dados sujos para identificar o campo ou restrição com falha. Não aumente o limiar do alerta antes de determinar se os dados sujos causam perda de dados, anomalias de campo ou falhas em atualizações e exclusões. |
|
Alerta de DDL Não Suportado |
Revise o tipo de evento DDL e a política de DDL da tarefa. Não ignore uma operação DDL não suportada. Verifique seu impacto na integridade dos dados e aplique alterações manuais de schema se necessário. |
|
Status da Tarefa muda para Failed |
Verifique a fase da falha na página de detalhes de execução da tarefa e siga as orientações específicas da fase em Troubleshooting methods. |
FAQ
A tabela a seguir lista respostas rápidas para problemas comuns. Para métodos de solução de problemas baseados em fases, consulte Troubleshooting methods.
|
Problema |
Foco da solução |
Recomendações |
|
Após adicionar uma tabela, existem apenas dados incrementais subsequentes e nenhum dado histórico |
Se a nova tabela corresponde às regras de seleção; se a inicialização de dados completos está habilitada ou foi acionada; se a retenção de logs do source cobre as alterações durante a fase completa |
Quando dados históricos forem necessários, confirme se a nova tabela concluiu a inicialização de dados completos. Se a inicialização não for suportada ou não tiver sido acionada, complete os dados por meio de um backfill de dados ou um pipeline de sincronização completa separado. |
|
Após adicionar uma tabela, a tarefa solicita confirmação ou não consegue continuar |
Se a tarefa já executou a fase completa anteriormente; se existem novas tabelas; se um checkpoint foi gerado; se a tarefa executa em um modo onde as fases completa e em tempo real não são desacopladas |
Aguarde até que a tarefa execute de forma estável e gere um checkpoint, e então envie a nova tabela. Não expanda o escopo de sincronização enquanto a proteção de checkpoint estiver ausente. |
|
Inicialização de dados completos travada ou não inicia |
Se a migração de schema foi concluída |
Consulte Full data initialization slow or stuck. |
|
Inicialização de dados completos lenta |
— |
Consulte Full data initialization slow or stuck. |
|
A fase completa termina, mas o incremental em tempo real não alcança a sincronização |
— |
Consulte Real-time incremental latency. |
|
Inconsistência de dados após remover uma tabela ou excluir uma tabela do source |
Se as regras da tarefa ainda correspondem à tabela removida; como a política de DDL trata DROP TABLE; se o destino e sistemas downstream ainda dependem da tabela |
Confirme se o negócio não depende mais da tabela antes de removê-la. Excluir uma tabela do source não limpa automaticamente o destino. Trate os dados existentes no destino separadamente com base nos requisitos de negócio. |
|
Timeout na atualização em lote de mapeamentos de tabelas |
Número de tabelas, número de campos, escopo de correspondência de expressão regular e duração da leitura de metadados do destino |
Reduza o escopo da atualização e processe os mapeamentos de tabelas em lotes. Após uma atualização em grande lote, amostragem os resultados para confirmar tabelas adicionadas, tabelas removidas e mapeamentos de campos. |
|
Saída agendada ou Merge Incremental não é gerado, ou dados incompletos |
— |
Consulte Merge not producing or data incomplete. |
|
Dados duplicados, sobrescritas ou conflitos de partição após backfill de dados ou reexecução |
Modo de gravação, dados existentes no destino e se uma instância de saída agendada ou Merge Incremental executa para a mesma partição |
Pause ou intercale as instâncias conflitantes antes de uma reexecução ou backfill de dados. Defina as estratégias de sobrescrita, anexação e limpeza, e então realize a recuperação. |
|
Falha na tarefa ou aumento de latência após operação DDL |
Tipo de DDL atual, suporte do destino, política de DDL da tarefa, permissões do destino e mapeamento de campos |
Verifique os eventos DDL e os resultados da alteração de schema no destino. Não ignore uma operação DDL não suportada. Determine primeiro seu impacto na integridade dos dados. |
|
Resultados de UPDATE ou DELETE não são os esperados |
Chave primária do source, chave primária ou única do destino, mapeamento de chave primária, modo de gravação e logs de dados sujos |
Compare registros de amostra, eventos do source, mapeamentos da tarefa e resultados no destino. Quando a chave primária não consegue localizar uma linha, atualizações e exclusões podem não ser aplicadas à linha correta no destino. |
|
Gravações lentas no MaxCompute ou outro destino |
Granularidade do campo de partição, número de partições envolvidas em um único checkpoint, duração do Tunnel ou commit, e limitação de taxa do destino |
Reduza primeiro a dispersão de gravação causada pelo particionamento em campos de alta cardinalidade e, em seguida, ajuste recursos, commits em lote e a cota do destino. |
|
Aumento nos alertas de dados sujos |
Tipo de campo, comprimento, codificação, chave primária, restrições non-null e limites de gravação do destino |
Não aumente apenas o limiar. Determine primeiro se os dados sujos causam perda de dados, anomalias de campo ou falhas em atualizações e exclusões. |
|
Retenção de logs do source insuficiente |
Duração da parada da tarefa, política de retenção de logs binários ou WAL do source, e tempo de transição entre as fases completa e incremental |
Quando dados incrementais não puderem ser replayados, inicialize a tarefa novamente ou faça backfill de dados por escopo de negócio. Confirme a janela de cobertura de logs do source antes da recuperação. |