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.
Argomenti
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 tabellaPeople
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) eRANGE
(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 DynamoDBDescribeTable
.
Aggiornamento di una tabella
L'operazione UpdateTable
consente di effettuare una delle operazioni seguenti:
-
Modificare le impostazioni di throughput assegnate di una tabella (per tabelle con modalità assegnata).
-
Cambiare la modalità di capacità in lettura/scrittura della tabella.
-
Utilizza gli indici secondari globali nella tabella (consulta Utilizzo degli indici secondari globali in DynamoDB).
-
Abilitare o disabilitare DynamoDB Streams sulla tabella (vedere Acquisizione dei dati di modifica per DynamoDB Streams).
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 CloudFormationCreateTable
APISupporta 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'ListTables
operazione 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'DescribeLimits
operazione 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.