AWS CLI ile DynamoDB BatchWriteItem

aws dynamodb batch-write-item, tek bir komutta 25'e kadar öğe ekler veya siler (toplam 16 MB, öğe başına 400 KB). Yazmalar --request-items içinde tablo → PutRequest/DeleteRequest girdileri eşlemesi olarak DynamoDB JSON biçiminde yer alır — ve çıktıdaki UnprocessedItems'ı kontrol etmelisiniz, çünkü toplu istek bir bütün olarak atomik değildir.

Code

aws dynamodb batch-write-item \
  --request-items '{
    "Music": [
      {"PutRequest": {"Item": {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, "AlbumTitle": {"S": "Danzon"}, "Year": {"N": "1994"}}}},
      {"PutRequest": {"Item": {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "A Mis Abuelos"}, "AlbumTitle": {"S": "Danzon"}, "Year": {"N": "1994"}}}},
      {"DeleteRequest": {"Key": {"Artist": {"S": "Ella Fitzgerald"}, "SongTitle": {"S": "Misty"}}}}
    ]
  }'

Her şey yerine oturduğunda, çıktının kalan eşlemesi boştur:

{
    "UnprocessedItems": {}
}

Açıklama

  • --request-items — tablo adı → en fazla 25 PutRequest/DeleteRequest girdisinden oluşan bir dizi şeklinde bir eşleme (bir komut birden çok tabloya yayılabilir). Her PutRequest.Item tam birincil anahtara ihtiyaç duyar; her DeleteRequest.Key yalnızca anahtardır. Değerler DynamoDB JSON'dur — sayılar N altında dizedir.
  • Bir işlem değildir — her put/delete tek tek atomiktir, ancak toplu istek bir bütün olarak değildir. Ya hep ya hiç mi gerekiyor? transact-write-items'ı kullanın.
  • UnprocessedItems — CLI, kısmi bir toplu isteği otomatik olarak yeniden denemez. Eşleme boş değilse (genellikle kısıtlama nedeniyle), komutu tam olarak o eşlemeyle --request-items olarak yeniden çalıştırın — zaten doğru biçimde — denemeler arasında geri çekilerek.
  • Güncelleme yok, koşul yokbatch-write-item, update-item, --condition-expression veya --return-values ifade edemez; mevcut bir anahtara yapılan bir put, öğenin tamamının sessizce yerine geçer. Yinelenen anahtarlar, aynı öğede put+delete, 25'ten fazla istek, 400 KB'ı aşan bir öğe ya da toplamda 16 MB'ı aşma; her biri DynamoDB'nin toplu isteğin tamamını reddetmesine neden olur.
  • İpucu: eşlemeyi bir dosyada tutun ve --request-items file://writes.json olarak geçirin — 25 öğeyi satır içinde kabuk tırnaklamak ıstıraptır.

Görsel olarak yapın

İç içe DynamoDB JSON'unu kabuk tırnakları içinde elle yazmak hataya açıktır. DynamoDB Expression Builder, türlü değer eşlemeleri oluşturur ve çalıştırmaya hazır CLI komutlarını kopyalar; öğe boyutu hesaplayıcı ise her öğeyi 400 KB üst sınırına karşı kontrol eder.

Öğeleri bir grafik arayüzde (GUI) toplu eklemek, düzenlemek ve silmek için — JSON kaçışı yerine CSV/JSON içe aktarma — DynoTable'ı indirin.

İlgili örnekler

References

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Console olmadan DynamoDB ile çalışın

DynoTable, DynamoDB için hızlı bir masaüstü istemcisidir — tablolara göz atın, SQL tarzı sorgular çalıştırın ve item'ları yerel olarak düzenleyin.