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 regionsEski 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/UpdateGlobalTableAPI'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,
UpdateTabletabanlı çoğaltma yönetimini yürütemez.
Nasıl düzeltilir
- Ü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.
- Bölge başına
DescribeTable(Güncel) ya daDescribeGlobalTableSettings(yalnızca Eski API) ile mevcut durumu kontrol edin ve kaymayı sırasıylaUpdateTableveyaUpdateGlobalTableSettingsile düzeltin. - 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:UpdateGlobalTableversioniznini gerektirir ve çoğaltmalar yükseltme sırasında okuma ve yazma hizmeti vermeye devam eder. - Güncel sürüm çoğaltmalarını yönetmeden önce AWS CLI/SDK'nızı güncel bir sürüme güncelleyin.
- Uyumlu bir temel tabloya çoğaltmalar ekleyin — Güncel sürüm çoğaltmaları
UpdateTableile 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
- DynamoDB global tables versions (2026-07-13 tarihinde doğrulandı)
- CreateGlobalTable — Amazon DynamoDB API Reference (2026-07-13 tarihinde doğrulandı)
İlgili hatalar
- ResourceInUseException — bir çoğaltma tablosu/bölgesi zaten kullanımda.
- ReplicaNotFoundException — başvurulan bir çoğaltma bölgesi yok.
- Öğrenin: DynamoDB global tables
Kaynaklar
- CreateGlobalTable — Amazon DynamoDB API Reference
- UpdateGlobalTable — Amazon DynamoDB API Reference
- UpdateTable — Amazon DynamoDB API Reference
- DynamoDB global tables versions (determining and upgrading) — Amazon DynamoDB Developer Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.