Incompatibilidade de versão da tabela global DynamoDB

TL;DR — DynamoDB tem duas versões de tabela global: 2017.11.29 (Legado) e 2019.11.21 (Atual). A criação de uma tabela global legada ou a adição de uma réplica falha quando as tabelas membros não atendem aos requisitos - as réplicas legadas devem estar vazias, compartilhar o mesmo nome, esquema de chave e GSIs correspondentes, ter Streams DynamoDB (imagens novas e antigas) habilitados e usar capacidade de gravação consistente - e apontar os APIs de uma versão para as tabelas da outra versão falha completamente. Alinhe a configuração de cada réplica (ou atualize para a versão atual) e tente novamente.

O que significa

ValidationException: Cannot create a global table from a table with ...
ValidationException: ... replicas must have the same ... across all regions

A versão Legacy (2017.11.29) une tabelas regionais criadas de forma independente em uma tabela global nomeada, portanto, exige que as tabelas de membros se alinhem exatamente. A versão Atual (2019.11.21) gerencia a replicação na própria tabela (você adiciona réplicas com UpdateTable) e sincroniza TTL, escalonamento automático, GSI e configurações de criptografia em repouso entre réplicas automaticamente. Erros de incompatibilidade de versão aparecem quando as tabelas que você está combinando discordam ou quando as ferramentas se comunicam com a superfície API da versão errada.

Por que isso acontece

  • Uma tabela de réplica não está vazia — os CreateGlobalTable/UpdateGlobalTable APIs herdados exigem que cada tabela de membro não contenha dados.
  • Incompatibilidade de nome ou esquema de chave — todas as réplicas devem compartilhar o mesmo nome de tabela e chave primária.
  • GSIs incompatíveis — os índices secundários globais devem corresponder entre as réplicas no nome e na chave hash/sort.
  • Streams desativados ou tipo de visualização incorreto — cada réplica herdada precisa de Streams DynamoDB habilitados com as imagens novas e antigas do item.
  • Capacidade de gravação inconsistente — AWS exige que as configurações de capacidade de gravação sejam definidas de forma consistente em tabelas de réplica e índices secundários correspondentes (escalonamento automático recomendado ou unidades de capacidade de gravação replicadas iguais).
  • Misturando as duas versões — apontar os APIs legados (DescribeGlobalTable, UpdateGlobalTable) para uma tabela de versão atual retorna GlobalTableNotFoundException em vez de funcionar.
  • CLI/SDK AWS desatualizado — uma versão anterior ao modelo 2019.11.21 não pode conduzir o gerenciamento de réplicas baseado em UpdateTable.

Como corrigir

  1. Padronize as tabelas de membros em todas as regiões — mesmo nome e esquema de chave, GSIs correspondentes, fluxos habilitados com imagens novas e antigas e destinos /auto-scaling com capacidade de gravação consistente.
  2. Verifique o estado atual com DescribeTable por região (atual) ou DescribeGlobalTableSettings (um API somente legado) e corrija o desvio com UpdateTable ou UpdateGlobalTableSettings respectivamente.
  3. Atualizar legado → atual deliberadamente por meio do fluxo Atualizar versão do console — ele precisa da permissão dynamodb:UpdateGlobalTableversion em cada região de réplica, e as réplicas continuam servindo leituras e escritas durante a atualização.
  4. Atualize seu CLI/SDK AWS para uma versão recente antes de gerenciar réplicas da versão atual.
  5. Adicionar réplicas a uma tabela base compatível — As réplicas da versão atual são adicionadas com UpdateTable (a tabela pode já conter dados, mas a região de destino ainda não deve ter uma tabela com esse nome); as réplicas legadas devem começar vazias.
  6. Ative streams antes da criação do legado. Cada réplica legada precisa de streams DynamoDB com imagens novas e antigas — verifique com DescribeTable em todas as regiões.

Meça no DynoTable

Compare esquema, GSIs e configurações de streaming entre regiões antes de criar uma tabela global — alterne com ⌘P, abra cada réplica com ⌘K e expanda os painéis Indexes e Stream lado a lado.

Estime o custo de gravação replicado com a calculadora de preços. Configure cada região em Configurações → Perfis com Conexão de teste. Consulte Conectar ao AWS e Instalar.

Fontes

Erros relacionados

Referências

Última verificação em 13/07/2026 em relação à documentação oficial do AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.