Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aspek lain dari bekerja dengan operasi Query di DynamoDB
Bagian ini mencakup aspek tambahan dari operasi Query DynamoDB, termasuk membatasi ukuran hasil, menghitung item yang dipindai vs. dikembalikan, memantau konsumsi kapasitas baca, dan mengontrol konsistensi baca.
Membatasi jumlah item dalam set hasil
Dengan operasi Query
, Anda dapat membatasi jumlah item yang dibaca. Untuk melakukannya, tetapkan parameter Limit
ke jumlah maksimum item yang Anda inginkan.
Misalnya, anggaplah bahwa Anda Query
tabel, dengan nilai Limit
dari 6
, dan tanpa ekspresi filter. Hasil Query
berisi enam item pertama dari tabel yang cocok dengan ekspresi kondisi kunci dari permintaan.
Sekarang anggap bahwa Anda menambahkan ekspresi filter ke Query
. Dalam kasus ini, DynamoDB membaca hingga enam item, lalu hanya mengembalikan item yang cocok dengan ekspresi filter. Hasil Query
akhir berisi enam item atau lebih sedikit, meskipun lebih banyak item akan cocok dengan ekspresi filter jika DynamoDB terus membaca lebih banyak item.
Menghitung item dalam hasil
Selain item yang sesuai dengan kriteria Anda, respons Query
berisi elemen berikut:
-
ScannedCount
— Jumlah item yang cocok dengan ekspresi kondisi kunci sebelum ekspresi filter (jika ada) diterapkan. -
Count
— Jumlah item yang tersisa setelah ekspresi filter (jika ada) diterapkan.
catatan
Jika Anda tidak menggunakan ekspresi filter, ScannedCount
dan Count
memiliki nilai yang sama.
Jika ukuran set hasil Query
lebih besar dari 1 MB, ScannedCount
dan Count
mewakili hanya jumlah parsial dari total item. Anda harus melakukan beberapa operasi Query
untuk mengambil semua hasil (lihat Hasil query tabel paginasi di DynamoDB).
Setiap respons Query
berisi ScannedCount
dan Count
untuk item yang diproses oleh permintaan Query
khusus. Untuk mendapatkan total keseluruhan untuk semua permintaan Query
, Anda dapat menyimpan penghitungan ScannedCount
dan Count
.
Unit kapasitas yang digunakan oleh kueri
Anda dapat melakukan Query
tabel atau indeks sekunder apa pun, selama Anda memberikan nama atribut kunci partisi dan satu nilai untuk atribut tersebut. Query
mengembalikan semua item dengan nilai kunci partisi tersebut. Secara opsional, Anda dapat memberikan atribut kunci urutan dan menggunakan operator perbandingan untuk menyaring hasil pencarian. Query
APIoperasi mengkonsumsi unit kapasitas baca, sebagai berikut.
Jika Anda Query ... |
DynamoDB menggunakan unit kapasitas baca dari... |
---|---|
Tabel | Kapasitas baca yang ditetapkan tabel. |
Indeks sekunder global | Kapasitas baca yang ditetapkan indeks. |
Indeks sekunder lokal | Kapasitas baca yang ditetapkan tabel dasar. |
Secara default, operasi Query
tidak menampilkan data tentang berapa banyak kapasitas baca yang digunakan. Namun, Anda dapat menentukan parameter ReturnConsumedCapacity
dalam sebuah permintaan Query
untuk mendapatkan informasi ini. Berikut ini adalah pengaturan yang valid untuk ReturnConsumedCapacity
:
-
NONE
— Tidak ada penggunaan data kapasitas yang ditampilkan. (Ini menjadi opsi default.) -
TOTAL
— Respons mencakup jumlah agregat unit kapasitas baca yang digunakan. -
INDEXES
— Respons menunjukkan jumlah agregat unit kapasitas baca yang digunakan, beserta dengan kapasitas yang digunakan untuk setiap tabel dan indeks yang diakses.
DynamoDB menghitung jumlah unit kapasitas baca yang dikonsumsi berdasarkan jumlah item dan ukuran item tersebut, bukan pada jumlah data yang dikembalikan ke aplikasi. Dengan alasan ini, jumlah unit kapasitas yang digunakan adalah sama, entah Anda meminta semua atribut (perilaku default) atau hanya beberapa dari atribut tersebut (menggunakan ekspresi proyeksi). Jumlahnya juga sama apakah Anda menggunakan ekspresi filter atau tidak. Query
mengkonsumsi unit kapasitas baca minimum untuk melakukan satu pembacaan yang sangat konsisten per detik, atau dua pembacaan yang konsisten per detik untuk item hingga 4 KB. Jika Anda perlu membaca item yang lebih besar dari 4 KB, DynamoDB memerlukan unit permintaan baca tambahan. Tabel kosong dan tabel yang sangat besar yang memiliki jumlah kunci partisi yang jarang mungkin melihat beberapa tambahan RCUs dibebankan di luar jumlah data yang ditanyakan. Ini mencakup biaya melayani Query
permintaan, bahkan jika tidak ada data.
Konsistensi baca untuk kueri
Operasi Query
melakukan bacaan akhir konsisten, secara default. Ini berarti bahwa hasil Query
mungkin tidak mencerminkan perubahan karena operasi PutItem
atau UpdateItem
baru saja selesai. Untuk informasi selengkapnya, lihat DynamoDB membaca konsistensi.
Jika Anda memerlukan bacaan sangat konsisten, atur parameter ConsistentRead
ke true
dalam permintaan Query
.