DynamoDB ile Cassandra
Amazon DynamoDB ve Apache Cassandra, verileri anahtara göre bölümleyen (partition) ve yatay ölçeklenen dağıtık NoSQL veritabanlarıdır ve Amazon'un 2007 Dynamo makalesinde ortak bir atayı paylaşırlar. Ancak operasyonel yelpazenin zıt uçlarında yer alırlar: DynamoDB tümüyle yönetilen, sunucusuz bir AWS hizmetiyken, Cassandra kendinizin dağıtıp yönetici olmayan bir eşler arası halka olarak çalıştırdığınız açık kaynaklı bir yazılımdır.
DynamoDB mi Cassandra mı doğru tercih?
Her ikisi de anahtara göre bölümleyen yatay ölçeklenebilir NoSQL depolarıdır. İşletilecek bir küme olmadan AWS üzerinde tümüyle yönetilen, sunucusuz bir veritabanı ve kullanım başına faturalama istiyorsanız DynamoDB'yi seçin. Kendi donanımınızda ya da bulutlar genelinde çalışan — açık kaynaklı, kendi kendine yönetilen, yönetici olmayan bir halka — sorgu başına ayarlanabilir tutarlılık ve tedarikçi bağımlılığı olmadan istiyorsanız Cassandra'yı seçin.
Bir bakışta DynamoDB ile Cassandra
| Özellik | DynamoDB | Apache Cassandra |
|---|---|---|
| Veri modeli | Anahtar-değer ve belge; şemasız JSON benzeri öğeler | Bölümlenmiş geniş sütun deposu; bölümler halinde gruplanmış satırlar |
| Sorgu dili | Düşük seviyeli API işlemleri artı PartiQL (SQL uyumlu bir sorgu dili) | CQL (Cassandra Query Language), SQL benzeri bir dil |
| Bölümleme / anahtarlar | Bir bileşik birincil anahtar için isteğe bağlı sıralama anahtarıyla bölüm (hash) anahtarı | Birincil anahtar = bir veya daha fazla bölüm-anahtarı sütunu artı sıfır veya daha fazla kümeleme sütunu |
| İkincil indeksler | Global ikincil indeksler (GSI) ve yerel ikincil indeksler (LSI) | Yerel ikincil indeksler (2i) ve depolamaya bağlı indeksleme (SAI); materyalleştirilmiş görünümler |
| Tutarlılık | Varsayılan olarak nihai tutarlı; istek başına güçlü tutarlı okumalar mevcut | İşlem başına ayarlanabilir (ör. ONE, QUORUM, ALL), anahtar alanı başına çoğaltma faktörüne karşı |
| Ölçeklendirme / operasyon | Tümüyle yönetilen ve sunucusuz; AWS depolama, ölçeklendirme, yamalama ve onarımı yönetir | Sıradan donanım üzerinde dağıttığınız kendi kendine yönetilen yönetici olmayan halka (veya yönetilen bir Cassandra uyumlu hizmet) |
| Çok bölge | Global Tables — çok Bölgeli, aktif-aktif çoğaltma | Anahtar alanı başına yapılandırılan çok veri merkezli çoğaltma |
| Fiyatlandırma / operasyon modeli | Kullanım başına ödeme: talep üzerine (istek başına) veya sağlanan kapasite; çalıştırılacak altyapı yok | Ücretsiz, açık kaynaklı yazılım (Apache License 2.0); altyapıyı siz sağlar, çalıştırır ve öderiniz |
| En uygun kullanım | Otomatik ölçeklenen sıfır operasyonlu NoSQL isteyen AWS üzerindeki ekipler | Sorgu başına tutarlılık kontrolüyle açık kaynaklı, kendi barındırılan, buluttan bağımsız bir halka isteyen ekipler |
DynamoDB'nin daha iyi tercih olduğu durumlar
- Sıfır operasyonel yük istiyorsunuz. DynamoDB tümüyle yönetilen ve sunucusuzdur — boyutlandırılacak, yamalanacak, onarılacak veya yeniden dengelenecek bir küme yoktur. AWS depolama ve ölçeklendirmeyi arka planda yönetir.
- Zaten AWS üzerindesiniz. IAM, Lambda ve AWS ekosisteminin geri kalanıyla yerel olarak entegre olur ve Global Tables, veri merkezleri kurmadan aktif-aktif çok Bölgeli çoğaltma sağlar.
- Trafiğiniz ani yükselen veya öngörülemez. Talep üzerine kapasite istek başına fatura keser, bu nedenle boşta düğümler sağlayıp çalıştırmak yerine kullandığınız kadar ödersiniz.
- Yönetilen dayanıklılık ve yedekleme istiyorsunuz. Zaman noktası kurtarma, talep üzerine yedeklemeler ve çapraz Bölge çoğaltma, çalıştırdığınız altyapı değil yapılandırmadır.
Cassandra'nın daha iyi tercih olduğu durumlar
- Açık kaynaklı, buluttan bağımsız bir veritabanına ihtiyacınız var. Cassandra Apache lisanslıdır ve her yerde çalışır — şirket içinde, birden çok bulutta veya karma — tek bir sağlayıcının yönetilen hizmetine tedarikçi bağımlılığı olmadan.
- İnce ayarlı, işlem başına tutarlılık kontrolü istiyorsunuz. Ayarlanabilir tutarlılığı, her okuma ve yazmanın anahtar alanı çoğaltma faktörüne karşı bir seviye (ONE, QUORUM veya ALL gibi) seçmesini sağlar ve sorgu başına gecikmeyi tutarlılıkla değiş tokuş eder.
- Tek arıza noktası olmayan yönetici olmayan bir mimari istiyorsunuz. Her düğüm eşittir ve okuma ile yazmalara hizmet edebilir ve küme, tek tek düğümler veya tüm veri merkezleri çevrimdışı olsa bile kullanılabilir kalır.
- Bu kontrol ve taşınabilirlik karşılığında kümeyi işletmeye (veya yönetilen bir sağlayıcıya ödeme yapmaya) istekliyseniz.
DynamoDB ile çalışmak
DynamoDB'yi seçtiğinizde, DynoTable tablolarınızla doğrudan çalışmak için bir masaüstü istemcidir. Standart AWS kimlik bilgisi zincirinizi okur, bu nedenle zaten kullandığınız aynı bölgelere ve tablolara bağlanır — verileriniz DynamoDB'de kalır ve taşınacak hiçbir şey yoktur.
Düz bir görsel istemci yalnızca gezinip tararken, DynoTable ilişkisel biçimli sorguları — JOIN'ler, GROUP BY ve toplamalar — DynamoDB'nin erişim deseni kuralları içinde kalarak ifade eden bir SQL Workbench ve kendi AWS Bedrock kimlik bilgilerinizle çalışan bir yapay zeka asistanı ekler. Anahtar koşullarını, filtreleri ve güncelleme ifadelerini elle yazıyorsanız, ücretsiz DynamoDB Expression Builder hiçbir şey kurmadan SDK, CLI ve PartiQL için doğru sözdizimini üretir.
DynoTable kapalı kaynaklı ticari bir uygulamadır; bu sayfa nasıl oluşturulduğunu değil ne yaptığını açıklar.
SSS
DynamoDB, Cassandra'ya mı dayanıyor? Hayır. Hiçbiri diğerinin üzerine kurulu değildir. Her ikisi de Amazon'un 2007 Dynamo makalesine kadar uzanır — Cassandra, o makalenin ortak yazarlarından biri tarafından Facebook'ta oluşturuldu ve ayrıca Google'ın Bigtable'ından yararlanır — ancak DynamoDB ayrı, tümüyle yönetilen bir AWS hizmeti ve Cassandra bağımsız bir açık kaynaklı projedir. Kodu değil tasarım soyunu paylaşırlar.
Ölçek ve maliyet için Cassandra mı DynamoDB mi? Her ikisi de çok büyük iş yüklerine yatay ölçeklenir. Gerçek fark işletim modelidir: DynamoDB'nin maliyeti kullanım başına ödemedir (talep üzerine istekler veya sağlanan kapasite) ve çalıştırılacak sunucu yoktur, bu nedenle harcamayı operasyondan kullanıma kaydırır. Cassandra'nın yazılımı ücretsizdir, ancak altyapıyı — düğümler, depolama ve halkayı çalıştıracak ekip — siz öder ve işletirsiniz — bu nedenle toplam maliyeti büyük ölçüde ölçeğe ve nasıl yönetildiğine bağlıdır.
Cassandra, DynamoDB gibi SQL destekler mi? Her ikisi de tam ilişkisel SQL yerine SQL benzeri erişim sunar. Cassandra, SQL benzeri bir dil olan CQL'i kullanır ve DynamoDB, düşük seviyeli API'sinin yanında SQL uyumlu bir sorgu dili olan PartiQL'i sunar. Hiçbiri çapraz bölüm JOIN'lerini yerel olarak sağlamaz; her ikisi de tek bölüm erişim desenleri etrafında tasarlanmıştır.
İlgili
- Erişim desenlerini DynamoDB yöntemiyle modellemek için DynamoDB bölüm anahtarlarının nasıl çalıştığını ve tek tablo tasarımını öğrenin.
- DynamoDB tutarlılık kılavuzunda okuma modlarını ve talep üzerine ile sağlanan sayfasında faturalamayı karşılaştırın.
- Ücretsiz DynamoDB Expression Builder ile sorguları hızlıca oluşturun, ardından tablolarınızla yerel olarak çalışmak için DynoTable'ı indirin.
En son 2026-07-12 tarihinde doğrulandı. Apache Cassandra, Apache Software Foundation'ın ticari markasıdır; burada yalnızca tanımlama amacıyla belirtilmiştir.