Cuotas de tabla, servicio y cuenta en Amazon DynamoDB - Amazon DynamoDB

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.

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

Per table

40,000 read request units and 40,000 write request units

40,000 read capacity units and 40,000 write capacity units

Per account

Not applicable

80,000 read capacity units and 80,000 write capacity units

Minimum throughput for any table or global secondary index

Not applicable

1 read capacity unit and 1 write capacity unit

Puede utilizar la consola de Service Quotas, la API de AWS y la CLI de AWS para solicitar aumentos de cuotas para las cuotas ajustables cuando sea necesario.

Para las cuotas de rendimiento en el nivel de cuenta, puede utilizar la consola de Service Quotas, la consola de AWS CloudWatch, la API de AWS y la CLI de AWS para crear alarmas de CloudWatch y recibir notificaciones automáticamente cuando su uso actual alcance un porcentaje específico de los valores de cuota aplicados. Con CloudWatch también puede supervisar su uso si examina las métricas de uso de AWS AccountProvisionedReadCapacityUnits 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, la API de AWS y la CLI de AWS para solicitar aumentos de cuotas cuando sea necesario.

importante

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 o ReadCapacityUnits (o ambos) cuatro veces.

  • Reduzca los valores WriteCapacityUnits o ReadCapacityUnits (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, la API de AWS y laCLI de AWS para ver los valores de cuota predeterminados y aplicados para el número máximo de tablas de su cuenta y solicitar aumentos de cuota, cuando sea necesario. También puede solicitar aumentos de cuotas si abre un ticket en AWS Support

Con la consola de Service Quotas, la API de AWS y la CLI de AWS, puede crear alarmas de CloudWatch para que se le notifique automáticamente cuando su uso actual alcance un porcentaje determinado de su cuota actual. Con CloudWatch también puede supervisar su uso si examina las métricas de uso de AWS TableCount. 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

Per table

40,000 read request units and 40,000 write request units

40,000 read capacity units and 40,000 write capacity units

Per table, per destination Region, per day

10 TB for all source tables to which a replica was added for this destination Region

10 TB for all source tables to which a replica was added for this destination Region

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, la API de AWS y la CLI de AWS para comprobar los índices secundarios globales por tabla predeterminados y las cuotas actuales que se aplican a su cuenta y para solicitar aumentos de cuota, cuando sea necesario. También puede solicitar aumentos de cuota si abre un ticket en https://aws.amazon.com/support.

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 valor ProjectionType para INCLUDE, los nombres de los atributos del parámetro NonKeyAttributes estarán sujetos a restricciones de longitud. Los tipos de proyecciones KEYS_ONLY y ALL 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 a 9.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 y Update 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, la API de AWS y la CLI de AWS para comprobar la capacidad máxima de escritura de una tabla con los flujos de DynamoDB habilitados de forma predetermianda y las cuotas actuales que se aplican en su cuenta y para solicitar aumentos de cuota, cuando sea necesario. También puede solicitar aumentos de cuotas si abre un ticket en AWS Support.

nota

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 y DeleteTable en ejecución simultáneamente en cualquier combinación. Por consiguiente, el número total de tablas que se encuentren en estado CREATING, UPDATING o DELETING 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 solicitudes PutItem o DeleteItem. 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 y UpdateContributorInsights 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 utilizar LastEvaluatedKey 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 utilizar LastEvaluatedKey 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.