Ir para o conteúdo

Como resolvo dados inconsistentes quando uso um bucket do Amazon S3 como destino para a migração do AWS DMS?

4 minuto de leitura
0

Quero resolver dados inconsistentes ao usar o Amazon Simple Storage Service (Amazon S3) como destino para a migração do AWS Database Migration Service (AWS DMS).

Breve descrição

Ao migrar dados de um banco de dados de origem para um bucket do S3, você pode se deparar com dados ausentes, dados duplicados ou colunas ausentes após a alteração do esquema. Isso acontece porque o Amazon S3 não oferece suporte a chaves primárias, atualizações ou integridade referencial.

Para resolver dados inconsistentes, conclua as etapas da resolução do seu problema.

Resolução

Dados ausentes ou removidos no destino do S3

Se as operações TRUNCATE TABLE ou DROP TABLE ocorrerem no banco de dados de origem, o AWS DMS replicará as operações para o Amazon S3. Essa replicação pode resultar na perda de dados.

Para evitar a perda ou remoção de dados das operações TRUNCATE ou DROP TABLE, revise e ajuste suas configurações de tratamento da linguagem de definição de dados (DDL). Conclua as etapas a seguir:

  1. Abra o console do AWS DMS.

  2. No painel de navegação, em Migrar ou replicar, selecione Tarefas.

  3. Selecione sua tarefa.

  4. Verifique se o status da tarefa está como Interrompido.

  5. Selecione Modificar.

  6. Escolha Configurações da tarefa.

  7. Escolha o editor JSON.

  8. Encontre a seção de parâmetros ChangeProcessingDdlHandlingPolicy. Em seguida, defina os parâmetros HandleSourceTableTruncated e HandleSourceTableDropped como False. Exemplo de configuração:

    "ChangeProcessingDdlHandlingPolicy": {
       "HandleSourceTableDropped": false,
       "HandleSourceTableTruncated": false
    }
  9. Escolha Salvar.

  10. Escolha Ações e, em seguida, escolha Retomar.

O Amazon S3 não reflete mudanças de esquema

Se você adicionar novas colunas a uma tabela na origem, mas não ativar a evolução do esquema, o AWS DMS poderá não capturar as alterações.

Para resolver as alterações de esquema ausentes, conclua as seguintes etapas:

  1. Abra o console do AWS DMS.

  2. No painel de navegação, em Migrar ou replicar, selecione Tarefas.

  3. Selecione sua tarefa.

  4. Verifique se o status da tarefa está como Interrompido.

  5. Selecione Modificar.

  6. Escolha Configurações da tarefa.

  7. Escolha o editor JSON.

  8. Encontre a seção de parâmetros ChangeProcessingDdlHandlingPolicy. Em seguida, defina o parâmetro HandleSourceTableAltered como True. Exemplo de configuração:

    "ChangeProcessingDdlHandlingPolicy": {
       "HandleSourceTableAltered": true
    }
  9. Escolha Salvar.

  10. Escolha Ações e, em seguida, escolha Retomar.

  11. Para incluir as novas colunas em seus dados do Amazon S3, recarregue a tabela.

Várias tarefas são gravadas no mesmo caminho do Amazon S3 e causam dados duplicados ou inconsistentes

Se várias tarefas do AWS DMS forem gravadas no mesmo caminho do S3, ocorrerão dados duplicados porque o Amazon S3 armazena todos os objetos recebidos.

Para solucionar esse problema, conclua as etapas a seguir:

  1. Abra o console do AWS DMS.
  2. No painel de navegação, em Migrar ou replicar, selecione Tarefas.
  3. Selecione sua tarefa.
  4. Verifique se o status da tarefa está como Interrompido.
    Observação: certifique-se de interromper tarefas não utilizadas ou de teste que ainda gravam dados.
  5. No painel de navegação, escolha Endpoints.
  6. Selecione seu endpoint de destino.
  7. Selecione Modificar.
  8. Atribua um valor exclusivo de BucketFolder.
  9. Escolha Salvar.
    Observação: o AWS DMS testa automaticamente a conexão do destino com a instância de replicação. Certifique-se de que o teste de conexão seja concluído com êxito.
  10. No painel de navegação, em Migrar ou replicar, selecione Tarefas.
  11. Selecione sua tarefa e, em seguida, escolha Ações. Escolha Reiniciar.
  12. Repita as etapas 2 a 11 para cada tarefa que se replica da mesma origem.

TargetTablePrepMode está definido como DO_NOTHING e causa registros duplicados

Se você definir TargetTablePrepMode como DO_NOTHING para sua tarefa e ele parar durante a fase de carga total, a tarefa gravará os arquivos de carga total novamente quando você a reiniciar. Isso causa dados duplicados de carga total porque o Amazon S3 não oferece suporte a atualizações ou limpezas automáticas.

Para solucionar esse problema, conclua as etapas a seguir:

  1. Abra o console do AWS DMS.
  2. No painel de navegação, em Migrar ou replicar, selecione Tarefas.
  3. Selecione sua tarefa.
  4. Verifique se o status da tarefa está como Interrompido.
  5. Selecione Modificar.
  6. Escolha Configurações da tarefa.
  7. Escolha o editor JSON.
  8. Encontre a seção de parâmetros FullLoadSettings. Defina TargetTablePrepMode como TRUNCATE_BEFORE_LOAD. Exemplo de configuração:
    "FullLoadSettings": {
    "TargetTablePrepMode": "TRUNCATE_BEFORE_LOAD"
    }
    Observação: para evitar dados duplicados com TargetTablePrepMode definido como DO_NOTHING, interrompa as tarefas somente após a conclusão da fase de carga total.
  9. Antes de reiniciar a tarefa, exclua manualmente os arquivos de carga total gravados anteriormente do seu bucket do S3.

Informações relacionadas

Configurações de endpoint ao usar o Amazon S3 como destino para o AWS DMS

Limitações ao uso do Amazon S3 como destino

AWS OFICIALAtualizada há 8 meses