Migrazione di una tabella utilizzando l’esportazione in S3 e l’importazione da S3
Prerequisiti
-
È necessario abilitare il recupero point-in-time (PITR) per la tabella per eseguire l’esportazione in S3. Per ulteriori informazioni, consulta Abilitazione del recupero point-in-time in DynamoDB.
-
Autorizzazioni IAM valide per eseguire l’esportazione. Per ulteriori informazioni, consulta Richiesta di esportazione di una tabella in DynamoDB.
-
Autorizzazioni IAM valide sufficienti per eseguire l’importazione. Per ulteriori informazioni, consulta Richiesta di importazione di una tabella in DynamoDB.
Informazioni sui prezzi
Addebiti AWS per il PITR (in base alla dimensione della tabella e tanto a lungo quanto il PITR è abilitato). Se non si ha bisogno di PITR tranne che per l’esportazione, è possibile disattivarlo al termine dell’operazione. AWS inoltre effettua addebiti per le richieste effettuate nei confronti di S3, per l’archiviazione dei dati esportati in S3 e per l’importazione (in base alla dimensione non compressa dei dati importati).
Per ulteriori informazioni sui prezzi di DynamoDB, consulta Prezzi di Amazon DynamoDB
Nota
Esistono limiti alla dimensione e al numero di oggetti consentiti durante l’importazione da S3 a DynamoDB. Per ulteriori informazioni, consulta Quote di importazione.
Richiesta di esportazione di una tabella ad Amazon S3
-
Accedi alla console di gestione AWS e apri la console DynamoDB.
-
Nel riquadro di navigazione sul lato sinistro della console, scegli Exports to S3 (Esportazioni su S3).
-
Scegli una tabella di origine e un bucket S3 di destinazione. Immetti l’URL del bucket dell’account di destinazione utilizzando il formato
s3://bucketname/prefix./prefixè una cartella facoltativa che consente di mantenere organizzato il bucket di destinazione. -
Seleziona Esportazione completa. Un’esportazione completa restituisce lo snapshot dell’intera tabella nel punto temporale specificato.
-
Seleziona Ora corrente per esportare l’ultimo snapshot completo della tabella.
-
Per Formato di file esportato, seleziona tra DynamoDB JSON e Amazon Ion. L’opzione predefinita è DynamoDB JSON.
-
-
Fai clic sul pulsante Esporta per iniziare l'esportazione.
-
Le esportazioni di tabelle di piccole dimensioni dovrebbero essere completate in pochi minuti, ma le tabelle con dimensioni nell’intervallo dei terabyte possono richiedere più di un’ora.
Richiesta di importazione di una tabella da Amazon S3
-
Accedi alla console di gestione AWS e apri la console DynamoDB.
-
Nel pannello di navigazione sul lato sinistro della console, scegliere Exports to S3 (Esportazioni su S3).
-
Nella pagina visualizzata, selezionare Import from S3 (Importazione da S3).
-
Immettere l'URL di origine di Amazon S3. È possibile trovarla anche usando il pulsante Sfoglia S3. Il formato del percorso previsto è
s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/data/. -
Specificare se si è il proprietario nella casella S3 bucket owner (Proprietario bucket S3).
-
In Compressione dei file di importazione, seleziona GZIP in modo che corrisponda all’esportazione.
-
In Formato file di importazione, seleziona JSON DynamoDB in modo che corrisponda all’esportazione.
-
Seleziona Avanti. In Specifica i dettagli della tabella, seleziona le opzioni per la nuova tabella che verrà creata per archiviare i dati.
-
Seleziona Avanti. Per Configura le impostazioni della tabella, personalizza eventuali impostazioni aggiuntive della tabella, se applicabile.
-
Selezionare di nuovo Next (Successivo) per rivedere le opzioni di importazione, quindi fare clic su Import (Importa) per avviare l'attività di importazione. Vedrai la nuova tabella elencata in Importazioni da S3 con lo stato Importazione in corso. Non è possibile accedere alla tabella durante questo periodo. Le importazioni di piccole dimensioni dovrebbero essere completate in pochi minuti, ma le tabelle con dimensioni nell’intervallo dei terabyte possono richiedere più di un’ora.
-
Una volta completata l’importazione, verrà visualizzato lo stato Attivo. A questo punto è possibile iniziare a utilizzare la tabella.
Mantenere le tabelle sincronizzate durante la migrazione
Sospendendo le operazioni di scrittura sulla tabella di origine per tutta la durata della migrazione, l’origine e l’output dovrebbero corrispondere esattamente dopo la migrazione. Se non è possibile sospendere le operazioni di scrittura, la tabella di destinazione normalmente risulterà leggermente in ritardo rispetto all’origine dopo la migrazione. Per riallineare la tabella di origine, è possibile utilizzare i flussi (flussi DynamoDB o flusso di dati Kinesis per DynamoDB) per riprodurre le scritture avvenute nella tabella di origine dopo il backup o l’esportazione.
Sarebbe necessario iniziare a leggere i record del flusso prima del timestamp in cui la tabella di origine è stata esportata in S3. Ad esempio, se l’esportazione in S3 è avvenuta alle 14:00 e l’importazione nella tabella di destinazione è stata conclusa alle 23:00, la lettura del flusso DynamoDB deve essere avviata alle 13:58. La tabella delle opzioni di streaming per il Change Data Capture riassume le funzionalità di ciascun modello di streaming.
L’uso dei flussi DynamoDB con Lambda offre un approccio semplificato per la sincronizzazione dei dati tra le tabelle DynamoDB di origine e di destinazione. È possibile utilizzare una funzione Lambda per riprodurre ogni scrittura nella tabella di destinazione.
Nota
Gli elementi vengono conservati nei flussi DynamoDB per 24 ore, quindi è necessario pianificare il completamento del backup e del ripristino o l’esportazione e l’importazione all’interno di tale finestra.