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à.
Vincoli in Amazon DynamoDB
Questa sezione descrive i vincoli correnti, precedentemente definiti limiti, all’interno di Amazon DynamoDB.
Argomenti
Modalità di capacità in lettura/scrittura
È possibile cambiare le tabelle dalla modalità con capacità allocata alla modalità on demand fino a quattro volte in una finestra variabile di 24 ore. È possibile passare le tabelle dalla modalità on demand alla modalità con capacità allocata in qualsiasi momento.
Per ulteriori informazioni sul passaggio dalla modalità di capacità di lettura a quella di scrittura, consulta Considerazioni sul passaggio tra modalità di capacità in DynamoDB.
Dimensioni dell'unità di capacità (per tabelle assegnate)
Una unità di capacità di lettura equivale a una lettura fortemente consistente al secondo o a due letture a consistenza finale al secondo, per elementi di dimensioni fino a 4 KB.
Una unità di capacità di scrittura equivale a una scrittura al secondo per elementi di dimensioni fino a 1 KB.
Le richieste di lettura transazionale richiedono due unità di capacità in lettura per eseguire una lettura al secondo per elementi di dimensioni fino a 4 KB.
Le richieste di scrittura transazionale richiedono due unità di capacità in scrittura per eseguire una scrittura al secondo per elementi di dimensioni fino a 1 KB.
Dimensioni dell'unità di richiesta (per tabelle on demand)
Una unità di richiesta di lettura equivale a una elevata consistenza di lettura al secondo o a due letture a coerenza finale al secondo, per elementi di dimensioni fino a 4 KB.
Un'unità di richiesta di scrittura equivale a una scrittura al secondo per elementi di dimensioni fino a 1 KB.
Le richieste di lettura transazionali richiedono due unità di richiesta di lettura al secondo per eseguire una lettura per elementi fino a 4 KB.
Le richieste di scrittura transazionale richiedono due unità di richiesta di scrittura al secondo per eseguire una scrittura per elementi fino a 1 KB.
Indici secondari
Attributi di indice secondario proiettati per tabella
Puoi proiettare un massimo di 100 attributi in tutti gli indici secondari locali e globali di una tabella. Tale approccio si applica solo agli attributi proiettati specificati dall'utente.
In un'operazione CreateTable, se si specifica un ProjectionType di INCLUDE, il numero totale degli attributi specificati in NonKeyAttributes, sommato tra tutti gli indici secondari non dovrà essere superiore a 100. Se proietti lo stesso nome di attributo in due indici diversi, questo sarà considerato come parte di due attributi distinti quando si dovrà determinare il totale.
Questo limite non si applica agli indici secondari il cui valore ProjectionType è KEYS_ONLY o ALL.
Chiavi di partizione e chiavi di ordinamento
Lunghezza della chiave di partizione
La lunghezza minima del valore di una chiave di partizione è di 1 byte. La lunghezza massima è 2048 byte.
Valori della chiave di partizione
Non vi è un limite pratico relativo al numero dei valori di chiavi di partizione distinte, sia per le tabelle che per gli indici secondari.
Lunghezza della chiave di ordinamento
La lunghezza minima del valore di una chiave di ordinamento è di 1 byte. La lunghezza massima è 1024 byte.
Valori della chiave di ordinamento
In generale, non vi è un limite pratico relativo al numero dei valori delle chiavi di ordinamento distinte per ogni valore della chiave di partizione.
Fanno eccezione le tabelle con indici secondari. Una raccolta di elementi è l'insieme di elementi che hanno lo stesso valore dell'attributo della chiave di partizione. In un indice secondario globale la raccolta di elementi è indipendente dalla tabella di base (e può avere un attributo chiave di partizione diverso), ma in un indice secondario locale la vista indicizzata è co-locata nella stessa partizione dell'elemento nella tabella e condivide lo stesso attributo della chiave di partizione. Di conseguenza, quando una tabella ha uno o più LSI, la raccolta di elementi non può essere distribuita su più partizioni.
Per una tabella con uno o più indici secondari locali (LSI), le raccolte di elementi non possono avere dimensioni superiori a 10 GB. Ciò include tutti gli elementi della tabella di base e tutte le visualizzazioni LSI previste che hanno lo stesso valore dell'attributo della chiave di partizione. La dimensione massima di una partizione è di 10 GB. Per informazioni più dettagliate, consulta Limite delle dimensioni delle raccolte di elementi.
Regole di denominazione
Nomi di tabelle e nomi di indici secondari
I nomi delle tabelle e degli indici secondari devono contenere un minimo di 3 caratteri e un massimo di 255. Di seguito sono riportati i caratteri consentiti:
-
A-Z -
a-z -
0-9 -
_(carattere di sottolineatura) -
-(trattino) -
.(punto)
Nomi di attributi
In generale, il nome di un attributo deve contenere almeno un carattere, ma non deve superare i 64 KB.
Di seguito sono elencate le eccezioni. Questi nomi di attributo non devono superare i 255 caratteri:
-
Nomi delle chiavi di partizione degli indici secondari.
-
Nomi delle chiavi di ordinamento degli indici secondari.
-
I nomi degli attributi proiettati specificati dall'utente (applicabile solo agli indici secondari locali). In un'operazione
CreateTable, se specifichi il valoreINCLUDEperProjectionType, i nomi degli attributi del parametroNonKeyAttributessaranno soggetti a restrizioni di lunghezza. I tipi di proiezioneKEYS_ONLYeALLnon sono interessati.
Questi nomi di attributo devono essere codificati tramite UTF-8, mentre la dimensione totale di ogni nome (dopo la codifica) non può superare i 255 byte.
Tipi di dati
Stringa
La lunghezza di una stringa è vincolata dal limite massimo della dimensione dell'elemento, che è di 400 KB.
Le stringhe sono Unicode con codifica binaria UTF-8. Poiché UTF-8 è una codifica a larghezza variabile, DynamoDB determina la lunghezza di una stringa utilizzando i byte UTF-8.
Numero
Un numero può avere fino a 38 cifre di precisione e può essere positivo, negativo o zero.
-
Intervallo positivo: da
1E-130a9.9999999999999999999999999999999999999E+125 -
Intervallo negativo: da
-9.9999999999999999999999999999999999999E+125a-1E-130
DynamoDB utilizza stringhe JSON per rappresentare dati di tipo Number nelle richieste e nelle risposte. Per ulteriori informazioni, consulta API DynamoDB di basso livello.
Se la precisione del numero è importante, è necessario passare i numeri a DynamoDB utilizzando le stringhe convertite da un tipo di numero.
Binario
La lunghezza di un dato Binary è vincolata dal limite massimo della dimensione dell'elemento, che è di 400 KB.
Le applicazioni che funzionano con gli attributi di tipo Binary devono codificare i dati nel formato Base64 prima di inviarli a DynamoDB. Quando i dati vengono ricevuti, DynamoDB li decodifica in un array di byte senza firma e utilizza questo array come lunghezza dell'attributo.
Item
Dimensione degli elementi
La dimensione massima di un elemento in DynamoDB è 400 KB, che include sia la lunghezza binaria del nome dell'attributo (lunghezza UTF-8) che le lunghezze dei valori dell'attributo (ancora la lunghezza binaria). Il nome attributo viene conteggiato per il limite di dimensione.
Ad esempio, considera un elemento con due attributi: un attributo denominato "shirt-color" con valore "R" e un attributo denominato "shirt-size" con valore "M". La dimensione totale di quell'elemento è di 23 byte.
Dimensione degli elementi per le tabelle con indici secondari locali
Per ogni indice secondario locale di una tabella, vi è un limite di 400 KB sul totale dei seguenti elementi:
-
La dimensione dei dati di un elemento nella tabella;
-
La dimensione delle voci corrispondenti, inclusi i valori delle chiavi e gli attributi proiettati, in tutti gli indici secondari locali.
Attributes
Coppie nome/valore degli attributi per elemento
La dimensione cumulativa degli attributi per elemento deve rientrare nella dimensione massima dell'elemento di DynamoDB (400 KB).
Numero di valori in un elenco, una mappa o un insieme
Non vi è alcun limite al numero di valori in un attributo List, Map o Set purché l'elemento contenente i valori rientri nel limite di dimensione dell'elemento di 400 KB.
Valori di attributi
Sono consentiti valori degli attributi String e Binary vuoti, se l'attributo non viene utilizzato come attributo chiave per una tabella o un indice. I valori String e Binary vuoti sono consentiti all'interno dei tipi elenco, lista e mappa. Il valore di attributo non può essere un set vuoto (String Set, Number Set o Binary Set). Tuttavia, sono consentiti elenchi e mappe vuoti.
Profondità degli attributi nidificati
DynamoDB supporta gli attributi nidificati fino a un massimo di 32 livelli di profondità.
Parametri di espressione
I parametri di espressione includono ProjectionExpression, ConditionExpression, UpdateExpression e FilterExpression.
Lunghezze
La lunghezza massima di qualsiasi stringa di espressione è di 4 KB. Ad esempio, la dimensione di ConditionExpression a=b è di 3 byte.
La lunghezza massima di qualsiasi nome di attributo di espressione individuale o di un valore attributo di espressione è di 255 byte. Ad esempio, #name è 5 byte; :val è 4 byte.
La lunghezza massima di tutte le variabili di sostituzione in un'espressione è di 2 MB. Questo valore rappresenta la somma tra la lunghezza di tutti i ExpressionAttributeNames e ExpressionAttributeValues.
Operatori e operandi
Il numero massimo degli operatori e delle funzioni consentite in un UpdateExpression è di 300. Ad esempio, UpdateExpression SET a = :val1 + :val2 + :val3 contiene due operatori "+".
Il numero massimo di operandi per il comparatore IN è 100
Parole riservate
DynamoDB non impedisce di utilizzare nomi in conflitto con le parole riservate. (Per un elenco completo, consulta Parole riservate in DynamoDB).
Tuttavia, se utilizzi una parola prenotata in un parametro di espressione, devi specificare anche ExpressionAttributeNames. Per ulteriori informazioni, consulta Nomi di attributi di espressione (alias) in DynamoDB.
Transazioni di DynamoDB
Le operazioni API transazionali di DynamoDB hanno i seguenti vincoli:
-
Una transazione non può contenere più di 100 elementi univoci.
-
Una transazione non può contenere più di 4 MB di dati.
-
Una transazione non può avere due operazioni che agiscono sullo stesso elemento nella stessa tabella. Ad esempio, non puoi utilizzare sia
ConditionCheckcheUpdateper lo stesso elemento in una transazione. -
Una transazione non può operare su tabelle in più di un account o regione AWS.
-
Le operazioni transazionali forniscono garanzie di atomicità, consistenza, isolamento e durabilità (Atomicity, Consistency, Isolation and Durability, ACID) solo all'interno della regione AWS in cui è stata effettuata originariamente l'operazione di scrittura. Le transazioni non sono supportate tra le regioni nelle tabelle globali. Ad esempio, supponi di avere una tabella globale con repliche nelle Regioni Stati Uniti orientali (Ohio) e Stati Uniti occidentali (Oregon) e di eseguire un'operazione
TransactWriteItemsnella Regione Stati Uniti orientali (Virginia settentrionale). In questo caso, puoi osservare transazioni parzialmente completate nella Regione degli Stati Uniti occidentali (Oregon) mentre le modifiche vengono replicate. Le modifiche vengono replicate in altre Regioni solo dopo essere state confermate nella Regione di origine.
DynamoDB Streams
Lettori simultanei di una partizione in DynamoDB Streams
Per le tabelle di una regione singola che non sono tabelle globali, è possibile progettare contemporaneamente fino a due processi da leggere dallo stesso shard DynamoDB Streams. Il superamento di questo limite comporta una limitazione delle richieste. Per le tabelle globali consigliamo di limitare il numero di lettori simultanei a uno per evitare richieste di limitazione della larghezza di banda della rete.
DynamoDB Accelerator (DAX)
Disponibilità nelle regioni AWS
Per un elenco di regioni AWS in cui è disponibile DAX, consulta Acceleratore DynamoDB (DAX) in Riferimenti generali di AWS.
Nodi
Un cluster DAX è costituito esattamente da un nodo primario e un numero di nodi di replica di lettura compreso tra 0 e 10.
Il numero totale di nodi (per account AWS) non può essere superiore a 50 in una singola regione AWS.
Gruppi di parametri
Puoi creare fino a 20 gruppi di parametri DAX per regione.
Gruppi di sottoreti
Puoi creare fino a 50 gruppi di sottoreti DAX per regione.
All'interno di un gruppo di sottoreti, puoi definire fino a un massimo di 20 sottoreti.
Importante
Un cluster DAX supporta un massimo di 500 tabelle DynamoDB. Una volta superate le 500 tabelle DynamoDB, il cluster potrebbe subire un peggioramento della disponibilità e delle prestazioni.
Vincoli specifici delle API
CreateTable/UpdateTable/DeleteTable/PutResourcePolicy/DeleteResourcePolicy-
In generale, sono possibili fino a 500 richieste CreateTable, UpdateTable, DeleteTable, PutResourcePolicy e DeleteResourcePolicy in esecuzione contemporaneamente in qualsiasi combinazione. Di conseguenza, il numero totale delle tabelle nello stato
CREATING,UPDATINGoDELETINGnon può essere superiore a 500.È possibile inviare fino a 2.500 richieste al secondo di richieste API del piano di controllo (control-plane) mutabili (
CreateTable,DeleteTable,UpdateTable,PutResourcePolicyeDeleteResourcePolicy) in qualsiasi combinazione tra un gruppo di tabelle. Tuttavia, le richiestePutResourcePolicyeDeleteResourcePolicyhanno limiti individuali inferiori. Per ulteriori informazioni, consulta i seguenti dettagli sulle quote perPutResourcePolicyeDeleteResourcePolicy.Le richieste
CreateTableePutResourcePolicyche includono una policy basata su risorse verranno conteggiate come due richieste aggiuntive per ogni KB della policy. Ad esempio, una richiestaCreateTableoPutResourcePolicycon un criterio di dimensione 5 KB verrà conteggiata come 11 richieste: 1 per la richiestaCreateTablee 10 per la policy basata su risorse (2 x 5 KB). Analogamente, una policy di dimensioni 20 KB conterà come 41 richieste: 1 per la richiestaCreateTablee 40 per la policy basata su risorse (2 x 20 KB).PutResourcePolicy-
È possibile inviare fino a 25 richieste API
PutResourcePolicyal secondo su un gruppo di tabelle. Dopo una richiesta riuscita per una singola tabella, non vengono supportate nuovePutResourcePolicyrichieste per i successivi 15 secondi.La dimensione massima supportata per un documento di policy basata su risorse è di 20 KB. DynamoDB non calcola gli spazi vuoti nella determinazione delle dimensioni di una policy rispetto a tale limite.
DeleteResourcePolicy-
È possibile inviare fino a 50 richieste API
DeleteResourcePolicyal secondo su un gruppo di tabelle. Dopo una richiestaPutResourcePolicyriuscita per una singola tabella, non vengono supportate nuove richiesteDeleteResourcePolicyper i successivi 15 secondi.
BatchGetItem-
Una singola operazione
BatchGetItempuò recuperare un massimo di 100 elementi. La dimensione totale di tutti gli elementi recuperati non può essere superiore a 16 MB.
BatchWriteItem-
Una singola operazione
BatchWriteItempuò contenere fino a 25 richiestePutItemoDeleteItem. La dimensione totale di tutti gli elementi scritti non può essere superiore a 16 MB.
DescribeStream-
È possibile chiamare
DescribeStreama una frequenza massima di 10 volte al secondo.
DescribeTableReplicaAutoScaling-
DescribeTableReplicaAutoScalingmetodo supporta solo 10 richieste al secondo.
DescribeLimits-
DescribeLimitsdovrebbe essere chiamato solo periodicamente. È possibile che si verifichino errori di limitazione se lo chiami più di una volta al minuto.
DescribeContributorInsights/ListContributorInsights/UpdateContributorInsights-
DescribeContributorInsights,ListContributorInsightseUpdateContributorInsightsdovrebbero essere richiamate solo periodicamente. DynamoDB supporta un massimo di cinque richieste al secondo per ciascuna di queste API.
DescribeTable/ListTables/GetResourcePolicy-
È possibile inviare fino a 2.500 richieste al secondo di richieste di una combinazione di richieste API del piano di controllo (control-plane) di sola lettura (
DescribeTable,ListTableseGetResourcePolicy). L’APIGetResourcePolicyha un limite individuale inferiore di 100 richieste al secondo.
DescribeTimeToLive-
L’operazione
DescribeTimeToLiveè sottoposta a limitazione (della larghezza di banda della rete) a 10 unità di richieste di lettura al secondo. Se si supera questo limite, DynamoDB restituisce un erroreThrottlingException.
Query-
Il set di risultati di un'operazione
Queryè limitato a 1 MB per chiamata. Puoi utilizzareLastEvaluatedKeydalla risposta alle query per recuperare più risultati.
Scan-
Il set di risultati di un'operazione
Scanè limitato a 1 MB per chiamata. Puoi utilizzareLastEvaluatedKeydalla risposta alle verifiche per recuperare più risultati.
UpdateKinesisStreamingDestination-
Quando si eseguono operazioni
UpdateKinesisStreamingDestination, è possibile impostareApproximateCreationDateTimePrecisionsu un nuovo valore per un massimo di 3 volte in un periodo di 24 ore.
UpdateTableReplicaAutoScaling-
Il metodo
UpdateTableReplicaAutoScalingsupporta solo 10 richieste al secondo.
UpdateTableTimeToLive-
Il metodo
UpdateTableTimeToLivesupporta solo una richiesta per tabella specificata all'ora per abilitare o disabilitareTime to Live (TTL). Questa modifica potrebbe richiedere fino a un'ora per l'elaborazione completa. Qualsiasi ulteriore chiamataUpdateTimeToLivealla stessa tabella durante questo lasso di tempo di un'ora ha come risultato una ValidationException.
Crittografia a riposo per DynamoDB
Puoi passare da una Chiave di proprietà di AWS, a una Chiave gestita da AWS, a una chiave gestita dal cliente per un massimo di quattro volte, in qualunque momento durante un periodo di 24 ore, dal momento della creazione della tabella. E se non vi sono state modifiche nelle ultime 6 ore, sarà consentita un'ulteriore modifica. Questo porta il numero massimo di modifiche in un giorno a 8 (quattro modifiche nelle prime sei ore e una modifica per ciascuna delle successive finestre di sei ore in un giorno).
Puoi cambiare le chiavi di crittografia per utilizzare una Chiave di proprietà di AWS ogni volta che lo ritieni necessario, anche se la quota di cui sopra è stata esaurita.
A meno che tu non ne richieda una quantità maggiore, le quote sono le seguenti. Per richiedere un aumento delle quote di servizio, consulta https://aws.amazon.com/support