Inoltre, l'importazione di dati da una determinata tabella a un secchio S3 consente di elaborare query complesse ed eseguire analisi sui dati utilizzando AWS Glue, Lake Formation e Athena. La funzione di esportazione di tabella DynamoDB è una soluzione completamente gestita, affidabile e veloce. Ancora di più, l'esportazione di una tabella non consuma la capacità di lettura della tabella né influisce sulle sue prestazioni e disponibilità.
Questo articolo discute tutto ciò che dovresti sapere sull'esportazione di tabelle DynamoDB su Amazon S3. Imparerai come esportare tabelle DynamoDB in S3 usando Boto3.
Come esportare i dati da DynamoDB ad Amazon S3
Per esportare i dati da Amazon DynamoDB ad Amazon S3, è possibile utilizzare il servizio della pipeline di dati AWS e configurarli per esportare periodicamente i dati dalla tabella DynamoDB in un bucket S3. È anche possibile utilizzare il servizio di colla AWS per esportare i dati da DynamoDB a S3 creando un crawler di colla che indica la tabella DynamoDB e un lavoro di colla che esporta i dati in S3.
Un altro approccio sarebbe quello di utilizzare gli SDK AWS per scrivere uno script che esporta i dati dalla tabella DynamoDB a S3. Lo script userebbe l'API DynamoDB per scansionare o interrogare la tabella e quindi l'API S3 per scrivere i dati su un secchio.
I seguenti sono i passaggi coinvolti durante l'esportazione di una tabella DynamoDB in Amazon S3:
Passaggio 1: installa la libreria Boto3
Puoi usare il PIP Installa Boto3 Comando per installare la libreria Boto3, che è l'SDK Amazon Web Services (AWS) per Python. In particolare, la biblioteca consente agli sviluppatori di Python di scrivere software che utilizzano servizi come Amazon S3 e Amazon EC2.
Il codice di installazione è come mostrato di seguito:
PIP Installa Boto3
Passaggio 2: importa le librerie richieste
IL Importa Boto3 E Importa JSON Utilità importano le librerie necessarie per il tuo script. Boto3 è utile per l'interazione con i servizi AWS, mentre JSON viene utilizzato per leggere e scrivere dati JSON.
La tua riga di comando dovrebbe apparire così:
Importa Boto3
Importa JSON
Passaggio 3: creare client per DynamoDB e S3
Utilizzerai i client per interrattare con S3 e DynamoDB. Per raggiungere questo obiettivo, dovrai usare DynamoDB = boto3.Client ('DynamoDB') E S3 = Boto3.Client ('S3') Comandi per creare client per DynamoDB e Amazon S3, rispettivamente.
È possibile utilizzare la riga di comando in basso:
DynamoDB = boto3.Client ('DynamoDB')
S3 = Boto3.Client ('S3')
Passaggio 4: specificare il nome della tabella e il nome del secchio S3
Definisci i nomi dei bucket della tabella e S3 utilizzando i codici seguenti:
table_name = 'mytablename'
bucket_name = 'mybucketname'
Passaggio 5: utilizzare l'operazione di scansione per recuperare gli elementi
È possibile utilizzare le operazioni di scansione o query per recuperare tutti gli elementi dalla tabella. In questa illustrazione, utilizzeremo l'operazione di scansione per il recupero degli articoli come mostrato:
Risultato = DynamoDB.scan (tablename = table_name)
Passaggio 6: scrivere elementi su un file
Utilizzare il file system locale per scrivere gli elementi su un file. Il file prenderà automaticamente i dati di nome '.JSON 'nel file system locale. Questa utilità dovrebbe aiutare:
con Open ('Data.json ',' w ') come data_file:
file di dati.Scrivi (JSON.dumps (risultato ['elementi']))
Passaggio 7: caricare il nuovo file su Amazon S3
Ora puoi caricare il tuo file sul bucket S3 specificato usando la riga di comando in basso:
S3.upload_file ('dati.json ', bucket_name,' dati.json ')
Passaggio 8: convalidare i dati
Questo passaggio è facoltativo ma ideale se si desidera convalidare i tuoi dati. È possibile eseguire la procedura di convalida scaricando il file da Amazon S3 prima di leggerlo.
Conclusione
È fondamentale notare che lo script è un esempio di base e può essere adatto solo per alcuni set di dati. Per set di dati di grandi dimensioni, considera di utilizzare il Boto3.DynamoDB.tipi.Typserializer per serializzare o formattare gli elementi e paginare attraverso i risultati usando il DynamoDB.scansione() metodo. IL Limite E Esclusivestartkey I parametri saranno utili durante la paginazione.