Cuotas de tabla, servicio y cuenta en Amazon DynamoDB
En esta sección se describen las cuotas actuales (anteriormente se denominaban límites) de Amazon DynamoDB. Cada una de las cuotas se aplica a una sola región, a no ser que se especifique otra cosa.
Temas
- Modo de capacidad de lectura/escritura y rendimiento
- Tablas
- Tablas globales
- Índices secundarios
- Claves de partición y claves de clasificación
- Reglas de nomenclatura
- Tipos de datos
- Elementos
- Atributos
- Parámetros de expresión
- Transacciones de DynamoDB
- DynamoDB Streams
- DynamoDB Accelerator (DAX)
- Límites específicos de API
- Cifrado en reposo en DynamoDB
- Exportar tablas a Amazon S3
Modo de capacidad de lectura/escritura y rendimiento
Puede cambiar entre los modos de capacidad de lectura/escritura una vez cada 24 horas.
Tamaños de las unidades de capacidad (para las tablas aprovisionadas)
Una unidad de capacidad de lectura equivale a una lectura de consistencia alta por segundo, o bien a dos lecturas eventualmente consistentes por segundo, para elementos con un tamaño de hasta 4 KB.
Una unidad de capacidad de escritura equivale a una escritura por segundo para los elementos con un tamaño de hasta 1 KB.
Las solicitudes de lectura transaccionales requieren dos unidades de capacidad de lectura por segundo respecto a los elementos de hasta 4 KB.
Las solicitudes de escritura transaccionales requieren dos unidades de capacidad de escritura para realizar una escritura por segundo respecto a los elementos de hasta 1 KB.
Tamaños de las unidades de solicitud (para las tablas bajo demanda)
Una unidad de solicitud de lectura equivale a una lectura de consistencia alta, o bien a dos lecturas consistentes finales, para elementos con un tamaño de hasta 4 KB.
Una unidad de solicitud de escritura equivale a una escritura para los elementos con un tamaño de hasta 1 KB.
Las solicitudes de lectura transaccionales requieren dos unidades de solicitud de lectura para realizar una lectura respecto a los elementos de hasta 4 KB.
Las solicitudes de escritura transaccionales requieren dos unidades de solicitud de escritura para realizar una escritura respecto a los elementos de hasta 1 KB.
Cuotas de rendimiento predeterminadas
AWS aplica unas cuotas predeterminadas al rendimiento que su cuenta puede aprovisionar y consumir en una región.
El rendimiento de lectura en el nivel de cuenta y las cuotas de rendimiento de escritura en el nivel de cuenta se aplican en el nivel de cuenta. Estas cuotas en el nivel de cuenta se aplican a la suma de la capacidad de rendimiento aprovisionada para todas las tablas de cuentas e índices secundarios globales de una región determinada. Todo el rendimiento disponible para la cuenta se puede aprovisionar para una sola tabla o para varias tablas. Estas cuotas solo se aplican a las tablas que utilizan el modo de capacidad aprovisionada.
El rendimiento de lectura en el nivel de tabal y las cuotas de rendimiento de escritura en el nivel de tabla se aplican en el nivel de tabla. Estas cuotas en el nivel de tabla se aplican a las tablas que utilizan el modo de capacidad aprovisionada así como a las tablas que utilizan el modo de capacidad bajo demanda. Estas cuotas en el nivel de tabla se aplican a la suma del rendimiento de una tabla y del rendimiento de todos sus índices secundarios globales.
A continuación, se muestran las cuotas de rendimiento que se aplican en su cuenta, de forma predeterminada.
Bajo demanda | Aprovisionado | Ajustable | |
---|---|---|---|
|
|
|
Sí |
|
|
|
Sí |
|
|
|
Sí |
Puede utilizar la consola de Service Quotas
Para las cuotas de rendimiento en el nivel de cuenta, puede utilizar la consola de Service QuotasAccountProvisionedReadCapacityUnits
y AccountProvisionedWriteCapacityUnits
. Para obtener más información sobre las métricas de uso, consulte Métricas de uso de AWS.
Aumento o reducción del rendimiento (para las tablas aprovisionadas)
Aumento del rendimiento aprovisionado
Puede aumentar el valor de ReadCapacityUnits
o WriteCapacityUnits
con tanta frecuencia como sea preciso; para ello, puede usar la AWS Management Console o la operación UpdateTable
. En una sola llamada, puede aumentar el rendimiento aprovisionado de una tabla, de cualquier índice secundario global de esa tabla o de cualquier combinación de ellos. La nueva configuración no surtirá efecto hasta que se haya completado la operación UpdateTable
.
No puede superar las cuotas por cuenta al agregar capacidad aprovisionada. DynamoDB no permite aumentar la capacidad aprovisionada con gran rapidez. Aparte de estas restricciones, puede aumentar la capacidad aprovisionada de las tablas tanto como lo necesite. Para obtener más información sobre las cuotas por cuenta, consulte la sección anterior, Cuotas de rendimiento predeterminadas.
Reducción de rendimiento aprovisionado
En cada tabla e índice secundario global de una operación UpdateTable
, puede reducir el valor de ReadCapacityUnits
, de WriteCapacityUnits
o de ambas opciones. La nueva configuración no surtirá efecto hasta que se haya completado la operación UpdateTable
.
Existe una cuota predeterminada del número de reducciones de capacidad aprovisionada que puede realizar en su cuenta por día. Un día se define según la hora universal coordinada (UTC). En un día determinado, puede empezar realizando hasta cuatro disminuciones en una hora, siempre que no haya realizado todavía ninguna otra disminución durante ese día. Posteriormente, puede realizar una disminución adicional por hora siempre que no haya habido disminuciones en la hora anterior. Esto efectivamente aumenta el número máximo de reducciones a 27 al día (4 reducciones en la primera hora y 1 reducción en cada hora posterior durante un día).
Puede utilizar la consola de Service Quotas
Los límites de reducción de tablas e índices secundarios globales no están asociados, lo que significa que los índices secundarios globales de una determinada tabla tienen sus propios límites de reducción. Sin embargo, si una solicitud reduce el rendimiento de una tabla y un índice secundario global, se rechazará si se supera alguno de los límites actuales. Las solicitudes no se procesan parcialmente.
ejemplo
En las primeras 4 horas de un día, una tabla con un índice secundario global puede modificarse de la siguiente manera:
-
Reduzca los valores
WriteCapacityUnits
oReadCapacityUnits
(o ambos) cuatro veces. -
Reduzca los valores
WriteCapacityUnits
oReadCapacityUnits
(o ambos) del índice secundario global cuatro veces.
Al final de ese mismo día, el rendimiento de la tabla y del índice secundario global se podría reducir un total de 27 veces cada uno.
Tablas
Tamaño de las tablas
No existe ningún límite práctico del tamaño de una tabla. Las tablas no presentan restricciones en cuanto al número de elementos o de bytes.
Número máximo de tablas por cuenta y región
Para cualquier cuenta de AWS, existe una cuota inicial de 2500 tablas por región de AWS.
Puede utilizar la consola de Service Quotas
Con la consola de Service QuotasTableCount
. Para obtener más información sobre las métricas de uso, consulte Métricas de uso de AWS.
Tablas globales
AWS establece algunas cuotas predeterminadas en el rendimiento que puede aprovisionar o utilizar al usar tablas globales.
Bajo demanda | Aprovisionado | |
---|---|---|
|
|
|
|
|
|
Si va a agregar una réplica para una tabla que está configurada para usar más de 40 000 unidades de capacidad de escritura (WCU), debe solicitar un aumento de la cuota de servicio para la cuota de WCU de réplica de adición. Para solicitar un aumento de la cuota de servicio, consulte https://aws.amazon.com/support
Si va a agregar una réplica o réplicas a una región de destino en un plazo de 24 horas con un total combinado superior a 10 TB, debe solicitar un aumento de la cuota de servicio para la cuota de reposición de datos de réplica agregada.
Las operaciones transaccionales proporcionan garantías de atomicidad, uniformidad, aislamiento y durabilidad (ACID, por sus siglas en inglés) solo en la región de AWS en la que se crea la escritura originalmente. No se admiten las transacciones entre regiones en las tablas globales. Por ejemplo, supongamos que tiene una tabla global con réplicas en las regiones EE. UU. Este (Ohio) y EE. UU. Oeste (Oregón) y realiza una operación TransactWriteItems en la región EE. UU. Este (Norte de Virginia). En este caso, puede observar transacciones parcialmente completadas en la región EE. UU. Oeste (Oregón) a medida que se replican los cambios. Los cambios se replican en otras regiones solo cuando se han confirmado en la región de origen.
Índices secundarios
Índices secundarios por tabla
Puede definir un máximo de 5 índices secundarios locales.
Existe una cuota predeterminada de 20 índices secundarios globales por tabla. Puede utilizar la consola de Service Quotas
Puede crear o eliminar solo un índice secundario global por operación UpdateTable
.
Atributos de índice secundario proyectados por tabla
Puede proyectar un máximo de 100 atributos en todos los índices secundarios locales y globales de una tabla. Esto solo se aplica a los atributos proyectados especificados por el usuario.
En una operación CreateTable
, si especifica ProjectionType
como valor de INCLUDE
, el recuento total de atributos especificados en NonKeyAttributes
y sumados para todos los índices secundarios, no deberá superar el valor de 100. Si se proyecta el mismo nombre de atributo en dos índices diferentes, esto cuenta como dos atributos distintos a la hora de determinar la cantidad total.
Este límite no se aplica a los índices secundarios cuyo valor de ProjectionType
sea KEYS_ONLY
o ALL
.
Claves de partición y claves de clasificación
Longitud de la clave de partición
La longitud mínima de un valor de clave de partición es de 1 byte. La longitud máxima es de 2048 bytes.
Valores de la clave de partición
No existe ningún límite práctico respecto al número de valores diferentes de clave de partición, ni para tablas ni para los índices secundarios.
Longitud de la clave de clasificación
La longitud mínima de un valor de clave de ordenación es de 1 byte. La longitud máxima es de 1024 bytes.
Valores de la clave de clasificación
En general, no existe ningún límite práctico respecto al número de valores diferentes de clave de ordenación por cada valor de clave de partición.
Hay una excepción en las tablas que utilizan índices secundarios. Con un índice secundario local, se limita el tamaño de las colecciones de elementos: por cada valor de clave de partición diferente, los tamaños totales de todos los elementos de la tabla y de los índices no puede superar el tamaño de 10 GB. Esto podría restringir el número de claves de ordenación por cada valor de clave de partición. Para obtener más información, consulte Límite del tamaño de una colección de elementos .
Reglas de nomenclatura
Nombres de tabla y nombres del índice secundario
Los nombres de las tablas y de los índices secundarios deben tener 3 caracteres como mínimo y 255 como máximo. A continuación se muestran los caracteres permitidos:
-
A-Z
-
a-z
-
0-9
-
_
(guion bajo) -
-
(guion) -
.
(punto)
Nombres de los atributos
En general, un nombre de atributo debe tener un carácter como mínimo y su tamaño máximo no debe superar los 64 KB.
A continuación se muestran las excepciones. Los siguientes nombres de atributo no pueden tener más de 255 caracteres:
-
Los nombres de las claves de partición de índice secundario.
-
Los nombres de las claves de ordenación de índices secundarios.
-
Los nombres de los atributos proyectados especificados por el usuario (aplicables solo a índices secundarios locales). En una operación
CreateTable
, si especifica el valorProjectionType
paraINCLUDE
, los nombres de los atributos del parámetroNonKeyAttributes
estarán sujetos a restricciones de longitud. Los tipos de proyeccionesKEYS_ONLY
yALL
no se ven afectados.
Estos nombres de atributos deben codificarse mediante UTF-8 y el tamaño total de cada nombre (después de la codificación) no puede superar los 255 bytes.
Tipos de datos
Cadena
La longitud de un valor de tipo String está limitada en función del tamaño de elemento máximo de 400 KB.
Los valores de tipo String son Unicode con codificación binaria UTF-8. Dado que UTF-8 es una codificación de ancho variable, DynamoDB determina los bytes UTF-8 de un valor de tipo String para determinar su longitud.
Número
Un valor de tipo Number puede tener hasta 38 dígitos de precisión y puede ser positivo, negativo o cero.
-
Rango de valores positivos: de
1E-130
a9.9999999999999999999999999999999999999E+125
-
Rango de valores negativos: de
-9.9999999999999999999999999999999999999E+125
a-1E-130
DynamoDB utiliza cadenas JSON para representar los datos de tipo Number en las solicitudes y las respuestas. Para obtener más información, consulte API de bajo nivel de DynamoDB .
Si la precisión del número es importante, debe pasar los números a DynamoDB utilizando cadenas que se conviertan a partir de un tipo de número.
Binario
La longitud de un valor de tipo Binary está limitada en función del tamaño de elemento máximo de 400 KB.
Las aplicaciones que utilizan atributos de tipo Binary deben codificar los datos en formato Base64 antes de enviárselos a DynamoDB. Al recibirlos, DynamoDB decodifica los datos y los convierte a matrices de bytes sin signo; a continuación, utiliza ese resultado como longitud del atributo.
Elementos
Tamaño del elemento
El tamaño máximo de un elemento en DynamoDB es de 400 KB, que incluye tanto la longitud en formato binario de los nombres de los atributos (longitud en UTF-8) y las longitudes de los valores de los atributos (también en formato binario). El nombre de los atributos se tiene en cuenta al calcular el límite de tamaño.
Por ejemplo, tomemos un elemento con dos atributos: un atributo denominado “shirt-color” cuyo valor es “R” y otro denominado “shirt-size” cuyo valor es “M”. El tamaño total de ese elemento es de 23 bytes.
Tamaño del elemento para las tablas con índices secundarios locales
Para cada índice secundario local de una tabla, existe un límite de 400 KB que se aplica al total de los siguientes tamaños:
-
El tamaño de los datos de un elemento de la tabla.
-
El tamaño de la entrada del índice secundario local correspondiente a dicho elemento, incluidos sus valores de clave y atributos proyectados.
Atributos
Pares de nombre-valor de los atributos por elemento
El tamaño acumulado de los atributos por elemento debe ajustarse al tamaño máximo de elemento de DynamoDB (400 KB).
Número de valores de una lista, un mapa o un conjunto
No existe ningún límite respecto al número de valores de una lista, un mapa o un conjunto, siempre y cuando el elemento que contenga los valores se ajuste al límite de tamaño de elemento de 400 KB.
Valores de los atributos
Se pueden emplear valores de atributo binarios o de cadena vacíos si el atributo no se utiliza como atributo de clave en una tabla o índice. En los conjuntos, listas y mapas, se admiten valores binarios y de cadena vacíos. El valor de un atributo no puede ser un conjunto vacío (conjunto de cadenas, conjunto de números o conjunto binario). Sin embargo, sí se admiten valores de tipo lista o mapa vacíos.
Profundidad de los atributos anidados
DynamoDB admite atributos anidados hasta un máximo de 32 niveles de profundidad.
Parámetros de expresión
Los parámetros de expresión incluyen ProjectionExpression
, ConditionExpression
, UpdateExpression
y FilterExpression
.
Longitudes
La longitud máxima de cualquier cadena de expresión es 4 KB. Por ejemplo, el tamaño de ConditionExpression
a=b
es de 3 bytes.
La longitud máxima de cualquier nombre de atributo de expresión individual o valor de atributo de expresión es de 255 bytes. Por ejemplo, en el caso de #name
, es de 5 bytes, mientras que en el de :val
, es de 4.
La longitud máxima de todas las variables de sustitución de una expresión es de 2 MB. Este valor representa la suma de las longitudes de todos los ExpressionAttributeNames
y ExpressionAttributeValues
.
Operadores y operandos
El número máximo de operadores o funciones que se admiten en una UpdateExpression
es de 300. Por ejemplo, UpdateExpression SET a = :val1 + :val2 + :val3
contiene dos operadores “+
”.
La cantidad máxima de operandos del comparador IN
es de 100.
Palabras reservadas
DynamoDB no impide utilizar nombres que entran en conflicto con las palabras reservadas. Para ver una lista completa, consulte Palabras reservadas en DynamoDB.)
Sin embargo, si utiliza una palabra reservada en un parámetro de expresión, también debe especificar ExpressionAttributeNames
. Para obtener más información, consulte Nombres de atributos de expresión en DynamoDB .
Transacciones de DynamoDB
Las operaciones de la API transaccionales de DynamoDB presentan las siguientes restricciones:
-
Una transacción no puede contener más de 25 elementos únicos.
-
Una transacción no puede contener más de 4 MB de datos.
-
No se pueden aplicar dos acciones de una transacción al mismo elemento de la misma tabla. Por ejemplo, no se puede usar
ConditionCheck
yUpdate
para el mismo elemento de una transacción. -
Una transacción no puede operar en tablas que se encuentren en más de una cuenta o región de AWS.
-
Las operaciones transaccionales proporcionan garantías de atomicidad, uniformidad, aislamiento y durabilidad (ACID, por sus siglas en inglés) solo en la región de AWS en la que se crea la escritura originalmente. No se admiten las transacciones entre regiones en las tablas globales. Por ejemplo, supongamos que tiene una tabla global con réplicas en las regiones EE. UU. Este (Ohio) y EE. UU. Oeste (Oregón) y realiza una operación
TransactWriteItems
en la región EE. UU. Este (Norte de Virginia). En este caso, puede observar transacciones parcialmente completadas en la región EE. UU. Oeste (Oregón) a medida que se replican los cambios. Los cambios se replican en otras regiones solo cuando se han confirmado en la región de origen.
DynamoDB Streams
Lectores simultáneos de una partición en DynamoDB Streams
En el caso de las tablas de una sola región que no sean tablas globales, puede diseñar hasta dos procesos para leer desde la misma partición de DynamoDB Streams al mismo tiempo. Si excede este límite, puede producirse una limitación controlada de las solicitudes. En el caso de las tablas globales, le recomendamos que limite el número de lectores simultáneos a uno para evitar la limitación de solicitudes.
Capacidad de escritura máxima de una tabla con DynamoDB Streams habilitado
AWS establece algunas cuotas predeterminadas respecto a la capacidad de escritura de las tablas de DynamoDB que tienen habilitados flujos de DynamoDB Streams. Estas cuotas predeterminadas solo se aplican a tablas en el modo de capacidad de lectura o escritura aprovisionada. Las siguientes son las cuotas de rendimiento que se aplican a su cuenta de forma predeterminada.
-
Regiones: EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Norte de California), EE. UU. Oeste (Oregón), América del Sur (São Paulo), Europa (Fráncfort), Europa (Irlanda), Asia-Pacífico (Tokio), Asia-Pacífico (Seúl), Asia-Pacífico (Singapur), Asia-Pacífico (Sídney), China (Pekín)
-
Por tabla: 40 000 unidades de capacidad de escritura
-
-
Todas las demás regiones:
-
Por tabla: 10 000 unidades de capacidad de escritura
-
Puede utilizar la consola de Service Quotas
Las cuotas de rendimiento aprovisionadas también se aplican a las tablas de DynamoDB que tienen habilitados flujos de DynamoDB Streams. Cuando solicite un aumento de cuota en la capacidad de escritura para una tabla con Streams activado, asegúrese de que también solicita un aumento de la capacidad de rendimiento aprovisionada para esta tabla. Para obtener más información, consulte Cuotas de rendimiento predeterminadas. También se aplican otras cuotas cuando se procesa DynamoDB Streams de mayor rendimiento. Para obtener más información, consulte la guía de referencia de la API de Amazon DynamoDB Streams.
DynamoDB Accelerator (DAX)
Disponibilidad de la región de AWS
Para obtener una lista de las regiones de AWS en las que DAX está disponible, consulte DynamoDB Accelerator (DAX)en la Referencia general de AWS.
Nodos
Un clúster de DAX consta exactamente de un nodo primario y entre cero y nueve nodos de réplica de lectura.
El número total de nodos (por cuenta de AWS) no puede superar los 50 en una misma región de AWS.
Grupos de parámetros
Puede crear hasta 20 grupos de parámetros de DAX por región.
Grupos de subredes
Puede crear hasta 50 grupos de subredes de DAX por región.
Dentro de un grupo de subredes, puede definir hasta 20 subredes.
Límites específicos de API
CreateTable
/UpdateTable
/DeleteTable
-
En general, puede haber hasta 500 solicitudes
CreateTable
,UpdateTable
yDeleteTable
en ejecución simultáneamente en cualquier combinación. Por consiguiente, el número total de tablas que se encuentren en estadoCREATING
,UPDATING
oDELETING
no puede ser mayor que 500.Puede utilizar la consola de Service Quotas
, la API de AWS y laCLI de AWS para ver los valores de cuota predeterminados y aplicados para las operaciones simultáneas del plano de control, y solicitar aumentos de cuota, cuando sea necesario. También puede solicitar aumentos de cuotas si abre un ticket en AWS Support
BatchGetItem
-
En una sola operación
BatchGetItem
se puede recuperar un máximo de 100 elementos. El tamaño total de todos los elementos recuperados no puede ser mayor que 16 MB.
BatchWriteItem
-
Una misma operación
BatchWriteItem
puede contener hasta 25 solicitudesPutItem
oDeleteItem
. El tamaño total de todos los elementos escritos no puede ser mayor que 16 MB.
DescribeTableReplicaAutoScaling
-
El método
DescribeTableReplicaAutoScaling
admite solo diez solicitudes por segundo.
DescribeLimits
-
Solo se debe llamar a
DescribeLimits
de forma periódica. Es de esperar que se produzcan errores de limitación controlada si se realiza la llamada más de una vez por minuto.
DescribeContributorInsights
/ListContributorInsights
/UpdateContributorInsights
-
Solo se debe llamar a
DescribeContributorInsights
,ListContributorInsights
yUpdateContributorInsights
de forma periódica. DynamoDB admite hasta cinco solicitudes por segundo para cada una de estas API.
Query
-
El conjunto de resultados de una operación
Query
está limitado a 1 MB por llamada. Puede utilizarLastEvaluatedKey
de la respuesta a la consulta para recuperar más resultados.
Scan
-
El conjunto de resultados de una operación
Scan
está limitado a 1 MB por llamada. Puede utilizarLastEvaluatedKey
de la respuesta al examen para recuperar más resultados.
UpdateTableReplicaAutoScaling
-
El método
UpdateTableReplicaAutoScaling
admite solo diez solicitudes por segundo.
Cifrado en reposo en DynamoDB
Puede cambiar entre una Clave propiedad de AWS, una Clave administrada por AWS y una clave administrada por el cliente hasta cuatro veces, cada 24 horas, por cada tabla, a partir del momento en el que se cree la tabla. En caso de no producirse ningún cambio en las últimas seis horas, se permite un cambio adicional. Esto aumenta el número máximo de cambios a ocho al día (cuatro cambios en las primeras seis horas y uno en cada una de las seis horas posteriores durante un día).
Puede cambiar las claves de cifrado para usar una Clave propiedad de AWS con tanta frecuencia como sea preciso, incluso si se ha agotado la cuota anterior.
Estas son las cuotas a menos que solicite una cantidad mayor. Para solicitar un aumento de la cuota de servicio, veahttps://aws.amazon.com/support
Exportar tablas a Amazon S3
Se pueden exportar simultáneamente hasta 300 tareas de exportación o hasta 100 TB de tamaño de tabla.