Quali sono le best practice per la migrazione di un database RDBMS ad Amazon Redshift utilizzando AWS DMS?

4 minuti di lettura
0

Ho un database relazionale Relational Database Management System (RDBMS) che desidero migrare ad Amazon Redshift utilizzando AWS Database Migration Service (AWS DMS). Quali best practice posso seguire durante la migrazione di un database RDBMS ad Amazon Redshift?

Risoluzione

Per agevolare la migrazione dei database RDBMS ad Amazon Redshift utilizzando AWS DMS, utilizza le best practice in questo articolo.

  • Utilizza il carico parallelo con le regole di impostazione delle tabelle quando esegui la migrazione dei dati su un endpoint Amazon Redshift. Per ulteriori informazioni sull'utilizzo del carico parallelo e su come usarlo per accelerare la migrazione, consulta la sezione Utilizzo del carico parallelo per tabelle, visuali e raccolte selezionate.
  • Le versioni 3.4.5 e successive di AWS DMS includono il supporto per l'utilizzo delle impostazioni delle attività ParallelLoad durante il caricamento completo sugli endpoint target di Amazon Redshift. Per maggiori informazioni, consulta la sezione Impostazioni delle attività a pieno carico multithread per Amazon Redshift.
  • Se stai migrando una grande quantità di dati in Amazon Redshift, aumenta i valori degli attributi dell'endpoint "maxFileSize" e "fileTransferUploadStreams". In questo modo è possibile migliorare le prestazioni a pieno carico. Quindi, aumenta il valore "CommitRate" per migliorare le prestazioni.
  • Poiché AWS DMS non supporta la modalità "Full Lob Mode" quando utilizzi Amazon Redshift come target per i tuoi database, assicurati di configurare "LobMaxSize" su un valore appropriato.
  • Assicurati che le tue tabelle Amazon Redshift abbiano una chiave primaria. Se la tabella del target non dispone di una chiave primaria, gli inserimenti vengono effettuati in modalità "BatchApply". Tuttavia, ciò influisce sulle prestazioni poiché gli aggiornamenti e le eliminazioni vengono applicati uno alla volta. Pertanto, per evitare problemi di prestazioni assicurati che AWS DMS esegua la migrazione dei dati CDC in batch verso l'endpoint target di Amazon Redshift.
  • Regola le impostazioni di applicazione dell'opzione batch in base al carico di lavoro per ridurre il numero di commit sul target. Le impostazioni di applicazione dell'opzione batch includono: BatchApplyTimeoutMin, BatchApplyTimeoutMax e BatchApplyMemoryLimit.
  • Utilizza "BatchSplitSize" per impostare il numero massimo di modifiche applicate in un singolo batch. Il valore predefinito è 0, il che significa che non è stato applicato alcun limite.
  • Crea tabelle del target di Amazon Redshift con le chiavi di distribuzione e ordinamento appropriate. Quando AWS DMS crea tabelle per gli endpoint target di Amazon Redshift, crea tabelle con una chiave di distribuzione predefinita e nessuna chiave di ordinamento. Amazon Redshift archivia i dati su disco seguendo un ordine, in base alla chiave di ordinamento. L'ottimizzatore di query di Amazon Redshift utilizza l'ordinamento per determinare i piani di query ottimali. Pertanto, quando si esegue una query, l'ottimizzatore di query ridistribuisce le righe ai nodi di calcolo in base alle esigenze per eseguire join e aggregazioni. Per ulteriori informazioni, consulta le sezioni Scegliere la chiave di ordinamento migliore e Utilizzo degli stili di distribuzione dei dati.
  • Se hai un carico di lavoro transazionale elevato, utilizza impostazioni simili a quelle di seguito. Queste impostazioni di esempio indicano che un buffer batch da 8.000 MB viene riempito in 1.800 secondi, utilizzando 32 thread paralleli e con una dimensione massima del file di 250 MB. Impostazioni degli endpoint Amazon Redshift:
MaxFileSize=250000;

Impostazioni delle attività:

BatchApplyEnabled=true;
BatchSplitSize =8000;
BatchApplyTimeoutMax =1800;
BatchApplyTimeoutMin =1800;
ParallelApplyThreads=32;
ParallelApplyBufferSize=100;
  • Assicurati che in Amazon Redshift non siano presenti blocchi o sessioni di blocco. Per ulteriori informazioni, consulta la sezione Come posso rilevare e rilasciare i blocchi in Amazon Redshift?

  • Utilizza lo strumento Amazon Redshift Workload Management (WLM) per gestire il tuo carico di lavoro. Amazon Redshift WLM può essere utilizzato per definire più code di query e per instradare le query alle code appropriate in fase di runtime. Per ulteriori informazioni, consulta la sezione Gestione del carico di lavoro.


Informazioni correlate

Utilizzo di un database Amazon Redshift come target per AWS Database Migration Service

Come posso utilizzare Amazon Redshift come endpoint target per la mia attività AWS DMS?

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa