Operazioni di base sulle tabelle DynamoDB - Amazon DynamoDB

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à.

Operazioni di base sulle tabelle DynamoDB

Analogamente ad altri sistemi di database, Amazon DynamoDB archivia i dati in tabelle. Puoi gestire le tabelle utilizzando alcune operazioni di base.

Creazione di una tabella

Utilizza l'operazione CreateTable per creare una tabella in Amazon DynamoDB. Per creare la tabella, è necessario fornire le informazioni riportate di seguito:

  • Nome tabella. Il nome deve essere conforme alle regole di denominazione di DynamoDB e deve essere univoco per l'account corrente e la regione. AWS Ad esempio, è possibile creare una tabella People nella regione Stati Uniti orientali (Virginia settentrionale) e un'altra tabella People in Europa (Irlanda). Tuttavia, queste due tabelle sarebbero totalmente diverse l'una dall'altra. Per ulteriori informazioni, consulta Tipi di dati e regole di denominazione supportati in Amazon DynamoDB.

  • Chiave primaria. La chiave primaria può consistere di un attributo (chiave di partizione) o due attributi (chiave di partizione e chiave di ordinamento). Devi fornire i nomi e i tipi di dati degli attributi e il ruolo di ciascun attributo: HASH (per una chiave di partizione) e RANGE (per una chiave di ordinamento). Per ulteriori informazioni, consulta Chiave primaria.

  • Impostazioni di throughput (per tabelle assegnate). Se utilizzi la modalità assegnata, devi specificare le impostazioni iniziali di throughput di lettura e scrittura per la tabella. Queste impostazioni possono essere modificate successivamente oppure è possibile abilitare la scalabilità automatica di DynamoDB perché le impostazioni vengano gestite automaticamente. Per ulteriori informazioni, consulta Modalità di capacità fornita da DynamoDB e Gestione automatica della capacità effettiva di trasmissione con il dimensionamento automatico di DynamoDB.

Esempio 1: creazione di una tabella assegnata

L' AWS CLI esempio seguente mostra come creare una tabella (). Music La chiave primaria è costituita da Artist (chiave di partizione) e SongTitle (chiave di ordinamento), entrambe con tipo di dati String. Il throughput massimo per questa tabella è 10 unità di capacità di lettura e 5 unità di capacità di scrittura.

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5

L'operazione CreateTable restituisce i metadati per la tabella, come illustrato di seguito:

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 10 }, "TableSizeBytes": 0, "TableName": "Music", "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397215.37 } }

L'elemento TableStatus indica lo stato corrente della tabella (CREATING). La creazione della tabella potrebbe richiedere del tempo, in base ai valori specificati per ReadCapacityUnits e WriteCapacityUnits. Valori maggiori richiedono l'allocazione di più risorse per la tabella da parte di DynamoDB.

Esempio 2: creazione di una tabella on demand

Per creare la stessa tabella Music utilizzando la modalità on demand:

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --billing-mode=PAY_PER_REQUEST

L'operazione CreateTable restituisce i metadati per la tabella, come illustrato di seguito:

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 0, "ReadCapacityUnits": 0 }, "TableSizeBytes": 0, "TableName": "Music", "BillingModeSummary": { "BillingMode": "PAY_PER_REQUEST" }, "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397468.348 } }
Importante

Quando si richiama DescribeTable su una tabella on demand, le unità di capacità in lettura e le unità di capacità in scrittura sono impostate su 0.

Esempio 3: creazione di una tabella utilizzando la classe di tabella DynamoDB Standard (accesso infrequente)

Crea la stessa tabella Music utilizzando la classe di tabella DynamoDB Standard (accesso infrequente).

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5 \ --table-class STANDARD_INFREQUENT_ACCESS

L'operazione CreateTable restituisce i metadati per la tabella, come illustrato di seguito:

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 10 }, "TableClassSummary": { "LastUpdateDateTime": 1542397215.37, "TableClass": "STANDARD_INFREQUENT_ACCESS" }, "TableSizeBytes": 0, "TableName": "Music", "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397215.37 } }

Descrizione di una tabella

Per visualizzare i dettagli su una tabella, utilizza l'operazione DescribeTable. Devi specificare il nome della tabella. Il formato dell'output da DescribeTable è identico a quello da CreateTable. Include il timestamp di creazione della tabella, lo schema delle chiavi, le impostazioni della velocità effettiva assegnata, le dimensioni stimate e gli eventuali indici secondari presenti.

Importante

Quando si richiama DescribeTable su una tabella on demand, le unità di capacità in lettura e le unità di capacità in scrittura sono impostate su 0.

Esempio
aws dynamodb describe-table --table-name Music

La tabella è pronta per l'uso quando TableStatus cambia da CREATING ad ACTIVE.

Nota

Se si emette una richiesta DescribeTable subito dopo una richiesta CreateTable, DynamoDB potrebbe restituire un errore (ResourceNotFoundException). Questo accade perché DescribeTable utilizza una query consistente finale e i metadata della tabella potrebbero non essere disponibili in quel momento. Attendi qualche secondo e prova nuovamente la richiesta DescribeTable.

A scopo di fatturazione, i costi di archiviazione di DynamoDB includono un costo per elemento di 100 byte. Per ulteriori informazioni, consulta Prezzi di DynamoDB. Questi 100 byte extra per elemento non sono utilizzati nei calcoli delle unità di capacità o dall'operazione DescribeTable.

Aggiornamento di una tabella

L'operazione UpdateTable consente di effettuare una delle operazioni seguenti:

Esempio

L' AWS CLI esempio seguente mostra come modificare le impostazioni di throughput assegnate a una tabella.

aws dynamodb update-table --table-name Music \ --provisioned-throughput ReadCapacityUnits=20,WriteCapacityUnits=10
Nota

Quando emetti una richiesta UpdateTable, lo stato della tabella cambia da AVAILABLE a UPDATING. La tabella rimane completamente disponibile mentre lo stato è UPDATING. Al termine del processo, lo stato cambia da UPDATING ad AVAILABLE.

Esempio

L' AWS CLI esempio seguente mostra come modificare la modalità di capacità di lettura/scrittura di una tabella in modalità on-demand.

aws dynamodb update-table --table-name Music \ --billing-mode PAY_PER_REQUEST

Eliminazione di una tabella

Puoi rimuovere una tabella inutilizzata con l'operazione DeleteTable. L'operazione di eliminazione di una tabella è irreversibile.

Esempio

L' AWS CLI esempio seguente mostra come eliminare una tabella.

aws dynamodb delete-table --table-name Music

Quando emetti una richiesta DeleteTable, lo stato della tabella cambia da ACTIVE a DELETING. L'eliminazione della tabella può richiedere del tempo, in base alle risorse che utilizza (come i dati archiviati e i flussi o gli indici presenti).

A conclusione dell'operazione DeleteTable, la tabella sarà più presente in DynamoDB.

Uso della protezione da eliminazione

È possibile proteggere una tabella dall'eliminazione accidentale con la proprietà di protezione da eliminazione. L'attivazione di questa proprietà per una tabella aiuta a garantire che non venga eliminata accidentalmente durante le normali operazioni di gestione delle tabelle degli amministratori. In tal modo si contribuisce anche a prevenire le interruzioni delle normali operazioni aziendali.

Il proprietario della tabella o un amministratore autorizzato controlla la proprietà di protezione da eliminazione per ogni tabella che per impostazione predefinita è disattivata per tutte le tabelle, incluse le repliche globali e le tabelle ripristinate dai backup. Quando la protezione da eliminazione è disabilitata per una tabella, la tabella può essere eliminata da qualsiasi utente autorizzato da una politica di Identity and Access Management (IAM). Quando la protezione da eliminazione è abilitata, nessuno può eliminare la tabella.

Per modificare questa impostazione, vai alle Impostazioni aggiuntive della tabella, apri il pannello Protezione da eliminazione e seleziona Abilita la protezione da eliminazione.

La proprietà di protezione dall'eliminazione è supportata dalla console DynamoDBAPI,CLI/e. SDK AWS CloudFormationCreateTableAPISupporta la proprietà di protezione dall'eliminazione al momento della creazione della tabella e UpdateTable API supporta la modifica della proprietà di protezione dall'eliminazione per le tabelle esistenti.

Nota
  • Se un AWS account viene eliminato, tutti i dati dell'account, incluse le tabelle, vengono comunque eliminati entro 90 giorni.

  • Se DynamoDB perde l'accesso a una chiave gestita dal cliente utilizzata per crittografare una tabella, archivia comunque la tabella. L'archiviazione comporta l'esecuzione di un backup della tabella e l'eliminazione dell'originale.

Elenco dei nomi delle tabelle

L'ListTablesoperazione restituisce i nomi delle tabelle DynamoDB per l'account AWS corrente e la regione.

Esempio

L' AWS CLI esempio seguente mostra come elencare i nomi delle tabelle DynamoDB.

aws dynamodb list-tables

Descrizione delle quote di velocità di trasmissione effettiva assegnate

L'DescribeLimitsoperazione restituisce le quote di capacità di lettura e scrittura correnti per l' AWS account corrente e la regione.

Esempio

L' AWS CLI esempio seguente mostra come descrivere le quote di throughput attualmente assegnate.

aws dynamodb describe-limits

L'output mostra le quote superiori di unità di capacità di lettura e scrittura per il conto corrente AWS e la regione.

Per ulteriori informazioni sulle quote e su come richiedere un aumento delle quote, consulta Quote predefinite della velocità di trasmissione effettiva.