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 importazione di una tabella in DynamoDB
L'importazione DynamoDB consente di importare i dati da un bucket Amazon S3 a una nuova tabella DynamoDB. È possibile richiedere l'importazione di una tabella utilizzando la console DynamoDB
Se si desidera utilizzare il AWS CLI, è necessario prima configurarlo. Per ulteriori informazioni, consulta Accesso a DynamoDB.
Nota
La funzionalità Import Table interagisce con più AWS servizi diversi come Amazon CloudWatch S3 e. Prima di iniziare un'importazione, assicurati che l'utente o il ruolo che richiama l'importazione APIs disponga delle autorizzazioni per tutti i servizi e le risorse da cui dipende la funzionalità.
Non modificate gli oggetti Amazon S3 mentre l'importazione è in corso, poiché ciò può causare la non riuscita o l'annullamento dell'operazione.
Per ulteriori informazioni sugli errori e sulla risoluzione dei problemi, consulta Quote e convalida dei formati di importazione.
Argomenti
Configurazione delle autorizzazioni IAM
È possibile importare dati da qualsiasi bucket Amazon S3 per il quale si dispone dell'autorizzazione di lettura. Non è necessario che il bucket di origine si trovi nella stessa regione o abbia lo stesso proprietario della tabella di origine. Il tuo AWS Identity and Access Management (IAM) deve includere le azioni pertinenti sul bucket Amazon S3 di origine e le CloudWatch autorizzazioni necessarie per fornire informazioni di debug. Di seguito è riportata una policy di esempio.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDynamoDBImportAction", "Effect": "Allow", "Action": [ "dynamodb:ImportTable", "dynamodb:DescribeImport" ], "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/my-table*" }, { "Sid": "AllowS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-bucket/*", "arn:aws:s3:::your-bucket" ] }, { "Sid": "AllowCloudwatchAccess", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:/aws-dynamodb/*" }, { "Sid": "AllowDynamoDBListImports", "Effect": "Allow", "Action": "dynamodb:ListImports", "Resource": "*" } ] }
Autorizzazioni di Amazon S3
Quando si avvia un'importazione in bucket Amazon S3 di origine di proprietà di un altro account, assicurati che il ruolo o l'utente abbia accesso agli oggetti Amazon S3. A tale scopo, esegui il comando Amazon S3 GetObject
e usa le credenziali. Quando si utilizzaAPI, il parametro del proprietario del bucket Amazon S3 utilizza per impostazione predefinita l'ID dell'account dell'utente corrente. Per le importazioni tra account, assicurati che questo parametro sia correttamente popolato con l'ID dell'account del proprietario del bucket. Il codice seguente è un esempio di policy del bucket S3 nell'account di destinazione.
{ "Version": "2012-10-17", "Statement": [ {"Sid": "ExampleStatement", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
AWS Key Management Service
Quando si crea la nuova tabella per l'importazione, se si seleziona una chiave di crittografia a riposo che non è di proprietà di DynamoDB, è necessario fornire AWS KMS le autorizzazioni necessarie per utilizzare una tabella DynamoDB crittografata con chiavi gestite dal cliente. Per ulteriori informazioni, consulta Autorizzazione dell'uso della chiave. AWS KMS Se gli oggetti Amazon S3 sono crittografati con crittografia lato server KMS (SSE-KMS), assicurati che il ruolo o l'utente che avvia l'importazione abbia accesso alla decrittografia utilizzando la chiave. AWS KMS Questa funzionalità non supporta oggetti Amazon S3 crittografati con chiavi di crittografia (SSE-C) fornite dal cliente.
CloudWatch autorizzazioni
Il ruolo o l'utente che sta avviando l'importazione necessita delle autorizzazioni di creazione e gestione per il gruppo di log e i flussi di log associati all'importazione.
Richiesta di un'importazione utilizzando la AWS Management Console
L'esempio seguente mostra come utilizzare la console DynamoDB per importare i dati esistenti in una nuova tabella denominata MusicCollection
.
Come richiedere l'importazione di una tabella
Accedi AWS Management Console e apri la console DynamoDB all'indirizzo. https://console.aws.amazon.com/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).
-
Scegliere Import from S3 (Importazione da S3).
-
In Source S3 URL, inserisci il codice sorgente Amazon URL S3.
Se possiedi il bucket sorgente, scegli Browse S3 per cercarlo. In alternativa, inserisci i bucket URL nel seguente formato:.
s3://bucket/prefix
prefix
È un prefisso chiave di Amazon S3. È il nome dell'oggetto Amazon S3 che desideri importare o il prefisso chiave condiviso da tutti gli oggetti Amazon S3 che desideri importare.Nota
Non è possibile utilizzare lo stesso prefisso della richiesta di esportazione DynamoDB. La funzionalità di esportazione crea una struttura di cartelle e file manifest per tutte le esportazioni. Se utilizzi lo stesso percorso Amazon S3, si verificherà un errore.
Invece, indirizza l'importazione verso la cartella, che contiene i dati di quella specifica esportazione. Il formato del percorso corretto in questo caso sarà
s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/
:XXXXXXXX-XXXXXX
dov'è l'ID di esportazione. Puoi trovare l'ID di esportazione nell'esportazioneARN, che ha il seguente formato:arn:aws:dynamodb:<Region>:<AccountID>:table/<TableName>/export/<XXXXXXXX-XXXXXX>
. Ad esempioarn:aws:dynamodb:
.us-east-1
:123456789012
:table/ProductCatalog
/export/01234567890123-a1b2c3d4
-
Specificare se si è il proprietario nella casella S3 bucket owner (Proprietario bucket S3). Se il bucket di origine è di proprietà di un account diverso, seleziona Un AWS account diverso. Immettere quindi l'ID dell'account del proprietario del bucket.
In Importa compressione del file, seleziona Nessuna compressione GZIPo ZSTDcome appropriato.
Selezionare il formato di file di importazione appropriato. Le opzioni sono JSONDynamoDB, Amazon Ion o. CSV Se selezioni CSV, avrai due opzioni aggiuntive: CSVheader e CSV delimiter character.
Per l'CSVintestazione, scegli se l'intestazione verrà presa dalla prima riga del file o sarà personalizzata. Se selezioni Personalizza le intestazioni, puoi specificare i valori di intestazione con cui desideri importare. CSV Le intestazioni specificate da questo metodo fanno distinzione tra maiuscole e minuscole e dovrebbero contenere le chiavi della tabella di destinazione.
Per il carattere CSVdelimitatore, si imposta il carattere che separerà gli elementi. Per impostazione predefinita è selezionata la virgola. Se si seleziona Custom delimiter character (Carattere delimitatore personalizzato), il delimitatore deve corrispondere al modello regex:
[,;:|\t ]
.Selezionare il pulsante Next (Successivo) e quindi le opzioni per la nuova tabella creata per archiviare i dati.
Nota
La chiave primaria e la chiave di ordinamento devono corrispondere agli attributi nel file. In caso contrario, l'importazione avrà esito negativo. Gli attributi rispettano la distinzione tra maiuscole e minuscole.
Selezionare di nuovo Next (Successivo) per rivedere le opzioni di importazione, quindi fare clic su Import (Importa) per avviare l'attività di importazione. La nuova tabella verrà elencata nella sezione "Tables" (Tabelle) con lo stato "Creating" (Creazione in corso). A questo punto, la tabella non è accessibile.
Una volta completata l'importazione, verrà visualizzato lo stato "Active" (Attivo). A questo punto è possibile iniziare a utilizzare la tabella.
Ottenere dettagli sulle importazioni passate in AWS Management Console
Per informazioni sulle attività di importazione eseguite in passato, fai clic su Import from S3 (Importazione da S3) nella barra laterale di navigazione, quindi seleziona la scheda Imports (Importazioni). Il pannello delle importazioni contiene l'elenco di tutte le importazioni create negli ultimi 90 giorni. Selezionando ARN un'attività elencata nella scheda Importazioni verranno recuperate le informazioni sull'importazione, incluse le impostazioni di configurazione avanzate scelte.
Richiedere un'importazione utilizzando il AWS CLI
L'esempio seguente importa dati CSV formattati da un bucket S3 chiamato bucket con un prefisso o prefisso in una nuova tabella denominata target-table.
aws dynamodb import-table --s3-bucket-source S3Bucket=bucket,S3KeyPrefix=prefix \ --input-format CSV --table-creation-parameters '{"TableName":"target-table","KeySchema": \ [{"AttributeName":"hk","KeyType":"HASH"}],"AttributeDefinitions":[{"AttributeName":"hk","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST"}' \ --input-format-options '{"Csv": {"HeaderList": ["hk", "title", "artist", "year_of_release"], "Delimiter": ";"}}'
Nota
Se scegli di crittografare l'importazione utilizzando una chiave protetta da AWS Key Management Service (AWS KMS), la chiave deve trovarsi nella stessa regione del bucket Amazon S3 di destinazione.
Ottenere dettagli sulle importazioni passate in AWS CLI
Le informazioni sulle attività di importazione eseguite in passato possono essere recuperate utilizzando il comando list-imports
. Questo comando restituisce un elenco di tutte le importazioni create negli ultimi 90 giorni. Si noti che, sebbene le attività di importazione scadano dopo 90 giorni e i processi più vecchi non siano più presenti in questo elenco, DynamoDB non elimina nessuno degli oggetti nel bucket Amazon S3 o nella tabella creata durante l'importazione.
aws dynamodb list-imports
Per recuperare informazioni dettagliate su un'attività di importazione specifica, incluse le impostazioni di configurazione avanzate, utilizza il comando describe-import
.
aws dynamodb describe-import \ --import-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/exp