Aspek lain dari bekerja dengan operasi Query di DynamoDB - Amazon DynamoDB

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. Querymengkonsumsi 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.