Versões de tabelas globais do DynamoDB - Amazon DynamoDB

Versões de tabelas globais do DynamoDB

Há duas versões disponíveis das tabelas globais do DynamoDB: tabelas globais versão 2019.11.21 (atual) e tabelas globais versão 2017.11.29 (legada). Recomendamos usar a versão 2019.11.21 (atual) das tabelas globais, pois ela é mais fácil de usar, com suporte em mais regiões e oferece menor custo para a maioria das workloads em comparação com a versão 2017.11.29 (legada).

Determinar a versão de uma tabela global

Determinar a versão usando a AWS CLI

Identificar uma réplica de tabela global da versão 2019.11.21 (atual)

Para determinar se uma tabela é uma réplica da versão 2019.11.21 (atual) das tabelas globais, invoque o comando describe-table para a tabela. Se a saída contiver o atributo GlobalTableVersion com o valor "2019.11.21", a tabela é uma réplica da tabela global da versão 2019.11.21 (atual).

Um exemplo de comando CLI para describe-table:

aws dynamodb describe-table \ --table-name users \ --region us-east-2

A saída (abreviada) contém o atributo GlobalTableVersion com o valor "2019.11.21", então essa tabela é uma réplica da tabela global da versão 2019.11.21 (atual).

{ "Table": { "AttributeDefinitions": [ { "AttributeName": "id", "AttributeType": "S" }, { "AttributeName": "name", "AttributeType": "S" } ], "TableName": "users", ... "GlobalTableVersion": "2019.11.21", "Replicas": [ { "RegionName": "us-west-2", "ReplicaStatus": "ACTIVE", } ], ... } }

Identificar uma réplica de tabela global da versão 2017.11.29 (legada)

As tabelas globais versão 2017.11.29 (legada) usam um conjunto dedicado de comandos para gerenciamento global de tabelas. Para determinar se uma tabela é uma réplica da versão 2017.11.21 (legada) das tabelas globais, invoque o comando describe-global-table para a tabela. Se você receber uma resposta bem-sucedida, a tabela será uma réplica de tabela global da versão 2017.11.29 (legada). Se o comando describe-global-table retornar um erro GlobalTableNotFoundException, a tabela não será uma réplica da versão 2017.11.29 (legada).

Um exemplo de comando CLI para describe-global-table:

aws dynamodb describe-global-table \ --table-name users \ --region us-east-2

O comando retorna uma resposta bem-sucedida, então essa tabela será uma réplica de tabela global da versão 2017.11.29 (legada).

{ "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" } }

Determinar a versão usando o DynamoDB Console

Para identificar a versão de uma réplica de tabela global, faça o seguinte:

  1. Abra o console do DynamoDB em https://console.aws.amazon.com/dynamodb/.

  2. No painel de navegação, no lado esquerdo do console, selecione Tables (Tabelas).

  3. Selecione a tabela para a qual você deseja identificar a versão das tabelas globais.

  4. Selecione a guia Global Tables (Tabelas globais).

    A seção Resumo exibe a versão das tabelas globais em uso.

Diferenças de comportamento entre as versões herdada e atual

