Salta al contenuto

Come posso risolvere i problemi di incoerenza dei dati quando utilizzo un bucket Amazon S3 come destinazione per la migrazione di AWS DMS?

4 minuti di lettura
0

Desidero risolvere i problemi di incoerenza dei dati quando utilizzo Amazon Simple Storage Service (Amazon S3) come destinazione per la migrazione di AWS Database Migration Service (AWS DMS).

Breve descrizione

Quando esegui la migrazione dei dati da un database di origine a un bucket S3, potresti riscontrare dati mancanti, dati duplicati o colonne mancanti dopo le modifiche allo schema. Questo si verifica perché Amazon S3 non supporta chiavi primarie, aggiornamenti o integrità referenziale.

Per risolvere i problemi di incoerenza dei dati, completa l'apposita procedura di risoluzione.

Risoluzione

Dati mancanti o rimossi nella destinazione S3

Se si verificano operazioni TRUNCATE TABLE o DROP TABLE sul database di origine, AWS DMS replica le operazioni su Amazon S3. Questa replica potrebbe comportare la perdita di dati.

Per evitare la mancanza o la rimozione di dati dalle operazioni TRUNCATE o DROP TABLE, rivedi e modifica le impostazioni di gestione del linguaggio di definizione dei dati (DDL, Data Definition Language). Completa i seguenti passaggi:

  1. Apri la console AWS DMS.

  2. Nel pannello di navigazione, per Migra o replica, scegli Attività.

  3. Seleziona l'attività.

  4. Verifica che lo stato dell'attività sia Arrestata.

  5. Scegli Modifica.

  6. Scegli Impostazioni delle attività.

  7. Scegli Editor JSON.

  8. Trova la sezione dei parametri ChangeProcessingDDLHandlingPolicy. Quindi, imposta i parametri HandleSourceTableTruncated e HandleSourceTableDropped su False. Esempio di configurazione:

    "ChangeProcessingDdlHandlingPolicy": {
       "HandleSourceTableDropped": false,
       "HandleSourceTableTruncated": false
    }
  9. Scegli Salva.

  10. Scegli Operazioni, quindi Riprendi.

Amazon S3 non riflette le modifiche allo schema

Se aggiungi nuove colonne a una tabella nell'origine, ma non attivi l'evoluzione dello schema, AWS DMS potrebbe non acquisire le modifiche.

Per risolvere la problematica relativa alle modifiche mancanti nello schema, completa i seguenti passaggi:

  1. Apri la console AWS DMS.

  2. Nel pannello di navigazione, per Migra o replica, scegli Attività.

  3. Seleziona l'attività.

  4. Verifica che lo stato dell'attività sia Arrestata.

  5. Scegli Modifica.

  6. Scegli Impostazioni delle attività.

  7. Scegli Editor JSON.

  8. Trova la sezione dei parametri ChangeProcessingDDLHandlingPolicy. Quindi, imposta il parametro HandleSourceTableAltered su True. Esempio di configurazione:

    "ChangeProcessingDdlHandlingPolicy": {
       "HandleSourceTableAltered": true
    }
  9. Scegli Salva.

  10. Scegli Operazioni, quindi Riprendi.

  11. Per includere le nuove colonne nei tuoi dati Amazon S3, ricarica la tabella.

Più attività scrivono sullo stesso percorso Amazon S3 e provocano dati duplicati o incoerenti

Se più attività AWS DMS scrivono sullo stesso percorso S3, si verificheranno dati duplicati perché Amazon S3 memorizza tutti gli oggetti in entrata.

Per risolvere il problema, completa i seguenti passaggi:

  1. Apri la console AWS DMS.
  2. Nel pannello di navigazione, per Migra o replica, scegli Attività.
  3. Seleziona l'attività.
  4. Verifica che lo stato dell'attività sia Arrestata.
    Nota: assicurati di interrompere le attività inutilizzate o di test che continuano a scrivere dati.
  5. Nel pannello di navigazione scegli Endpoint.
  6. Seleziona l'endpoint di destinazione.
  7. Scegli Modifica.
  8. Assegna un valore BucketFolder univoco.
  9. Scegli Salva.
    Nota: AWS DMS verifica automaticamente la connessione tra la destinazione e l'istanza di replica. Assicurati che il test della connessione sia completato correttamente.
  10. Nel pannello di navigazione, per Migra o replica, scegli Attività.
  11. Seleziona l'attività, quindi scegli Operazioni. Scegli Riavvia.
  12. Ripeti i passaggi 2-11 per ciascuna attività replicata dalla stessa origine.

TargetTablePrepMode è impostato su DO_NOTHING e causa record duplicati

Se imposti TargetTablePrepMode su DO_NOTHING per l'attività e questa si interrompe durante la fase di caricamento completo, l'operazione scrive nuovamente i file con caricamento completo al riavvio. Questo causa la duplicazione dei dati a caricamento completo perché Amazon S3 non supporta eliminazioni o aggiornamenti automatici.

Per risolvere il problema, completa i seguenti passaggi:

  1. Apri la console AWS DMS.
  2. Nel pannello di navigazione, per Migra o replica, scegli Attività.
  3. Seleziona l'attività.
  4. Verifica che lo stato dell'attività sia Arrestata.
  5. Scegli Modifica.
  6. Scegli Impostazioni delle attività.
  7. Scegli Editor JSON.
  8. Trova la sezione dei parametri FullLoadSettings. Imposta TargetTablePrepMode su TRUNCATE_BEFORE_LOAD. Esempio di configurazione:
    "FullLoadSettings": {
    "TargetTablePrepMode": "TRUNCATE_BEFORE_LOAD"
    }
    Nota: per evitare duplicati con TargetTablePrepMode impostato su DO_NOTHING, interrompi le attività solo al termine della fase di caricamento completo.
  9. Prima di riavviare l'attività, elimina manualmente i file con caricamento completo scritti in precedenza dal bucket S3.

Informazioni correlate

Impostazioni degli endpoint quando si utilizza Amazon S3 come destinazione per AWS DMS

Limitazioni all'utilizzo di Amazon S3 come destinazione

AWS UFFICIALEAggiornata 6 mesi fa