DynamoDB mancata corrispondenza della versione della tabella globale

TL;DR — DynamoDB ha due versioni della tabella globale: 2017.11.29 (Legacy) e 2019.11.21 (Current). La creazione di una tabella globale legacy o l'aggiunta di una replica fallisce quando le tabelle membro non soddisfano i requisiti: le repliche legacy devono essere vuote, condividere lo stesso nome, schema di chiave e GSI corrispondenti, avere DynamoDB flussi (immagini nuove e vecchie) abilitati e utilizzare capacità di scrittura coerente, e il puntamento delle API di una versione alle tabelle dell'altra versione fallisce completamente. Allinea la configurazione di ogni replica (o esegui l'aggiornamento alla versione corrente), quindi riprova.

Cosa significa

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

La versione Legacy (29.11.2017) unisce le tabelle regionali create in modo indipendente in una tabella globale con nome, quindi richiede che le tabelle dei membri siano allineate esattamente. La versione Current (2019.11.21) gestisce la replica sulla tabella stessa (aggiungi repliche con UpdateTable) e sincronizza automaticamente TTL, ridimensionamento automatico, GSI e impostazioni di crittografia a riposo tra le repliche. Gli errori di mancata corrispondenza della versione vengono visualizzati quando le tabelle che stai combinando non sono d'accordo o quando gli strumenti comunicano con la superficie API della versione sbagliata.

Perché succede

  • Una tabella di replica non è vuota: le API legacy CreateGlobalTable/UpdateGlobalTable richiedono che ogni tabella membro non contenga dati.
  • Mancata corrispondenza del nome o dello schema della chiave: tutte le repliche devono condividere lo stesso nome di tabella e la stessa chiave primaria.
  • GSI non corrispondenti: gli indici secondari globali devono corrispondere tra le repliche nel nome e nella chiave hash/ordinamento.
  • Stream disattivati o tipo di visualizzazione errato: ogni replica legacy necessita di DynamoDB flussi abilitati sia con la nuova che con la vecchia immagine dell'elemento.
  • Capacità di scrittura incoerente: AWS richiede che le impostazioni della capacità di scrittura siano impostate in modo coerente tra le tabelle di replica e gli indici secondari corrispondenti (ridimensionamento automatico consigliato o unità di capacità di scrittura replicate uguali).
  • Mixing delle due versioni — puntando le API legacy (DescribeGlobalTable, UpdateGlobalTable) a una tabella della versione corrente restituisce GlobalTableNotFoundException invece di funzionare.
  • CLI/AWS SDK obsoleto: una versione precedente al modello 2019.11.21 non può gestire la gestione delle repliche basata su UpdateTable.

Come risolverlo

  1. Standardizzare le tabelle dei membri in tutte le regioni: stesso nome e schema di chiave, GSI corrispondenti, flussi abilitati con immagini nuove e vecchie e obiettivi di capacità di scrittura/ridimensionamento automatico coerenti.
  2. Controlla lo stato corrente con DescribeTable per regione (Current) o DescribeGlobalTableSettings (solo Legacy API) e correggi la deriva con UpdateTable o UpdateGlobalTableSettings rispettivamente.
  3. Aggiorna Legacy → Corrente deliberatamente tramite il flusso Aggiorna versione della console: è necessaria l'autorizzazione dynamodb:UpdateGlobalTableversion in ogni regione di replica e le repliche continuano a fornire letture e scritture durante l'aggiornamento.
  4. Aggiorna il tuo AWS CLI/SDK a una versione recente prima di gestire le repliche della versione corrente.
  5. Aggiungi repliche a una tabella di base compatibile: le repliche della versione corrente vengono aggiunte con "UpdateTable" (la tabella potrebbe già contenere dati, ma la regione di destinazione non deve già avere una tabella con quel nome); le repliche legacy devono iniziare vuote.
  6. Abilita i flussi prima della creazione dell'eredità. Ogni replica dell'eredità necessita di DynamoDB flussi con immagini nuove e vecchie: verifica con DescribeTable in ogni regione.

Misura in DynoTable

Confronta schema, GSI e impostazioni di flusso tra le regioni prima di creare una tabella globale: cambia con ⌘P, apri ciascuna replica con ⌘K ed espandi i pannelli Indici e Stream uno accanto all'altro.

Stimare il costo di scrittura replicato con il calcolatore dei prezzi. Configura ciascuna regione in Impostazioni → Profili con Connessione di prova. Consulta Connetti a AWS e Installa.

Fonti

Errori correlati

Riferimenti

Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale AWS collegata sopra.

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.