A lista a seguir descreve as diferenças de comportamento entre as versões herdada e atual das tabelas globais.

  • A versão 2019.11.21 (atual) consome menor capacidade de gravação para várias operações do DynamoDB em comparação à versão 2017.11.29 (herdada) e, portanto, é mais econômica para a maioria dos clientes. As diferenças dessas operações do DynamoDB são as seguintes:

    • Invocar PutItem para um item de 1 KB em uma região e replicar para outras regiões requer 2 rWRUs por região para a 2017.11.29 (herdada), mas apenas 1 rWRU para a 2019.11.21 (atual).

    • Invocar UpdateItem para um item de 1 KB requer 2 rWRUs na região de origem e 1 rWRU por região de destino para a 2017.11.29 (herdada), mas apenas 1 rWRU para as regiões de origem e de destino para a 2019.11.21 (atual).

    • Invocar DeleteItem para um item de 1 KB requer 1 rWRU na região de origem e 2 rWRUs por região de destino para a 2017.11.29 (herdada), mas apenas 1 rWRU para as regiões de origem e de destino para a 2019.11.21 (atual).

    A tabela a seguir mostra o consumo de rWRU das tabelas das versões 2017.11.29 (herdada) e 2019.11.21 (atual) de um item de 1 KB em duas regiões.

    Operação 2017.11.29 (herdada) 2019.11.21 (atual) Economia
    PutItem 4 rWRUs 2 rWRUs 50%
    UpdateItem 3 rWRUs 2 rWRUs 33%
    DeleteItem 3 rWRUs 2 rWRUs 33%
  • A versão 2017.11.29 (herdada) está disponível somente em 11 Regiões da AWS. No entanto, a versão 2019.11.21 (atual) está disponível em todas as Regiões da AWS.

  • Você deve criar tabelas globais da versão 2017.11.29 (herdada) criando primeiro um conjunto de tabelas regionais vazias e, depois, invocando a API CreateGlobalTable para formar a tabela global. As tabelas globais da versão 2019.11.21 (atual) são criadas invocando a API UpdateTable para adicionar uma réplica a uma tabela regional existente.

  • A versão 2017.11.29 (herdada) exige que você esvazie todas as réplicas na tabela antes de adicionar uma réplica em uma nova região (inclusive durante a criação). A versão 2019.11.21 (atual) aceita adicionar réplicas a regiões e removê-las em uma tabela que já contenha dados.

  • A versão 2017.11.29 (herdada) usa o seguinte conjunto dedicado de APIs de ambiente de gerenciamento para gerenciar réplicas:

    A versão 2019.11.21 (atual) usa as APIs DescribeTable e UpdateTable para gerenciar réplicas.

  • A versão 2017.11.29 (herdada) publica dois registros do DynamoDB Streams para cada gravação. A versão 2019.11.21 (atual) publica apenas um registro do DynamoDB Streams para cada gravação.

  • A versão 2017.11.29 (herdada) preenche e atualiza os atributos aws:rep:deleting,aws:rep:updateregion e aws:rep:updatetime. A versão 2019.11.21 (atual) não preenche nem atualiza esses atributos.

  • A versão 2017.11.29 (herdada) não sincroniza as configurações Usar a vida útil (TTL) no DynamoDB entre réplicas. A versão 2019.11.21 (atual) sincroniza as configurações de TTL entre réplicas.

  • A versão 2017.11.29 (herdada) não replica exclusões de TTL para outras réplicas. A versão 2019.11.21 (atual) replica exclusões de TTL para todas as réplicas.

  • A versão 2017.11.29 (herdada) não sincroniza configurações de ajuste de escala automático entre réplicas. A versão 2019.11.21 (atual) sincroniza as configurações de ajuste de escala automático entre réplicas.

  • A versão 2017.11.29 (herdada) não sincroniza as configurações de índice secundário global (GSI) entre réplicas. A versão 2019.11.21 (atual) sincroniza as configurações do GSI entre réplicas.

  • A versão 2017.11.29 (herdada) não sincroniza as configurações de criptografia em repouso entre réplicas. A versão 2019.11.21 (atual) sincroniza as configurações de criptografia em repouso entre réplicas.

  • A versão 2017.11.29 (herdada) publica a métrica PendingReplicationCount. A versão 2019.11.21 (atual) não publica essa métrica.

Atualizar para a versão atual

Permissões obrigatórias para a atualização de tabelas globais

Para realizar a atualização para a versão 2019.11.21 (atual), é necessário ter permissões dynamodb:UpdateGlobalTableversion em todas as regiões com réplicas. Essas permissões se somam às permissões necessárias para acessar o console do DynamoDB e visualizar tabelas.

A política do IAM a seguir concede permissões para atualizar qualquer tabela global para a versão 2019.11.21 (atual).

{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": "*" } ] }

A política do IAM a seguir concede permissões para atualizar apenas a tabela global Music, com réplicas em duas regiões, para a versão 2019.11.21 (atual).

{ "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" ] } ] }

O que esperar durante a atualização

  • Todas as réplicas de tabelas globais continuarão processando o tráfego de leitura e gravação durante a atualização.

  • O processo de atualização requer de alguns minutos a várias horas, dependendo do tamanho da tabela e do número de réplicas.

  • Durante o processo de atualização, o valor de TableStatus mudará de ACTIVE para UPDATING. É possível ver o status da tabela invocando a API DescribeTable ou com a visualização Tablesno .

  • O ajuste de escala automático não alterará as configurações de capacidade provisionada para uma tabela global enquanto a tabela estiver sendo atualizada. É altamente recomendável definir a tabela como o modo de capacidade sob demanda durante a atualização.

  • Se você optar por usar o modo de capacidade provisionada com ajuste de escala automático durante a atualização, será necessário aumentar o throughput mínimo de leitura e gravação em suas políticas para atender aos aumentos esperados no tráfego e evitar o controle de utilização durante a atualização.

  • A métrica ReplicationLatency pode relatar temporariamente picos de latência ou parar de relatar dados de métricas durante o processo de atualização. Consulte mais informações em ReplicationLatency.

  • Quando o processo de atualização estiver concluído, o status da tabela mudará para ACTIVE.

