AWS CLI ile DynamoDB Scan

aws dynamodb scan otomatik sayfalar; bu hem kullanışlıdır hem de hasarı ölçmek için kullanacağınız tek sayının varsayılan olarak yanlış olması demektir. İşlemden bütünüyle kaçınmanın ne zaman doğru olduğu için bkz. Query ile Scan.

Kod

aws dynamodb scan \
  --table-name 'Music' \
  --filter-expression '#filter0 >= :filterValue0' \
  --expression-attribute-names '{"#filter0":"Year"}' \
  --expression-attribute-values '{":filterValue0":{"N":"2010"}}'

--return-consumed-capacity taramayı değil, tek bir sayfayı bildirir

Kurgu, her biri kabaca 3,9 KB olan 600 şarkıdan oluşuyor ve bunların 8'i eşleşiyor. O komuta --return-consumed-capacity TOTAL ekleyin, CLI şunu yazdırır:

{ "Count": 8, "ScannedCount": 600, "CU": 128.5 }

Tarama gerçekte üç sayfa boyunca 284,5 okuma birimine mal oldu. Count ve ScannedCount üçünün üzerinden toplandı; ConsumedCapacity ise ilkinden alındı ve gerisi atıldı. Bu bir hatadan çok bildirilmiş bir kuraldır — botocore'un DynamoDB sayfalayıcı yapılandırması Count ve ScannedCount'u sonuç anahtarı, ConsumedCapacity'yi ise toplanmayan anahtar olarak listeler.

Belirti, iş değişmezken rakamın değişmesidir. Aynı tablo, okunan aynı 600 öğe, bir fazla bayrak:

--page-size 50  ->  { "Count": 8, "ScannedCount": 600, "CU": 24.0 }

Bir tabloyu CLI taramasından boyutlandırıyorsanız, sayfaları --page-size artı --starting-token ile kendiniz toplayın ya da kapasiteyi CloudWatch'tan okuyun.

--max-items taramayı durdurmaz

--max-items 3 ucuz bir örneklem gibi okunur. Değildir:

--max-items 3  ->  { "Count": 8, "ScannedCount": 600 }

CLI, yeterli eşleşme bulana kadar sayfa istemeye devam etti — seçici bir filtreyle bu, tablonun tamamı demekti — sonra yazdırılan listeyi kırptı. Kendi devam belirteci bunu açıkça söylüyor:

{"ExclusiveStartKey": {"Artist": {"S": "Arturo Sandoval"},
 "SongTitle": {"S": "Cubano Chant 0541"}}, "boto_truncate_amount": 3}

boto_truncate_amount istemci tarafında bir sayaçtır. DynamoDB'nin ne okuduğunu sınırlamak için, her alttaki isteğe API'nin Limit'ini koyan --page-size'ı kullanın ve --starting-token ile devam edin:

aws dynamodb scan \
  --table-name 'Music' \
  --page-size 500 \
  --max-items 100 \
  --starting-token "$NEXT_TOKEN"

2026-07-28 tarihinde aws-cli/2.36.9 ile DynamoDB Local'a (amazon/dynamodb-local) karşı ölçüldü. Yukarıdaki JSON, CLI'ın kendi çıktısıdır; genişlik için --query ile yeniden biçimlendirilmiştir.

Açıklama

  • --filter-expression okumadan sonra çalışır, dolayısıyla çıktıyı küçültür, faturayı değil. #filter0, Year ayrılmış bir sözcük olduğu için --expression-attribute-names üzerinden Year'a takma ad koyar.
  • --expression-attribute-values sayının iki kez tırnaklanmasını ister: JSON'un çevresinde kabuk tırnakları ve değerin kendisi bir JSON string'i olarak. İçteki tırnakları düşürmek DynamoDB'ye hiç ulaşmaz — CLI onu yerelde Invalid type for parameter ExpressionAttributeValues.:v.N, value: 2010, type: <class 'int'>, valid types: <class 'str'> diyerek reddeder.
  • API çağrısını değiştiren bayrak --page-size'dır. Alttaki her istekte Limit olur ve sayfa başına değerlendirilen öğe sayısını sınırlar. Sayfalama ailesinin geri kalanı (--max-items, --starting-token) CLI'ın kendi çıktısını yönetmesidir.
  • Paralel tarama, işçi başına --segment N --total-segments M ister ve her işçi kendi --starting-token'ını tutar. Size duvar saati kazandırır, kapasite değil.

Görsel olarak yapın

DynamoDB Expression Builder, filtreyi ve iki JSON haritasını kabuk için önceden kaçışlanmış olarak verir; bu da CLI ifadelerini DynamoDB daha görmeden bozan tırnaklama katmanını ortadan kaldırır.

Tabloları bir GUI'de, filtrelenmiş ve sayfalanmış ızgaralarla keşfetmek için terminalden körlemesine taramak yerine DynoTable'ı indirin.

İlgili kılavuzlar

Kaynaklar

Bu isteği görsel olarak oluştur

Bu operasyonu ücretsiz DynamoDB Sorgu Oluşturucuda kur — anahtar koşulu, filtre, index, Limit, sıralama yönü ve bir sayfalama döngüsü — ve çalıştırılabilir bir SDK v3, CLI veya boto3 programı olarak geri kopyala.

DynamoDB Sorgu Oluşturucuyu aç

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.