DynamoDB Akışları ve Genel Tablolar
Akışlarla öğe düzeyindeki değişiklikleri gerçek zamanlı işleyecek ve dünya genelinde düşük gecikmeli okumalar için verileri genel tablolarla Bölgeler arasında çoğaltacaksınız.
DynamoDB Akışları ve Genel Tablolar, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
DynamoDB Streams: Değişiklik Verisi Yakalama
DynamoDB Streams, bir DynamoDB tablosundaki öğe düzeyindeki değişikliklerin zaman sıralı bir dizisini yakalar. Bir öğe oluşturulduğunda, güncellendiğinde veya silindiğinde DynamoDB, değişikliği açıklayan bir akış kaydı yazar. Akış kayıtları yazıldıktan sonra 24 saat boyunca kullanılabilir.
Streams, DynamoDB ile olay güdümlü mimarilerin temelini oluşturur. Yaygın kullanım alanları arasında gerçek zamanlı işleme için Lambda işlevlerini tetikleme, denetim günlüğü tutma, verileri başka bir depoya çoğaltma veya veriler değiştiğinde önbelleği geçersiz kılma bulunur.
# Enable a DynamoDB Stream on an existing table
aws dynamodb update-table \
--table-name Orders \
--stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGESAkış Görünümü Türleri
Bir akışı etkinleştirirken, her akış kaydının hangi verileri içereceğini belirleyen bir StreamViewType seçersiniz:
- KEYS_ONLY: değiştirilen öğenin yalnızca birincil anahtar öznitelikleri
- NEW_IMAGE: değişiklikten sonra göründüğü hâliyle öğenin tamamı
- OLD_IMAGE: değişiklikten önce göründüğü hâliyle öğenin tamamı
- NEW_AND_OLD_IMAGES: öğenin hem değişiklik öncesindeki hem de değişiklik sonrasındaki durumu
Denetim için (neyin değiştiğini görmek amacıyla) NEW_AND_OLD_IMAGES, çoğaltma veya önbellek güncellemeleri için NEW_IMAGE, yalnızca hangi öğenin değiştiğini bilmeniz ve güncel durumu ayrıca almanız gerektiğinde ise KEYS_ONLY seçin.
Akışları Lambda ile İşleme
Bir DynamoDB akışını tüketmenin en yaygın yolu AWS Lambda kullanmaktır. Lambda, akışı yoklar ve işlevinizi bir akış kaydı grubuyla çağırır. Lambda, yoklama, denetim noktası oluşturma ve yeniden deneme işlemlerini otomatik olarak yönetir.
Temel yapılandırma parametreleri şunlardır: grup boyutu (çağrı başına kayıt sayısı, en fazla 10.000), hatada ikiye bölme (hatalı kaydı ayırmak için başarısız grubu bölme) ve başarısızlık hedefi (işlenemeyen kayıtlar için SQS veya SNS). Lambda her parçada paralel olarak okuma yapar; bu nedenle paralellik, akıştaki parça sayısına eşittir.
# Add Lambda as a stream trigger via CLI
aws lambda create-event-source-mapping \
--function-name process-orders-stream \
--event-source-arn arn:aws:dynamodb:us-east-1:123456789:table/Orders/stream/2026-06-20T00:00:00.000 \
--starting-position LATEST \
--batch-size 100 \
--bisect-batch-on-function-errorAkış Kullanım Alanları
SAA-C03 sınavında DynamoDB Streams için pratik kullanım alanları:
- Bölgeler arası çoğaltma: Lambda akışı okur ve değişiklikleri başka bir Region'daki tabloya yazar (Global Tables ortaya çıkmadan önce standart model buydu)
- ElastiCache geçersiz kılma: bir DynamoDB öğesi değiştiğinde Lambda, karşılık gelen önbellek anahtarını geçersiz kılar veya günceller
- Arama dizini eşzamanlaması: DynamoDB verilerinde tam metin aramasını etkinleştirmek için öğe değişikliklerini OpenSearch Service'e gönderme
- Denetim günlüğü tutma: mevzuat gereklilikleri amacıyla her değişikliği S3'e veya bir uyumluluk deposuna yazma
- Olay güdümlü mikro hizmetler: belirli öğeler değiştiğinde aşağı akış hizmetlerini tetikleme
DynamoDB Global Tables: Nedir ve Neden Kullanılır
DynamoDB Global Tables, tamamen yönetilen, çok bölgeli ve çok etkin çoğaltma sağlar. Her Region tablonun tam bir kopyasına sahip olur ve tüm kopyalara aynı anda yazılabilir. Herhangi bir Region'daki yazma işlemleri, yaklaşık 1 saniye içinde diğer tüm Region'lara eşzamansız olarak çoğaltılır.
Global Tables iki kritik senaryoyu mümkün kılar: dünya genelinde dağıtılmış kullanıcılar için düşük gecikmeli okumalar ve yazmalar (her kullanıcı en yakın Region'a yazıp oradan okur) ve çok bölgeli etkin-etkin olağanüstü durum kurtarma (uygulama, son çoğaltmadan sonra veri kaybı olmadan çalışan herhangi bir Region'da çalışmaya devam eder).
Global Tables Oluşturma
Bir Global Table oluşturmak için önce DynamoDB Streams etkinleştirilmiş bir tablo oluşturursunuz (NEW_AND_OLD_IMAGES, Global Tables tarafından dahili olarak gereklidir). Ardından çoğaltma Region'larını eklersiniz. AWS, eklenen her Region'da bir çoğaltma tablosu oluşturur ve verileri çift yönlü olarak eşzamanlamaya başlar.
Global Tables (Sürüm 2019.11.21) güncel standarttır ve Otomatik Ölçeklendirmeli İhtiyaca Göre veya Sağlanan kapasiteyi destekler. Her Region çoğaltmasının tablo adı aynı olmalıdır. Bir Global Table'a istediğiniz zaman Region ekleyebilir veya tablodan Region kaldırabilirsiniz.
# Create a global table replica in eu-west-1
aws dynamodb create-global-table \
--global-table-name GlobalOrders \
--replication-group RegionName=us-east-1 RegionName=eu-west-1Global Tables'ta Çakışma Çözümleme
Global Tables birden fazla Region'da aynı anda yazmaya izin verdiği için, iki Region yaklaşık aynı anda aynı öğeyi güncellerse yazma çakışmaları oluşabilir. DynamoDB, akış kayıtlarında depolanan zaman damgalarına dayalı son yazan kazanır yaklaşımıyla çakışmaları çözer.
Uygulamada bu, aynı zamana yakın gerçekleşen iki çakışmalı güncellemenin birinin kazanması, diğerinin üzerine yazılmasıyla sonuçlanacağı anlamına gelir. Uygulamalar, farklı Region'lardan aynı öğeye eşzamanlı yazma yapılmasını önleyecek şekilde tasarlanmalıdır. Çakışmaların sık yaşandığı kullanım alanlarında, belirli bir kullanıcı veya varlığa ait tüm yazma işlemlerini tek bir ana Region'a yönlendirmeyi değerlendirin.
Global Tables ve Kapasiteyle İlgili Hususlar
Global Tables ile bir Region'daki yazma işlemleri otomatik olarak diğer tüm Region'lara çoğaltılır. Çoğaltılan her yazma işlemi hedef Region'larda WCU tüketir—3 Region'ınız varsa tek bir yazma işlemi, tüm Region'larda yaklaşık 3× WCU maliyetine neden olur. Kapasiteyi buna göre planlayın.
Her Region'daki okumalar yerel çoğaltmanın RCU'larını tüketir. Nihai olarak tutarlı okumalar (varsayılan) yerel verileri kullanırken güçlü tutarlılığa sahip okumalar Region'lar arasında desteklenmez. Çoğu küresel uygulama için Region'lar arasında yaklaşık 1 saniye içindeki nihai tutarlılık kabul edilebilir.
Global Tables ve Bölgeler Arası Okuma Kopyaları (RDS)
SAA-C03 sınavında önemli bir ayrım vardır: DynamoDB Global Tables çok etkindir (tüm Region'lar hem okumaları HEM DE yazmaları kabul eder), RDS bölgeler arası Read Replicas ise salt okunurdur (bir çoğaltmayı yazılabilir hâle getirmek için yalnızca yükseltebilirsiniz; bu da çoğaltmayı keser).
Şunlara ihtiyacınız varsa DynamoDB Global Tables kullanın: çok bölgeli etkin-etkin yazmalar, dünya genelinde 100 ms'nin altında erişim veya NoSQL verileri için sıfır RPO'lu çok bölgeli olağanüstü durum kurtarma. Şunlara ihtiyacınız varsa RDS bölgeler arası çoğaltmalarını kullanın: ilişkisel bir veritabanı için küresel okuma ölçeklenebilirliği veya yük devretme amacıyla yükseltebileceğiniz hazır bir olağanüstü durum kurtarma yedeği.
Streams + Lambda Mimari Modelleri
Streams ve Lambda'yı birleştiren yaygın mimari modeller:
- Fan-out: Lambda akışı okur ve SNS'ye yayımlar; SNS de bağımsız tüketiciler için birden fazla SQS kuyruğuna dağıtım yapar
- Toplama: Lambda değişiklikleri biriktirir ve ayrı bir DynamoDB tablosundaki toplu toplamları günceller (ör. günlük sipariş sayısı)
- Gecikmeli yazma önbelleği: her akış olayında Lambda, okumaların önbellekten sunulabilmesi için ElastiCache'i günceller
- Bildirim: akış, Lambda'yı tetikler; Lambda da belirli bir koşul değiştiğinde SES e-postası veya SNS anlık bildirimi gönderir
DynamoDB Kinesis Data Streams Entegrasyonu
DynamoDB Streams'e alternatif olarak, öğe düzeyindeki değişiklikleri bir Amazon Kinesis Data Stream'e yönlendirebilirsiniz. Bu seçenek, daha uzun süreli saklamaya (yerel DynamoDB Streams için 24 saate karşılık 1 yıla kadar), daha fazla tüketiciye veya Kinesis'ten okuyan hizmetlerle entegrasyona ihtiyaç duyduğunuzda kullanışlıdır.
Kinesis Data Streams entegrasyonu tablo başına etkinleştirilir ve DynamoDB Streams'in yerine geçmez—ikisini aynı anda etkinleştirebilirsiniz. Bu, DynamoDB değişiklik olayı pipeline'ını özel çoğaltma mantığı gerektirmeden genişleten daha yeni bir özelliktir (2021).
# Enable Kinesis Data Streams for a DynamoDB table
aws dynamodb enable-kinesis-streaming-destination \
--table-name Orders \
--stream-arn arn:aws:kinesis:us-east-1:123456789:stream/ddb-changesKısa Kontrol
Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: DynamoDB Streams, öğe düzeyindeki değişiklikleri 24 saat boyunca yakalar ve olay odaklı işleme için Lambda ile entegre olur; Global Tables, son yazanın kazandığı çakışma çözümüyle birden çok etkin Region arasında çoğaltma sağlar; Kinesis Data Streams entegrasyonu, saklama süresini 24 saatlik akış penceresinin ötesine taşır. Sırada Route 53 hosted bölgelerini ve DNS kayıt türlerini inceleyeceğiz.
Sıkça Sorulan Sorular
“DynamoDB Akışları ve Genel Tablolar” dersi ücretsiz mi?
Evet — “DynamoDB Akışları ve Genel Tablolar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“DynamoDB Akışları ve Genel Tablolar” dersinde ne öğreneceğim?
Akışlarla öğe düzeyindeki değişiklikleri gerçek zamanlı işleyecek ve dünya genelinde düşük gecikmeli okumalar için verileri genel tablolarla Bölgeler arasında çoğaltacaksınız. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“DynamoDB Akışları ve Genel Tablolar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tablolar, Öğeler ve Birincil Anahtarlar
- Sağlanan ve İsteğe Bağlı Kapasite
- Genel İkincil Dizinler ve Yerel İkincil Dizinler
- DynamoDB Akışları ve Genel Tablolar