DynamoDB ile Amazon RDS
DynamoDB ve Amazon RDS'in ikisi de yönetilen AWS veritabanlarıdır, ancak iki farklı dünyayı temsil ederler. DynamoDB, bilinen erişim desenleri ve yatay ölçek etrafında tasarlanmış sunucusuz bir NoSQL anahtar-değer ve belge veritabanıdır. Amazon RDS ise örnek tabanlı ilişkisel motorları — MySQL, PostgreSQL, MariaDB, SQL Server, Oracle ve Db2 — tam SQL, join'ler ve zorunlu şemalarla çalıştıran yönetilen bir hizmettir.
DynamoDB mi RDS mi kullanmalısınız?
Sunucusuz ölçeklenme istediğiniz ve yönetilecek örnek olmasını istemediğiniz, öngörülebilir ve anahtar tabanlı erişime sahip yüksek ölçekli operasyonel iş yükleri için DynamoDB'yi seçin. Tanıdık bir ilişkisel motor üzerinde tam SQL'e — join'ler, isteğe bağlı sorgular, normalleştirilmiş tablolar arası işlemler — ihtiyacınız olduğunda ve veriniz okuma çoğaltmalarıyla dikey olarak ölçekleyebileceğiniz bir örneğe sığdığında Amazon RDS'i seçin. Temel değiş tokuş, sorgu esnekliğine karşı elini pek bulaştırmadan yönetilen ölçektir.
Bir bakışta DynamoDB ile Amazon RDS
| Özellik | DynamoDB | Amazon RDS |
|---|---|---|
| Veri modeli | NoSQL anahtar-değer ve belge; esnek öğe başına şema, 400 KB'ye kadar öğeler | İlişkisel — seçtiğiniz motor üzerinde zorunlu bir şemaya sahip tablolar, satırlar ve sütunlar |
| Sorgu dili | Yerel API (GetItem, Query, Scan) artı PartiQL, SQL uyumlu bir dil | Temel motorun tam SQL'i (MySQL, PostgreSQL, MariaDB, SQL Server, Oracle, Db2) |
| Join'ler & ilişkiler | JOIN operatörü yok; AWS erişim desenleri etrafında denormalize etmenizi önerir | Tablolar arasında tam ilişkisel join'ler, dış anahtarlar ve kısıtlamalar |
| İndeksler | Alternatif bir anahtar üzerinde global ve yerel ikincil indeksler | Motorun indeks tipleri (B-tree, hash ve motora özel), ayrıca bazı motorlarda kısmi/ifade indeksleri |
| Tutarlılık | Varsayılan olarak nihai tutarlı; istek başına güçlü tutarlı okumalar; ACID işlemleri | Varsayılan olarak güçlü tutarlılık; tam çok ifadeli ACID işlemleri |
| Ölçeklenme modeli | Yatay — otomatik bölümleme; sunucusuz on-demand yukarı ve aşağı (sıfıra kadar) ölçeklenir | Dikey — yeniden boyutlandırdığınız sağlanan bir örnek, artı okuma ölçeklendirme için okuma çoğaltmaları |
| Sağlama / operasyon | Sunucusuz; boyutlandırılacak veya yamalanacak örnek yok | Örnek tabanlı; sınıfı ve depolamayı siz seçersiniz, AWS yamalama, yedekleme ve devreyi yönetir (Multi-AZ isteğe bağlı) |
| Fiyatlandırma modeli | İstek başına ödeme (on-demand) veya sağlanan kapasite artı depolama; boştayken sıfıra ölçeklenir | DB sınıfı için örnek-saati artı depolama (ve bazı seçeneklerde I/O), örnek çalışırken faturalandırılır |
| En uygun iş yükleri | Bilinen anahtar erişimine sahip yüksek ölçekli operasyonel uygulamalar (sepetler, oturumlar, olaylar, skor tabloları) | Join'ler, isteğe bağlı sorgular ve güçlü veri bütünlüğü gerektiren ilişkisel ve analitik iş yükleri |
DynamoDB ne zaman daha iyi seçim
- Erişim desenleriniz biliniyor ve anahtar tabanlı. Anahtarları okumalarınız etrafında tasarlamak, yüzlerce ya da yüz milyonlarca kullanıcınız olsun tutarlı tek haneli milisaniye gecikmesi verir.
- Örnek olmayan bir sunucusuz istiyorsunuz. On-demand kapasitede boyutlandırılacak veya yamalanacak hiçbir şey yoktur ve boştayken sıfıra ölçeklenir — gece gündüz çalışan bir örnek yok.
- Yazmaları yatay ölçeklendirmeniz gerekiyor. DynamoDB otomatik olarak bölümler; tek bir ilişkisel birincili ölçeklendirmek için ekleyeceğiniz gibi sharding araçları eklemezsiniz.
- İş yükünüz öğe odaklı (profiller, oturumlar, sepetler, olaylar), birbirine join'lenmiş tablolardan oluşan bir ağ değil.
Amazon RDS ne zaman daha iyi seçim
- Tam SQL ve join'lere ihtiyacınız var. RDS, normalleştirilmiş tablolar arasında join'ler, toplamalar, dış anahtarlar ve isteğe bağlı sorgularla gerçek ilişkisel motorları çalıştırır.
- Erişim desenleriniz gelişmeye devam ediyor. Esnek sorgulamaya sahip ilişkisel bir şema, anahtarları yeniden tasarlamadan yeni sorulara uyum sağlar.
- Tanıdık bir motor istiyorsunuz. MySQL, PostgreSQL, MariaDB, SQL Server, Oracle ve Db2, ekiplerin mevcut becerileri, araçları ve SQL'i yeniden kullanmasını sağlar.
- Veri kümeniz dikey ölçeklenmiş bir örneğe okuma çoğaltmalarıyla sığıyor ve istikrarlı, sorgu yoğun trafik her zaman açık bir örneğe uyuyor.
DynamoDB ile çalışmak
DynamoDB bölünmenin doğru tarafıysa, 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. RDS'ten gelen ekipler için önemlisi, SQL Workbench'i ilişkisel biçimli sorguları — join'ler, GROUP BY, toplamalar — DynamoDB'nin kendi Query/Scan işlemlerine derleyerek DynamoDB'nin erişim deseni kuralları içinde ifade eder ve yapay zeka asistanı kendi AWS Bedrock kimlik bilgilerinizle çalışır.
SQL yazmayı özlüyorsanız, SQL for DynamoDB ve PartiQL vs SQL kılavuzları nelerin karşılık geldiğini ve nelerin gelmediğini açıklar; DynamoDB JOIN kılavuzu ise yerel bir join olmadan ilişkilerin nasıl modelleneceğini kapsar. Ücretsiz DynamoDB Expression Builder doğru 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
DynamoDB, Amazon RDS'in yerini alabilir mi?
Bazı iş yükleri için, evet. Erişim desenleriniz öngörülebilir ve anahtar tabanlıysa, DynamoDB bir RDS örneğinin yerini alabilir ve ölçeklendirme ile yamalama işinin çoğunu ortadan kaldırabilir. Join'lere, isteğe bağlı ilişkisel sorgulara ya da sürekli değişen bir sorgu yüzeyine — RDS'in güçlü yönleri — dayandığınız yerlerde kötü bir seçimdir. Birçok ekip ikisini birden çalıştırır: ilişkisel işler için RDS, yüksek verimli anahtar erişimi için DynamoDB.
DynamoDB, RDS gibi SQL ve join destekliyor mu?
DynamoDB, SELECT, INSERT, UPDATE ve DELETE için SQL uyumlu bir dil olan PartiQL'i destekler, ancak JOIN operatörü yoktur; AWS bunun yerine denormalize etmenizi önerir. RDS'in arkasındaki motorlar, tablolar arası join'ler dahil tam SQL'i destekler. Bir join olmadan ilişkilerin nasıl modelleneceği için DynamoDB'de join'ler'e bakın.
DynamoDB, RDS'ten daha mı ucuz?
İş yüküne bağlıdır, bu yüzden ikisini de modelleyin. DynamoDB, istek başına (veya sağlanan kapasite) artı depolama faturalandırır ve boştayken sıfıra ölçeklenir; bu da ani sıçramalı veya düşük tabanlı trafiğe uygundur. RDS, çalışan bir sınıf için örnek-saati artı depolama faturalandırır; bu da istikrarlı, sorgu yoğun iş yükleri için daha uygun maliyetli olabilir. Karar vermeden önce gerçek erişim desenlerinize göre hesaplayın.
İlgili
- SQL for DynamoDB, PartiQL vs SQL ve DynamoDB'de join'ler'i öğrenin.
- Veriyi erişim desenleri etrafında modellemek için DynamoDB'de veri nasıl modellenir'e bakın.
- Ücretsiz DynamoDB Expression Builder ile sorguları hızlıca oluşturun.
- macOS, Windows veya Linux için DynoTable'ı indirin.
Son doğrulama 2026-07-12, resmi AWS DynamoDB ve Amazon RDS dokümantasyonuna göre yapıldı. Amazon RDS ve DynamoDB, Amazon Web Services hizmetleridir; burada yalnızca tanımlama amacıyla anılmıştır.