DynamoDB Item Tabanlı Eylemler: GetItem, PutItem, UpdateItem, DeleteItem
DynamoDB'nin API'si üç aileye ayrılır: bir item üzerinde birincil anahtarıyla çalışan
item tabanlı eylemler, tek bir partition içinde bir aralığı okuyan Query ve her
şeyi okuyan Scan. Bu kılavuz ilk aile — en sık kullandığınız dört işlem:
GetItem, PutItem, UpdateItem, DeleteItem. Bunlar DynamoDB'nin sunduğu en ucuz,
en hızlı çağrılardır ve aralarındaki ayrımları doğru anlamak (özellikle Put vs
Update) bir sınıf kazara veri kaybı hatasını önler.
DynamoDB'nin item tabanlı işlemleri nelerdir?
DynamoDB'nin item tabanlı işlemleri, tek bir item'a tam birincil anahtarıyla erişen dört çağrıdır: GetItem onu okur, PutItem onu oluşturur veya tamamen değiştirir, UpdateItem belirli attribute'ları yerinde değiştirir ve DeleteItem onu kaldırır. Her biri tam olarak bir item'ı hedefler ve bu da onları en hızlı, en ucuz çağrılar yapar — çok sayıda item okuyan Query ve Scan'in aksine.
GetItem— bir item'ı tam birincil anahtarıyla okur.PutItem— bir item'ı oluşturur veya tamamen değiştirir.UpdateItem— bir item'ı oluşturur veya yerinde belirli attribute'larını değiştirir.DeleteItem— bir item'ı tam birincil anahtarıyla siler.- Dördü de tam birincil anahtarı gerektirir (partition key, tablo varsa sort key dahil) — tam olarak bir item'a erişirler.
PutItemitem'ın tamamını üzerine yazar;UpdateItemcerrahidir — bunları karıştırmak attribute'ların sessizce kaybolma şeklidir.
Belirleyici özellik: tek item, tam anahtar
Her item tabanlı eylem tam birincil anahtarıyla tek bir item'ı hedefler. Bunları hızlı ve ucuz yapan da budur — DynamoDB partition key'i hash'ler, doğrudan item'a gider, biter. Filtreleme yok, tarama yok. Tam anahtarı bilmiyorsanız, bunlar doğru araç değildir; Query ve Scan bunun içindir.
Diyelim ki USER#<id> ile anahtarlanmış kullanıcı hesapları çalıştırıyorsunuz:
PK: USER#204 email, displayName, plan, createdAtUSER#204üzerindeGetItem→ doğrudan o kullanıcı.USER#204üzerindeDeleteItem→ o kullanıcıyı kaldırır.
İkisi de kesin anahtarı gerektirir. Anahtar yoksa, item tabanlı eylem yok.
PutItem vs UpdateItem — sizi ısıran ayrım
İçselleştirmeye değer ayrım budur:
PutItemitem'ın tamamını yazar.USER#204zaten varsa ve yalnızca{email, displayName}ilePutItemyaparsanız, mevcutplanvecreatedAtattribute'ları gider — bir put item'ın tamamını değiştirir, birleştirmez.UpdateItemyalnızca adını verdiğiniz şeyi değiştirir. BirSET email = …içerenUpdateItemdiğer her attribute'a dokunmaz ve item yoksa onu oluşturur (bir upsert).
Pratik kural: mevcut bir item'ı değiştirmek için UpdateItem'a başvurun ve
PutItem'ı yalnızca gerçekten "bu item'ı tam yeni durum olarak yaz" anlamına geldiğinde
kullanın. Hem PutItem hem de UpdateItem bir
koşul ifadesi kabul eder, böylece yazma
işlemini koşullu yapabilirsiniz ("yalnızca zaten yoksa").
DynoTable'da item tabanlı eylemler
Bu aksiyonların arkasındaki ham API çağrılarını görmek ister misiniz? Altta yatan ifadeleri ve türlü değer haritalarını DynamoDB expression builder'da birleştirin ve düz JSON bir item'ı API'nin türlü formatına DynamoDB JSON dönüştürücü ile dönüştürün.
DynoTable'da aynı çalışma görseldir: ızgarada bir item açıp okuyun (bir GetItem),
attribute'ları düzenleyip işleyin (bir UpdateItem), bir satır ekleyin veya değiştirin
(bir PutItem) ya da birini silin — aynı anda bir item.

Tuzaklar + sonraki adımlar
PutItemitem'ın tamamını değiştirir — gerisini kaybetmeden birkaç alanı değiştirmek içinUpdateItemkullanın.- Tam birincil anahtarı bilmeniz gerekir — anahtar yoksa item eylemi değil, Query/Scan.
- Aynı anda çok item mı? Bunları tek tek döngüye sokmayın — batch işlemleri onları daha az gidiş dönüşe katlar.
- Eski/yeni değeri geri mi istiyorsunuz? Bir ardıl
GetItemyerineReturnValuesayarlayın. - İlgili: query vs scan çok okuma tarafını kapsar.
API kodu yazmadan item'ları okumak, yazmak ve silmek mi istiyorsunuz? DynoTable'ı indirin ve tablolarınızla doğrudan çalışın.