Comportamento do DynamoDB Streams antes, durante e depois da atualização

Operação Região de réplica Comportamento antes da atualização Comportamento durante a atualização Comportamento após a atualização

Inserir ou atualizar

Origem

O preenchimento do carimbo de data e hora é feito por meio de UpdateItem. O preenchimento do carimbo de data e hora é feito por meio de PutItem. Nenhum carimbo de data e hora visível para o cliente é gerado.
Dois registros do Streams são gerados. O primeiro contém os atributos gravados pelo cliente. O segundo contém os atributos aws:rep:*. Dois registros do Streams são gerados. O primeiro contém os atributos gravados pelo cliente. O segundo contém os atributos aws:rep:*. Um único registro do Streams é gerado contendo os atributos gravados pelo cliente.
Duas rWCUs são consumidas para cada gravação do cliente. Duas rWCUs são consumidas para cada gravação do cliente. Uma rWCU é consumida para cada gravação do cliente.
As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. A métrica ReplicationLatency é publicada no CloudWatch.

Destination (Destino)

A replicação acontece usando PutItem. A replicação acontece usando PutItem. A replicação acontece usando PutItem.
É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:*. É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:*. É gerado um único registro do Streams, que contém somente os atributos gravados pelo cliente e nenhum atributo de replicação.
Uma rWCU será consumida se o item existir na região de destino. Duas rWCUs serão consumidas se o item não existir na região de destino. Uma rWCU será consumida se o item existir na região de destino. Duas rWCUs serão consumidas se o item não existir na região de destino. Uma rWCU é consumida para cada gravação do cliente.
As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. A métrica ReplicationLatency é publicada no CloudWatch.

Excluir

Origem

Exclua qualquer item com carimbo de data e hora menor usando DeleteItem. Exclua qualquer item com carimbo de data e hora menor usando DeleteItem. Exclua qualquer item com carimbo de data e hora menor usando DeleteItem.
É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:*. É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:*. É gerado um único registro do Streams, que contém os atributos gravados pelo cliente.
Uma rWCU é consumida para cada exclusão do cliente. Uma rWCU é consumida para cada exclusão do cliente. Uma rWCU é consumida para cada exclusão do cliente.
As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. A métrica ReplicationLatency é publicada no CloudWatch.

Destination (Destino)

Ocorrem exclusões em duas fases:

  • Na Fase 1, UpdateItem define o sinalizador de exclusão.

  • Na Fase 2, DeleteItem exclui o item.

Exclui o item usando DeleteItem. Exclui o item usando DeleteItem.
Dois registros do Streams são gerados. O primeiro registro contém a alteração no campo aws:rep:deleting. O segundo registro contém os atributos gravados pelo cliente e os atributos aws:rep:*. É gerado um único registro do Streams, que contém os atributos gravados pelo cliente. É gerado um único registro do Streams, que contém os atributos gravados pelo cliente.
Duas rWCUs são consumidas para cada exclusão do cliente. Uma rWCU é consumida para cada exclusão do cliente. Uma rWCU é consumida para cada exclusão do cliente.
As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. A métrica ReplicationLatency é publicada no CloudWatch. A métrica ReplicationLatency é publicada no CloudWatch.

Atualizar para a versão 2019.11.21 (atual)

Siga estas etapas para atualizar a versão das tabelas globais do DynamoDB usando o AWS Management Console.

Como atualizar tabelas globais para a versão 2019.11.21 (atual)
  1. Abra o console do DynamoDB em https://console.aws.amazon.com/dynamodb/.

  2. No painel de navegação no lado esquerdo do console, escolha Tabelas e, depois, selecione a tabela global que você deseja atualizar para a versão 2019.11.21 (atual).

  3. Selecione a guia Global Tables (Tabelas globais).

  4. Escolha Update version (Atualizar versão).

    Captura de tela do console mostrando o botão Update version (Atualizar versão).
  5. Leia e concorde com os novos requisitos e escolha Update version (Atualizar versão).

  6. Após a conclusão do processo de atualização, a versão de tabelas globais exibida no console muda para 2019.11.21.