Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Richiesta di esportazione di una tabella in DynamoDB
Le esportazioni di tabelle DynamoDB ti consentono di esportare i dati delle tabelle in un bucket Amazon S3, consentendoti di eseguire analisi e query complesse sui tuoi dati utilizzando altri AWS servizi come Athena, AWS Glue, Amazon SageMakerEMR, Amazon e AWS Lake Formation. È possibile richiedere l'esportazione di una tabella utilizzando AWS Management Console, il AWS CLI o DynamoDB. API
Nota
I bucket Amazon S3 a pagamento del richiedente non sono supportati.
DynamoDB supporta sia l'esportazione completa che l'esportazione incrementale:
-
Con le esportazioni complete, puoi esportare un'istantanea completa della tua tabella da qualsiasi momento all'interno della finestra di point-in-time recovery (PITR) nel tuo bucket Amazon S3.
-
Con le esportazioni incrementali, puoi esportare i dati dalla tabella DynamoDB che sono stati modificati, aggiornati o eliminati tra un periodo di tempo specificato, all'interno della PITR tua finestra, nel tuo bucket Amazon S3.
Argomenti
- Prerequisiti
- Richiedere un'esportazione utilizzando il AWS Management Console
- Per maggiori dettagli sulle esportazioni passate, consulta AWS Management Console
- Richiedere un'esportazione utilizzando il AWS CLI
- Ottenere dettagli sulle esportazioni passate in AWS CLI
- Richiedere un'esportazione utilizzando il AWS SDK
- Ottenere dettagli sulle esportazioni passate utilizzando il AWS SDK
Prerequisiti
Abilita PITR
Per utilizzare la funzionalità di esportazione in S3, devi abilitarla PITR sul tuo tavolo. Per i dettagli su come abilitarePITR, consulta P oint-in-time recovery. Se richiedi un'esportazione per una tabella che non è PITR stata abilitata, la richiesta avrà esito negativo e verrà visualizzato un messaggio di eccezione: «Si è verificato un errore (PointInTimeRecoveryUnavailableException) durante la chiamata dell'ExportTableToPointInTime
operazione: Il ripristino del punto in tempo non è abilitato per la tabella 'my-dynamodb-table».
Impostazione delle autorizzazioni S3
È possibile esportare i dati della tabella in qualsiasi bucket Amazon S3 per cui si ha l'autorizzazione di scrittura. Non è necessario che il bucket di destinazione sia nello stesso AWS Regionano o hanno lo stesso proprietario del proprietario della tabella di origine. La tua AWS Identity and Access Management (IAM) la policy deve consentire di eseguire le azioni S3 (s3:AbortMultipartUpload
s3:PutObject
, es3:PutObjectAcl
) e l'azione di esportazione di DynamoDB (). dynamodb:ExportTableToPointInTime
Ecco un esempio di policy di esempio che concederà all'utente le autorizzazioni per eseguire esportazioni verso un bucket S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDynamoDBExportAction", "Effect": "Allow", "Action": "dynamodb:ExportTableToPointInTime", "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/my-table" }, { "Sid": "AllowWriteToDestinationBucket", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::your-bucket/*" } ] }
Se devi scrivere su un bucket S3 che si trova in un altro account o non disponi delle autorizzazioni per scrivere, il proprietario del bucket S3 deve aggiungere una policy per i bucket che ti consenta di esportare da DynamoDB verso quel bucket. Ecco un esempio di policy sul bucket S3 di destinazione.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStatement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::awsexamplebucket1/*" } ] }
La revoca di queste autorizzazioni mentre è in corso un'esportazione comporterà la creazione di file parziali.
Nota
Se la tabella o il bucket in cui stai esportando è crittografato con chiavi gestite dal cliente, le policy di quella KMS chiave devono autorizzare DynamoDB a utilizzarla. Questa autorizzazione viene concessa tramite l'IAMutente/ruolo che attiva il processo di esportazione. Per ulteriori informazioni sulla crittografia, incluse le best practice, consulta Come utilizza DynamoDB AWS KMSe Utilizzo di una chiave personalizzata KMS
Richiedere un'esportazione utilizzando il AWS Management Console
Nell'esempio seguente viene mostrato come utilizzare la console DynamoDB per esportare una tabella esistente denominata MusicCollection
.
Nota
Questa procedura presuppone che sia stato point-in-time abilitato il ripristino. Per abilitarla per la MusicCollection
tabella, nella scheda Panoramica della tabella, nella sezione Dettagli della tabella, scegli Abilita il oint-in-timeripristino P.
Come richiedere l'esportazione di una tabella
Accedi a AWS Management Console e apri la console DynamoDB all'indirizzo. https://console.aws.amazon.com/dynamodb/
-
Nel riquadro di navigazione sul lato sinistro della console, scegli Exports to S3 (Esportazioni su S3).
-
Seleziona il pulsante Esporta in S3.
-
Scegli una tabella di origine e un bucket S3 di destinazione. Se il bucket di destinazione è di proprietà dell'account, è possibile utilizzare il pulsante Browse S3 (Sfoglia S3) per trovarlo. Altrimenti, inserisci il URL bucket utilizzando
s3://
labucketname
/prefix
format.prefix
cartella opzionale per mantenere organizzato il bucket di destinazione. -
Scegli Esportazione completa o Esportazione incrementale. Un'esportazione completa restituisce lo snapshot dell'intera tabella così com'era nel point-in-time specificato. Un'esportazione incrementale restituisce le modifiche apportate alla tabella durante il periodo di esportazione specificato. L'output è compattato in modo da contenere solo lo stato finale dell'articolo relativo al periodo di esportazione. L'elemento verrà visualizzato solo una volta nell'esportazione anche se presenta più aggiornamenti nello stesso periodo di esportazione.
-
Scegli Esporta per iniziare.
I dati esportati non sono coerenti dal punto di vista delle transazioni. Le operazioni di transazione possono essere suddivise tra due output di esportazione. Un sottoinsieme di articoli può essere modificato da un'operazione di transazione riflessa nell'esportazione, mentre un altro sottoinsieme di modifiche nella stessa transazione non si riflette nella stessa richiesta di esportazione. Tuttavia, le esportazioni presentano tutte una consistenza finale. Se una transazione viene interrotta durante un'esportazione, la transazione rimanente verrà inserita nella successiva esportazione contigua, senza duplicati. I periodi di tempo utilizzati per le esportazioni si basano su un orologio di sistema interno e possono variare di un minuto rispetto all'orologio locale dell'applicazione.
Per maggiori dettagli sulle esportazioni passate, consulta AWS Management Console
Puoi trovare informazioni sulle attività di esportazione che hai eseguito in passato scegliendo la sezione Esportazioni in S3 nella barra laterale di navigazione. Questa scheda contiene un elenco di tutte le esportazioni create negli ultimi 90 giorni. Seleziona un'attività elencata nella scheda Esportazioni per recuperare informazioni su quell'esportazione, incluse le impostazioni di configurazione avanzate che hai scelto. ARN Notare che, sebbene i metadati delle attività di esportazione scadano dopo 90 giorni e i processi più vecchi non siano più presenti in questo elenco, gli oggetti nel bucket S3 rimangono finché le relative policy di bucket lo consentono. DynamoDB non elimina mai alcun oggetto creato nel bucket S3 durante un'esportazione.
Richiedere un'esportazione utilizzando il AWS CLI
L'esempio seguente mostra come utilizzare AWS CLI per esportare una tabella esistente denominata MusicCollection
in un bucket S3 chiamato. ddb-export-musiccollection
Nota
Questa procedura presuppone che tu abbia abilitato il ripristino. point-in-time Per abilitarlo per la tabella MusicCollection
, emettere il comando seguente.
aws dynamodb update-continuous-backups \ --table-name MusicCollection \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=True
Nota
Se scegli di crittografare l'esportazione utilizzando una chiave protetta da AWS Key Management Service (AWS KMS), la chiave deve trovarsi nella stessa regione del bucket S3 di destinazione.
Ottenere dettagli sulle esportazioni passate in AWS CLI
Le informazioni sulle richieste di esportazione eseguite in passato possono essere recuperate utilizzando il comando list-exports
. Questo comando restituisce un elenco di tutte le esportazioni create negli ultimi 90 giorni. Notare che, sebbene i metadati dei processi di esportazione scadano dopo 90 giorni e i processi più vecchi non siano restituiti dal comando list-exports
, gli oggetti nel bucket S3 rimangono finché le relative policy di bucket lo consentono. DynamoDB non elimina mai alcun oggetto creato nel bucket S3 durante un'esportazione.
Lo stato delle esportazioni è PENDING
fino a quando non hanno esito positivo o negativo. Se hanno successo, lo stato diventaCOMPLETED
. Se falliscono, lo stato diventa FAILED
con una failure_message
efailure_reason
.
Nell'esempio seguente viene utilizzato il parametro table-arn
facoltativo per elencare solo le esportazioni di una tabella specifica.
aws dynamodb list-exports \ --table-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog
Per recuperare informazioni dettagliate su un processo di esportazione specifico, incluse le impostazioni di configurazione avanzate, utilizza il comando describe-export
.
aws dynamodb describe-export \ --export-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4
Richiedere un'esportazione utilizzando il AWS SDK
Usa questi frammenti di codice per richiedere l'esportazione di una tabella utilizzando il AWS SDKdi tua scelta.
Ottenere dettagli sulle esportazioni passate utilizzando il AWS SDK
Usa questi frammenti di codice per ottenere dettagli sulle esportazioni di tabelle precedenti utilizzando il AWS SDKa tua scelta.