DynamoDB dizinleri, akışlar ve optimizasyon
AWS'de Veri Depolarını Kullanma
Dunieski Otano
AWS Solutions Architect
Yapılamayan sorgu
Tablo: userId (bölüm anahtarı), orderDate (sıralama anahtarı)
İhtiyaç: E-postaya göre sipariş bul
Sorun: Anahtar olmayan alanlarda sorgu yok
Çözüm: Global Secondary Index
Dizinler birden çok erişim desenini sağlar
Global Secondary Index (GSI)
Temel tablodan farklı bölüm anahtarı
Tablo oluşturulduktan sonra da eklenebilir
Yalnızca sonunda tutarlı okuma
Kullanım: Birincil anahtar olmayan alanlarda sorgu
Local Secondary Index (LSI)
Aynı bölüm anahtarı
, farklı sıralama anahtarı
Tablo oluşturulurken tanımlanmalıdır
Güçlü tutarlı okumayı destekler
Kullanım: Bölüm içinde alternatif sıralamalar
GSI vs LSI - ne zaman hangisi
GSI
: Farklı bölüm anahtarı, her zaman eklenir, sonunda tutarlılık
LSI
: Aynı bölüm anahtarı, tablo oluşturulurken eklenir, güçlü tutarlılık
En yaygın: Esnek erişim desenleri için GSI
DynamoDB için veri serileştirme
Sorun
: DynamoDB Python nesnelerini saklamaz
Çözüm
: JSON'a ya da ikili veriye serileştir
JSON
: Basit veri (dict, list) - json.dumps()
Base64
: İkili veri (görseller, jetonlar)
Değişiklik verisi yakalama için DynamoDB Streams
Streams
: Tüm tablo değişikliklerinin sıralı günlüğü
Yakalar: Ekleme, güncelleme, silme
Kullanım alanları: Denetim günlükleri, çoğaltma, tetikleyiciler
Gerçek zamanlı tepki için Lambda ile işle
Otomatik sona erme için Time-to-Live
TTL
: Süre dolunca öğeleri otomatik siler
TTL alanına Unix zaman damgası koyun
Uygun: Oturumlar, geçici jetonlar, önbellek
TTL silmeleri için ek maliyet yok
Dizin yansıtma türleri ve sorgu performansı
KEYS_ONLY
: Yalnızca anahtarlar, en küçük boyut
INCLUDE
: Anahtarlar + belirtilen alanlar
ALL
: Tüm alanlar, en büyük boyut, ek getirime gerek yok
Ödünleşim: Depolama maliyeti vs sorgu performansı
Toplu işlemler ve işlemsellik
BatchGetItem
: En fazla 100 öğe okur, 16 MB sınır
BatchWriteItem
: En fazla 25 öğe yazar
TransactWriteItems
: En fazla 100 öğe üzerinde ACID
Kullanım: Verimlilik (toplu) veya tutarlılık (işlemler)
Haydi pratik yapalım!
AWS'de Veri Depolarını Kullanma
Preparing Video For Download...