DynamoDB global table version mismatch

TL;DR — DynamoDB'nin iki global-tablo sürümü vardır: 2017.11.29 (Eski) ve 2019.11.21 (Güncel). Bir eski global tablo oluşturmak ya da bir çoğaltma eklemek, üye tablolar gereksinimleri karşılamadığında başarısız olur — eski çoğaltmalar boş olmalı, aynı adı, anahtar şemasını ve eşleşen GSI'leri paylaşmalı, DynamoDB Streams (yeni ve eski görüntüler) etkin olmalı ve tutarlı yazma kapasitesi kullanmalıdır — ve bir sürümün API'lerini diğer sürümün tablolarına yöneltmek doğrudan başarısız olur. Her çoğaltmanın yapılandırmasını hizalayın (ya da Güncel sürüme yükseltin), sonra yeniden deneyin.

Ne anlama gelir

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

Eski sürüm (2017.11.29), bağımsız olarak oluşturulmuş bölgesel tabloları adlandırılmış bir global tabloya diker, bu yüzden üye tabloların tam olarak hizalanmasını gerektirir. Güncel sürüm (2019.11.21), çoğaltmayı tablonun kendisinde yönetir — çoğaltmaları UpdateTable ile eklersiniz — ve TTL, otomatik ölçeklendirme, GSI ve durağan şifreleme ayarlarını çoğaltmalar arasında otomatik olarak eşitler. Sürüm uyuşmazlığı hataları, birleştirdiğiniz tablolar uyuşmadığında ya da araçlar yanlış sürümün API yüzeyiyle konuştuğunda görünür.

Neden olur

  • Bir çoğaltma tablosu boş değil — eski CreateGlobalTable/UpdateGlobalTable API'leri her üye tablonun hiç veri içermemesini gerektirir.
  • Ad veya anahtar şeması uyuşmazlığı — tüm çoğaltmalar aynı tablo adını ve birincil anahtarı paylaşmalıdır.
  • Uyuşmayan GSI'ler — global ikincil indeksler çoğaltmalar arasında adda ve hash/sıralama anahtarında eşleşmelidir.
  • Streams kapalı ya da yanlış görünüm türü — her eski çoğaltmanın, öğenin hem yeni hem de eski görüntüleriyle DynamoDB Streams'in etkin olması gerekir.
  • Tutarsız yazma kapasitesi — AWS, yazma kapasitesi ayarlarının çoğaltma tabloları ve eşleşen ikincil indeksler arasında tutarlı ayarlanmasını gerektirir (otomatik ölçeklendirme önerilir ya da eşit çoğaltılmış yazma kapasitesi birimleri).
  • İki sürümü karıştırmak — eski API'leri (DescribeGlobalTable, UpdateGlobalTable) bir Güncel sürüm tablosuna yöneltmek, çalışmak yerine GlobalTableNotFoundException döndürür.
  • Güncel olmayan AWS CLI/SDK — 2019.11.21 modelinden önceki bir sürüm, UpdateTable tabanlı çoğaltma yönetimini yürütemez.

Nasıl düzeltilir

  1. Üye tabloları tüm bölgeler arasında standartlaştırın — aynı ad ve anahtar şeması, eşleşen GSI'ler, yeni + eski görüntülerle etkin streams ve tutarlı yazma kapasitesi/otomatik ölçeklendirme hedefleri.
  2. Bölge başına DescribeTable (Güncel) ya da DescribeGlobalTableSettings (yalnızca Eski API) ile mevcut durumu kontrol edin ve kaymayı sırasıyla UpdateTable veya UpdateGlobalTableSettings ile düzeltin.
  3. Eski → Güncel yükseltmesini konsolun Sürümü güncelle akışı aracılığıyla bilinçli olarak yapın — her çoğaltma Bölgesinde dynamodb:UpdateGlobalTableversion iznini gerektirir ve çoğaltmalar yükseltme sırasında okuma ve yazma hizmeti vermeye devam eder.
  4. Güncel sürüm çoğaltmalarını yönetmeden önce AWS CLI/SDK'nızı güncel bir sürüme güncelleyin.
  5. Uyumlu bir temel tabloya çoğaltmalar ekleyin — Güncel sürüm çoğaltmaları UpdateTable ile eklenir (tablo zaten veri içerebilir ama hedef Bölgede o adla bir tablo zaten olmamalıdır); eski çoğaltmalar boş başlamalıdır.

Çok bölgeli bir tabloyu yönetiyor ve konsollar arasında atlamadan yapılandırmayı mı karşılaştırmak istiyorsunuz? DynoTable masaüstü uygulaması bölge başına bağlanır, böylece her çoğaltmanın şemasını ve indekslerini tek bir yerde gözle inceleyebilirsiniz.

DynoTable’da ölç

Genel bir tablo oluşturmadan önce Bölgelerdeki şema, GSI'leri ve akış ayarlarını karşılaştırın; ⌘P ile geçiş yapın, her bir kopyayı ⌘K ile açın ve Dizinler ve Akış panellerini yan yana genişletin.

Yinelenen yazma maliyetini pricing calculator ile tahmin edin. Her Bölgeyi Ayarlar → Profiller altında Bağlantıyı Test Et ile yapılandırın. Bkz. Connect to AWS ve Install.

Kaynaklar

İlgili hatalar

Kaynaklar

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.