Versiones de tablas globales de DynamoDB
Hay disponibles dos versiones de las tablas globales de DynamoDB: versión 2019.11.21 (actual) y versión 2017.11.29 (antigua). Recomendamos utilizar la versión 2019.11.21 (actual) de las tablas globales, ya que es más fácil de usar, se admite en más regiones y tiene un costo más bajo para la mayoría de las cargas de trabajo en comparación con la versión 2017.11.29 (antigua).
Determinación de la versión de una tabla global
Determinar la versión mediante la AWS CLI
Identificación de una réplica de tabla global de la versión 2019.11.21 (actual)
Para determinar si una tabla es una réplica de tabla global de la versión 2019.11.21 (actual), invoque el comando describe-table
para la tabla. Si el resultado contiene el atributo de GlobalTableVersion
con un valor de “2019.11.21”, la tabla es una réplica de tabla global de la versión 2019.11.21 (actual).
Un ejemplo de comando de la CLI para describe-table
:
aws dynamodb describe-table \ --table-name users \ --region us-east-2
El resultado (abreviado) contiene el atributo de GlobalTableVersion
con un valor de “2019.11.21”, por lo que esta tabla es una réplica de la tabla global de la versión 2019.11.21 (actual).
{ "Table": { "AttributeDefinitions": [ { "AttributeName": "id", "AttributeType": "S" }, { "AttributeName": "name", "AttributeType": "S" } ], "TableName": "users", ... "GlobalTableVersion": "2019.11.21", "Replicas": [ { "RegionName": "us-west-2", "ReplicaStatus": "ACTIVE", } ], ... } }
Identificación de una réplica de tabla global de la versión 2017.11.29 (antigua)
La versión 2017.11.29 (antigua) de tablas globales utiliza un conjunto dedicado de comandos para la administración de tablas globales. Para determinar si una tabla es una réplica de la versión 2017.11.29 de tablas globales (antigua), invoque el comando describe-global-table
para la tabla. Si recibe una respuesta exitosa, la tabla es una réplica de tabla global de la versión 2017.11.29 (antigua). Si el comando describe-global-table
devuelve un error GlobalTableNotFoundException
, la tabla no es una réplica de la versión 2017.11.29 (antigua).
Un comando de la CLI de ejemplo para describe-global-table
:
aws dynamodb describe-global-table \ --table-name users \ --region us-east-2
El comando devuelve una respuesta exitosa, por lo que esta tabla es una réplica de tabla global de la versión 2017.11.29 (antigua).
{ "GlobalTableDescription": { "ReplicationGroup": [ { "RegionName": "us-west-2" }, { "RegionName": "us-east-2" } ], "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/users", "CreationDateTime": "2025-06-10T13:55:53.630000-04:00", "GlobalTableStatus": "ACTIVE", "GlobalTableName": "users" } }
Determinación de la versión mediante la consola de DynamoDB
Para identificar la versión de una réplica de tabla global, realice lo siguiente:
-
Abra la consola de DynamoDB en https://console.aws.amazon.com/dynamodb/home
. -
En el panel de navegación del lado izquierdo de la consola, elija Tablas.
-
Elija la tabla de la que desea identificar la versión de las tablas globales.
-
Elija la pestaña Global Tables (Tablas globales).
La sección Resumen muestra la versión de las tablas globales en uso.
Diferencias de comportamiento entre las versiones heredada y actual
En la siguiente lista se describen las diferencias de comportamiento entre las versiones heredada y actual de las tablas globales.
-
La versión 2019.11.21 (actual) consume menos capacidad de escritura para varias operaciones de DynamoDB en comparación con la 2017.11.29 (heredada) y, por lo tanto, es más rentable para la mayoría de los clientes. Las diferencias entre estas operaciones de DynamoDB son las siguientes:
-
La invocación de PutItem para un elemento de 1 KB en una región y replicarlo en otras regiones requiere dos rWRU por región para la versión 2017.11.29 (heredada), pero solo un rWrU para la 2019.11.21 (actual).
-
La invocación de UpdateItem para un elemento de 1 KB requiere dos rWRU en la región de origen y un rWrU por región de destino para la versión 2017.11.29 (heredada), pero solo un rWrU para las regiones de origen y destino para la 2019.11.21 (actual).
-
La invocación de DeleteItem para un elemento de 1 KB requiere un rWRU en la región de origen y dos rWrU por región de destino para la versión 2017.11.29 (heredada), pero solo un rWrU para las regiones de origen o destino para la 2019.11.21 (actual).
La siguiente tabla muestra el consumo de rWRU de las tablas de la versión 2017.11.29 (heredada) y de la 2019.11.21 (actual) para un elemento de 1 KB en dos regiones.
Operación 2017.11.29 (heredada) 2019.11.21 (actual) Ahorro PutItem 4 rWRU 2 rWRU 50% UpdateItem 3 rWRU 2 rWRU 33 % DeleteItem 3 rWRU 2 rWRU 33 % -
-
La versión 2017.11.29 (heredada) solo está disponible en 11 Regiones de AWS. Sin embargo, la versión 2019.11.21 (actual) está disponible en todas las Regiones de AWS.
-
Para crear tablas globales de la versión 2017.11.29 (heredada), primero debe crear un conjunto de tablas regionales vacías y, a continuación, invocar la API CreateGlobalTable para formar la tabla global. Para crear tablas globales de la versión 2019.11.21 (actual), invoque la API UpdateTable para agregar una réplica a una tabla regional existente.
-
La versión 2017.11.29 (heredada) requiere que se vacíen todas las réplicas de la tabla antes de agregar una réplica en una nueva región (incluso durante la creación). La versión 2019.11.21 (actual) permite agregar y eliminar réplicas de regiones de una tabla que ya contenga datos.
-
La versión 2017.11.29 (heredada) utiliza el siguiente conjunto dedicado de API de plano de control para administrar las réplicas:
La versión 2019.11.21 (actual) usa las API DescribeTable y UpdateTable para administrar las réplicas.
-
La versión 2017.11.29 (heredada) publica dos registros de DynamoDB Streams para cada escritura. La versión 2019.11.21 (actual) solo publica un registro de DynamoDB Streams para cada escritura.
-
La versión 2017.11.29 (heredada) rellena y actualiza los atributos
aws:rep:deleting
,aws:rep:updateregion
yaws:rep:updatetime
. La versión 2019.11.21 (actual) no rellena ni actualiza estos atributos. -
La versión 2017.11.29 (heredada) no sincroniza la configuración Uso del período de vida (TTL) en DynamoDB entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración de TTL entre las réplicas.
-
La versión 2017.11.29 (heredada) no replica las eliminaciones de TTL en otras réplicas. La versión 2019.11.21 (actual) replica las eliminaciones de TTL en todas las réplicas.
-
La versión 2017.11.29 (heredada) no sincroniza la configuración del escalado automático entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración del escalado automático entre las réplicas.
-
La versión 2017.11.29 (heredada) no sincroniza la configuración del índice secundario global (GSI) entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración de GSI entre las réplicas.
-
La versión 2017.11.29 (heredada) no sincroniza la configuración del cifrado en reposo entre las réplicas. La versión 2019.11.21 (actual) sincroniza la configuración del cifrado en reposo entre las réplicas.
-
La versión 2017.11.29 (heredada) publica la métrica
PendingReplicationCount
. La versión 2019.11.21 (actual) no publica esta métrica.
Actualización a la versión actual
Permisos necesarios para actualizar las tablas globales
Para actualizar a la versión 2019.11.21 (actual), debe tener permisos dynamodb:UpdateGlobalTableversion
en todas las regiones que tengan réplicas. Estos permisos se suman a los permisos necesarios para acceder a la consola de DynamoDB y ver las tablas.
La siguiente política de IAM concede permisos para actualizar cualquier tabla global a la versión 2019.11.21 (actual).
{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": "*" } ] }
La siguiente política de IAM concede permisos para actualizar solo la tabla global Music
, con réplicas en dos regiones, a la versión 2019.11.21 (actual).
{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Music", "arn:aws:dynamodb:ap-southeast-1:123456789012:table/Music", "arn:aws:dynamodb:us-east-2:123456789012:table/Music" ] } ] }
Qué esperar durante la actualización
-
Todas las réplicas de tablas globales seguirán procesando el tráfico de lectura y escritura durante la actualización.
-
El proceso de actualización tarda entre unos minutos a varias horas, según el tamaño de la tabla y la cantidad de réplicas.
-
Durante el proceso de actualización, el valor de TableStatus cambiará de
ACTIVE
aUPDATING
. Puede ver el estado de la tabla invocando la API de DescribeTable o con la vista Tablas. -
El escalado automático no ajustará la configuración de capacidad aprovisionada para una tabla global mientras se esté actualizando la tabla. Le recomendamos encarecidamente que configure la tabla en el modo de capacidad bajo demanda durante la actualización.
-
Si decide utilizar capacidad aprovisionada con el escalado automático durante la actualización, debe aumentar el rendimiento mínimo de lectura y escritura en las políticas para contemplar el aumento esperado de tráfico y evitar cualquier limitación durante la actualización.
-
La métrica
ReplicationLatency
puede informar temporalmente de picos de latencia o dejar de informar de datos métricos durante el proceso de actualización. Para obtener más información, consulte ReplicationLatency. -
Cuando finaliza el proceso de actualización, el estado de la tabla cambia a
ACTIVE
.
Comportamiento de DynamoDB Streams antes, durante y después de la actualización
Operación | Regiones de réplica | Comportamiento antes de la actualización | Comportamiento durante la actualización | Comportamiento tras la actualización |
---|---|---|---|---|
Put o Update |
Origen |
Las marcas de tiempo se rellenan mediante UpdateItem. | Las marcas de tiempo se rellenan mediante PutItem. | No se genera ninguna marca de tiempo visible para el cliente. |
Se generan dos registros de Streams. El primer registro contiene los atributos escritos por el cliente. El segundo registro contiene los atributos aws:rep:* . |
Se generan dos registros de Streams. El primer registro contiene los atributos escritos por el cliente. El segundo registro contiene los atributos aws:rep:* . |
Se genera un único registro de Streams que contiene los atributos escritos por el cliente. | ||
Se consumen dos rWCU por cada escritura del cliente. | Se consumen dos rWCU por cada escritura del cliente. | Se consume una rWCU por cada escritura del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
||
Destino |
La replicación se realiza mediante PutItem. | La replicación se realiza mediante PutItem. | La replicación se realiza mediante PutItem. | |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que solo contiene los atributos escritos por el cliente sin atributos de replicación. | ||
Se consume una rWCU si el elemento existe en la región de destino. Se consumen dos rWCU si el elemento no existe en la región de destino. | Se consume una rWCU si el elemento existe en la región de destino. Se consumen dos rWCU si el elemento no existe en la región de destino. | Se consume una rWCU por cada escritura del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
||
Delete |
Origen |
Elimine cualquier elemento con una marca de tiempo más pequeña con DeleteItem. | Elimine cualquier elemento con una marca de tiempo más pequeña con DeleteItem. | Elimine cualquier elemento con una marca de tiempo más pequeña con DeleteItem. |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que contiene tanto los atributos escritos por el cliente como los atributos aws:rep:* . |
Se genera un único registro de Streams, que contiene los atributos escritos por el cliente. | ||
Se consume una rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
||
Destino |
Se realizan eliminaciones en dos fases:
|
Elimina el elemento mediante DeleteItem. | Elimina el elemento mediante DeleteItem. | |
Se generan dos registros de Streams. El primer registro contiene el cambio en el campo aws:rep:deleting . El segundo registro contiene los atributos escritos por el cliente y los atributos. |
Se genera un único registro de Streams, que contiene los atributos escritos por el cliente. | Se genera un único registro de Streams, que contiene los atributos escritos por el cliente. | ||
Se consumen dos rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | Se consume una rWCU por cada eliminación del cliente. | ||
Las métricas ReplicationLatency y PendingReplicationCount se publican en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
La métrica ReplicationLatency se publica en CloudWatch. |
Actualización a la versión 2019.11.21 (actual)
Siga estos pasos para actualizar la versión de las tablas globales de DynamoDB mediante la AWS Management Console.
Actualización de las tablas globales a la versión 2019.11.21 (actual)
-
Abra la consola de DynamoDB en https://console.aws.amazon.com/dynamodb/home
. -
En el panel de navegación del lado izquierdo de la consola, elija Tablas y, a continuación, seleccione la tabla global que desea actualizar a la versión 2019.11.21 (actual).
-
Elija la pestaña Global Tables (Tablas globales).
-
Elija Update version (Actualizar versión).
-
Lea y acepte los nuevos requisitos y, a continuación, elija Update version (Actualizar versión).
-
Una vez completado el proceso de actualización, la versión de las tablas globales que aparece en la consola cambia a 2019.11.21.