DynamoDB ile Google Cloud Spanner
DynamoDB ve Google Cloud Spanner'ın ikisi de dağıtık bir küme genelinde yatay olarak ölçeklenir, ancak zıt temel bahisler yaparlar. DynamoDB, bilinen erişim desenleri etrafında tasarlanmış sunucusuz bir AWS NoSQL anahtar-değer ve belge deposudur. Spanner ise Google'ın TrueTime saatini kullanarak, bölgeler arasında bile tam SQL ve güçlü (dışsal tutarlı) işlemleri koruyan küresel dağıtık bir ilişkisel veritabanıdır.
DynamoDB mi Spanner mı kullanmalısınız?
AWS üzerindeyseniz ve istek başına ödeme faturalandırması ile anahtar tabanlı erişim için öngörülebilir gecikmeye sahip sunucusuz bir NoSQL deposu istiyorsanız DynamoDB'yi seçin. Küresel ölçekte ilişkisel SQL'e, join'lere ve güçlü işlemsel tutarlılığa ihtiyacınız varsa — hâlâ ilişkisel biri gibi davranan, yatay olarak ölçeklenebilir bir veritabanı — Google Cloud Spanner'ı seçin. Belirleyici eksen, ölçekte ilişkisel garantilere karşı sunucusuz NoSQL sadeliğidir.
Bir bakışta DynamoDB ile Spanner
| Özellik | DynamoDB | Google Cloud Spanner |
|---|---|---|
| Veri modeli | NoSQL anahtar-değer ve belge; esnek öğe başına şema, 400 KB'ye kadar öğeler | İlişkisel — tablolar, satırlar, sütunlar ve şemalar (ayrıca graph, anahtar-değer ve arama yeteneklerini sunar) |
| Sorgu dili | Yerel API (GetItem, Query, Scan) artı PartiQL, SQL uyumlu bir dil | İki lehçede tam SQL — GoogleSQL ve PostgreSQL uyumlu bir lehçe |
| Join'ler & ilişkiler | JOIN operatörü yok; AWS erişim desenleri etrafında denormalize etmenizi önerir | Tam ilişkisel join'ler, dış anahtarlar ve iç içe geçmiş (interleaved) tablolar |
| Tutarlılık | Varsayılan olarak nihai tutarlı; istek başına güçlü tutarlı okumalar (bir Bölge içinde) | Varsayılan olarak dışsal (güçlü) tutarlılık, bölgeler arası dahil, TrueTime saatiyle desteklenir |
| İşlemler | Bir Bölge içinde birden fazla öğe genelinde ACID işlemleri | Bölgeler arası dahil küresel tutarlı ACID işlemleri |
| Ölçeklenme modeli | Otomatik bölümleme; sunucusuz on-demand veya sağlanan kapasite | Otomatik ölçeklendirmeli sağlanan işlem gücü (düğümler / işlem birimleri) ile yatay ölçeklenme; depolama ayrı ölçeklenir |
| Çoklu bölge | Global Tables — çoklu Bölge, aktif-aktif çoğaltma (Bölgeler arasında nihai tutarlı) | Bölgeler arasında güçlü tutarlılığı koruyan çoklu bölge yapılandırmaları |
| Fiyatlandırma / operasyon modeli | İstek başına ödeme (on-demand) veya sağlanan kapasite artı depolama; sunucusuz, yalnızca AWS | Sağlanan işlem kapasitesi artı depolama (ve ağ); düğüm/işlem-birimi tabanlı, yalnızca GCP |
| En uygun iş yükleri | Tutarlı düşük gecikme gerektiren, bilinen anahtar erişimine sahip yüksek ölçekli operasyonel uygulamalar | Ölçekte güçlü tutarlılık, SQL ve join gerektiren küresel ilişkisel sistemler |
DynamoDB ne zaman daha iyi seçim
- AWS üzerindesiniz ve sunucusuz NoSQL istiyorsunuz. On-demand kapasitede sağlanacak hiçbir şey yoktur, trafiğe göre ölçeklenir ve boştayken sıfıra ölçeklenir.
- Erişim desenleriniz biliniyor ve anahtar tabanlı. DynamoDB'nin bölüm/sıralama anahtarı modeli, anahtarlar okumalarınız etrafında tasarlandığında tutarlı tek haneli milisaniye gecikmesi verir.
- İlişkisel join'lere veya küresel güçlü tutarlılığa ihtiyacınız yok. Denormalize edilmiş, anahtar odaklı bir model uyuyorsa, kullanmayacağınız garantiler için ödeme yapmaktan kaçınırsınız.
- Yerel AWS entegrasyonu istiyorsunuz — IAM, Lambda ve Streams ile.
Spanner ne zaman daha iyi seçim
- Küresel ölçekte ilişkisel SQL'e ihtiyacınız var. Spanner, yatay olarak ölçeklenirken join'leri, şemaları ve tam SQL'i korur — ölçeklendirmek için ilişkisel semantikten vazgeçmezsiniz.
- Bölgeler arasında güçlü tutarlılığa ihtiyacınız var. TrueTime destekli dışsal tutarlılık, çoklu bölge işlemlerinin sanki sıralanmış gibi davranmasını sağlar; DynamoDB'nin Global Tables'ı (Bölgeler arasında nihai tutarlı) bunu sağlamaz.
- İş yükünüz ilişkisel ve sorgu esnek. Normalleştirilmiş tablolar arası isteğe bağlı join'ler ve gelişen sorgular Spanner'ın modeline uyar.
- GCP üzerindesiniz ve yüksek kullanılabilirlik SLA'larına sahip yönetilen küresel veritabanını istiyorsunuz.
DynamoDB ile çalışmak
DynamoDB uyuyorsa, DynoTable macOS, Windows ve Linux üzerinde onun için yerel bir masaüstü istemcisidir. Standart AWS kimlik bilgisi zincirinizi okur, böylece veriniz DynamoDB'de kalır ve taşınacak hiçbir şey olmaz. Spanner'ın SQL'ine alışkın ekipler için, SQL Workbench'i ilişkisel biçimli sorguları — join'ler, GROUP BY, toplamalar — DynamoDB'nin Query/Scan'ine derleyerek DynamoDB'nin erişim deseni kuralları içinde ifade eder ve yapay zeka asistanı kendi AWS Bedrock kimlik bilgilerinizle çalışır.
SQL for DynamoDB ve PartiQL vs SQL kılavuzları SQL'den nelerin karşılık geldiğini açıklar ve ücretsiz DynamoDB Expression Builder anahtar koşullarını, filtreleri ve güncelleme ifadelerini SDK, CLI ve PartiQL biçiminde üretir. DynoTable kapalı kaynaklı ticari bir uygulamadır; bu sayfa ne yaptığını anlatır, nasıl inşa edildiğini değil.
SSS
Spanner, DynamoDB gibi bir NoSQL veritabanı mı?
Hayır. Spanner, tesadüfen dağıtık bir sistem gibi yatay olarak ölçeklenen, tam SQL'e, join'lere ve şemalara sahip ilişkisel bir veritabanıdır. DynamoDB ise JOIN operatörü olmayan bir NoSQL anahtar-değer ve belge deposudur. Spanner'ın ayırt edici iddiası, ilişkisel, güçlü tutarlı semantiği küresel ölçekte korumaktır.
DynamoDB, Spanner gibi küresel güçlü tutarlılık sunar mı?
Aynı şekilde değil. DynamoDB, tek bir Bölge içinde güçlü tutarlı okumalar sağlar ve Global Tables Bölgeler arasında çoğaltır ancak aralarında nihai tutarlılıkla. Spanner, bölgeler arasında bile işlemler için dışsal (güçlü) tutarlılık sağlamak üzere TrueTime'ı kullanır.
DynamoDB, Spanner'ın yerini alabilir mi?
Yalnızca ilişkisel SQL'e veya küresel güçlü tutarlılığa ihtiyacınız olmadığında. Erişiminiz anahtar tabanlıysa ve denormalize edilmiş bir model uyuyorsa, DynamoDB daha basit ve sunucusuzdur. Join'lere, isteğe bağlı SQL'e ya da güçlü tutarlı bölgeler arası işlemlere dayanıyorsanız, bunlar Spanner'ın amacıdır — onu değiştirmek, verinizi DynamoDB'nin anahtarları etrafında yeniden modellemek ve bu garantilerden vazgeçmek demektir.
İlgili
- DynamoDB tutarlılığı ve çoklu Bölge Global Tables hakkında bilgi edinin.
- SQL for DynamoDB ve PartiQL vs SQL'de nelerin karşılık geldiğine bakın.
- Ücretsiz DynamoDB Expression Builder ile sorguları hızlıca oluşturun.
- DynamoDB tablolarınızla çalışmak için DynoTable'ı indirin.
Son doğrulama 2026-07-12, resmi AWS DynamoDB Developer Guide ve Google Cloud Spanner dokümantasyonuna göre yapıldı. Google Cloud Spanner, Google LLC'nin ticari markasıdır; burada yalnızca tanımlama amacıyla anılmıştır.