

# Versões de tabelas globais do DynamoDB
<a name="V2globaltables_versions"></a>

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
<a name="globaltables.DetermineVersion"></a>

### Determinar a versão usando a AWS CLI
<a name="globaltables.CLI"></a>

#### Identificar uma réplica de tabela global da versão 2019.11.21 (atual)
<a name="globaltables.CLI.current"></a>

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)
<a name="globaltables.CLI.legacy"></a>

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
<a name="globaltables.console"></a>

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/](https://console.aws.amazon.com/dynamodb/home).

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

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

1. 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 name="DiffLegacyVsCurrent"></a>

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](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html) 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](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html) 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](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html) 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.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/V2globaltables_versions.html)
+ 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](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html) para formar a tabela global. As tabelas globais da versão 2019.11.21 (atual) são criadas invocando a API [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) 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:
  + [CreateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html)
  + [DescribeGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTable.html)
  + [DescribeGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTableSettings.html)
  + [ListGlobalTables](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListGlobalTables.html)
  + [UpdateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTable.html)
  + [UpdateGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTableSettings.html)

  A versão 2019.11.21 (atual) usa as APIs [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html) e [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) 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](TTL.md) 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](AutoScaling.md) 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)](GSI.md) 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](encryption.usagenotes.md) 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
<a name="upgrading-to-current-version"></a>

### Permissões obrigatórias para a atualização de tabelas globais
<a name="V2globaltables_versions.Notes-permissions"></a>

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
<a name="V2GlobalTablesUpgradeExpectations"></a>
+ 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](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TableDescription.html#DDB-Type-TableDescription-TableStatus) mudará de `ACTIVE` para `UPDATING`. É possível ver o status da tabela invocando a API [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html) ou com a visualização **Tabelas** no console do DynamoDB.
+ 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](capacity-mode.md#capacity-mode-on-demand) durante a atualização.
+ Se você optar por usar o modo de capacidade [provisionada](provisioned-capacity-mode.md) 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](metrics-dimensions.md#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
<a name="V2GlobalTablesUpgradeDDBStreamsBehavior"></a>



- ****Inserir ou atualizar****
  - **Região de réplica:** **Fonte** / **Comportamento antes da atualização:** O preenchimento do carimbo de data e hora é feito por meio de [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html). / **Comportamento durante a atualização:** O preenchimento do carimbo de data e hora é feito por meio de [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html). / **Comportamento após a atualização:** Nenhum carimbo de data e hora visível para o cliente é gerado.
  - **Comportamento antes da atualização:** Dois registros do Streams são gerados. O primeiro contém os atributos gravados pelo cliente. O segundo contém os atributos aws:rep:\*. / **Comportamento durante a atualização:** Dois registros do Streams são gerados. O primeiro contém os atributos gravados pelo cliente. O segundo contém os atributos aws:rep:\*. / **Comportamento após a atualização:** Um único registro do Streams é gerado contendo os atributos gravados pelo cliente.
  - **Comportamento antes da atualização:** Duas rWCUs são consumidas para cada gravação do cliente. / **Comportamento durante a atualização:** Duas rWCUs são consumidas para cada gravação do cliente. / **Comportamento após a atualização:** Uma rWCU é consumida para cada gravação do cliente.
  - **Comportamento antes da atualização:** As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. / **Comportamento durante a atualização:** As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. / **Comportamento após a atualização:** A métrica ReplicationLatency é publicada no CloudWatch.
  - **Região de réplica:** **Destino** / **Comportamento antes da atualização:** A replicação acontece usando PutItem. / **Comportamento durante a atualização:** A replicação acontece usando PutItem. / **Comportamento após a atualização:** A replicação acontece usando PutItem.
  - **Comportamento antes da atualização:** É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:\*. / **Comportamento durante a atualização:** É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:\*. / **Comportamento após a atualização:** É gerado um único registro do Streams, que contém somente os atributos gravados pelo cliente e nenhum atributo de replicação.
  - **Comportamento antes da atualizaçã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. / **Comportamento durante a atualizaçã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. / **Comportamento após a atualização:** Uma rWCU é consumida para cada gravação do cliente.
  - **Comportamento antes da atualização:** As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. / **Comportamento durante a atualização:** As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. / **Comportamento após a atualização:** A métrica ReplicationLatency é publicada no CloudWatch.

- ****Excluir****
  - **Região de réplica:** **Fonte** / **Comportamento antes da atualização:** Exclua qualquer item com carimbo de data e hora menor usando [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html). / **Comportamento durante a atualização:** Exclua qualquer item com carimbo de data e hora menor usando DeleteItem. / **Comportamento após a atualização:** Exclua qualquer item com carimbo de data e hora menor usando DeleteItem.
  - **Comportamento antes da atualização:** É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:\*. / **Comportamento durante a atualização:** É gerado um único registro do Streams, que contém os atributos gravados pelo cliente e os atributos aws:rep:\*. / **Comportamento após a atualização:** É gerado um único registro do Streams, que contém os atributos gravados pelo cliente.
  - **Comportamento antes da atualização:** Uma rWCU é consumida para cada exclusão do cliente. / **Comportamento durante a atualização:** Uma rWCU é consumida para cada exclusão do cliente. / **Comportamento após a atualização:** Uma rWCU é consumida para cada exclusão do cliente.
  - **Comportamento antes da atualização:** As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. / **Comportamento durante a atualização:** As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. / **Comportamento após a atualização:** A métrica ReplicationLatency é publicada no CloudWatch.
  - **Região de réplica:** **Destino** / **Comportamento antes da atualização:** Ocorrem exclusões em duas fases:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/V2globaltables_versions.html) / **Comportamento durante a atualização:** Exclui o item usando DeleteItem. / **Comportamento após a atualização:** Exclui o item usando DeleteItem.
  - **Comportamento antes da atualização:** 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:\*. / **Comportamento durante a atualização:** É gerado um único registro do Streams, que contém os atributos gravados pelo cliente. / **Comportamento após a atualização:** É gerado um único registro do Streams, que contém os atributos gravados pelo cliente.
  - **Comportamento antes da atualização:** Duas rWCUs são consumidas para cada exclusão do cliente. / **Comportamento durante a atualização:** Uma rWCU é consumida para cada exclusão do cliente. / **Comportamento após a atualização:** Uma rWCU é consumida para cada exclusão do cliente.
  - **Comportamento antes da atualização:** As métricas ReplicationLatency e PendingReplicationCount são publicadas no CloudWatch. / **Comportamento durante a atualização:** A métrica ReplicationLatency é publicada no CloudWatch. / **Comportamento após a atualização:** A métrica ReplicationLatency é publicada no CloudWatch.



### Atualizar para a versão 2019.11.21 (atual)
<a name="V2globaltables_versions.upgrade"></a>

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

**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/](https://console.aws.amazon.com/dynamodb/home). 

1. 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). 

1. Selecione a guia **Global Tables (Tabelas globais)**.

1. Escolha **Update version (Atualizar versão)**.  
![Captura de tela do console mostrando o botão Update version (Atualizar versão).](http://docs.aws.amazon.com/pt_br/amazondynamodb/latest/developerguide/images/GlobalTables-upgrade.png)

1. Leia e concorde com os novos requisitos e escolha **Update version (Atualizar versão)**.

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