Membaca dan menulis operasi - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membaca dan menulis operasi

Operasi baca DynamoDB memungkinkan Anda untuk mengambil satu atau beberapa item dari tabel dengan menentukan nilai kunci partisi dan, secara opsional, nilai kunci pengurutan. Menggunakan operasi penulisan DynamoDB, Anda dapat menyisipkan, memperbarui, atau menghapus item dalam tabel. Topik ini menjelaskan konsumsi unit kapasitas untuk dua operasi ini.

Konsumsi unit kapasitas untuk operasi baca

Permintaan baca DynamoDB bisa sangat konsisten, pada akhirnya konsisten, atau bersifat transaksional.

  • Permintaan baca yang sangat konsisten dari item hingga 4 KB memerlukan satu unit baca.

  • Permintaan baca yang akhirnya konsisten dari item hingga 4 KB membutuhkan setengah unit baca.

  • Permintaan baca transaksional dari item hingga 4 KB membutuhkan dua unit baca.

Untuk mempelajari selengkapnya tentang model konsistensi baca DynamoDB, lihat Konsistensi baca.

Ukuran item untuk pembacaan dibulatkan ke kelipatan 4 KB berikutnya. Misalnya, membaca item berukuran 3.500 byte menggunakan throughput yang sama dengan membaca item berukuran 4 KB.

Jika Anda perlu membaca item yang lebih besar dari 4 KB, DynamoDB membutuhkan unit baca tambahan. Jumlah total unit baca yang diperlukan tergantung pada ukuran item, dan apakah Anda menginginkan pembacaan yang konsisten atau sangat konsisten. Misalnya, jika ukuran item Anda adalah 8 KB, Anda memerlukan 2 unit baca untuk mempertahankan satu pembacaan yang sangat konsisten. Anda akan memerlukan 1 unit baca jika Anda memilih pembacaan yang konsisten atau 4 unit baca untuk permintaan baca transaksional.

Daftar berikut menjelaskan bagaimana operasi baca DynamoDB menggunakan unit baca:

  • GetItem: Membaca satu item dari tabel. Untuk menentukan jumlah unit baca yang GetItem akan dikonsumsi, ambil ukuran item dan bulatkan ke batas 4 KB berikutnya. Ini adalah jumlah unit baca yang diperlukan jika Anda menentukan pembacaan yang sangat konsisten. Untuk pembacaan yang akhirnya konsisten, yang merupakan default, bagi angka ini dengan dua.

    Misalnya, jika Anda membaca item berukuran 3,5 KB, DynamoDB membulatkan ukuran item menjadi 4 KB. Jika Anda membaca item berukuran 10 KB, DynamoDB membulatkan ukuran item menjadi 12 KB.

  • BatchGetItem: Membaca hingga 100 item dari satu atau lebih tabel. DynamoDB memproses setiap item dalam batch sebagai permintaan individual. GetItem DynamoDB pertama-tama membulatkan ukuran setiap item ke batas 4 KB berikutnya dan kemudian menghitung ukuran totalnya. Hasilnya belum tentu sama dengan ukuran total semua item. Misalnya, jika BatchGetItem membaca dua item ukuran 1,5 KB dan 6,5 KB, DynamoDB menghitung ukurannya sebagai 12 KB (4 KB + 8 KB). DynamoDB tidak menghitung ukuran sebagai 8 KB (1,5 KB +6,5 KB).

  • Query: Membaca beberapa item yang memiliki nilai kunci partisi yang sama. Semua item yang dikembalikan diperlakukan sebagai operasi baca tunggal, di mana DynamoDB menghitung ukuran total semua item. DynamoDB kemudian membulatkan ukuran ke batas 4 KB berikutnya. Misalnya, kueri Anda mengembalikan 10 item dengan ukuran gabungan 40,8 KB. DynamoDB membulatkan ukuran item untuk operasi menjadi 44 KB. Jika kueri mengembalikan 1500 item masing-masing 64 byte, ukuran kumulatifnya adalah 96 KB.

  • Scan: Membaca semua item dalam tabel. DynamoDB mempertimbangkan ukuran item yang dievaluasi, bukan ukuran item yang dikembalikan melalui pemindaian. Untuk informasi selengkapnya tentang operasi Pemindaian, lihatBekerja dengan pemindaian di DynamoDB.

penting

Jika Anda melakukan operasi baca pada item yang tidak ada, DynamoDB akan tetap menggunakan throughput baca seperti yang diuraikan di atas. Untuk Scan operasiQuery/, Anda masih akan dikenakan biaya throughput baca tambahan berdasarkan konsistensi baca dan jumlah partisi yang dicari untuk melayani permintaan, bahkan jika tidak ada data.

Untuk setiap operasi yang mengembalikan item, Anda dapat meminta subset atribut untuk diambil. Namun, hal ini tidak berdampak pada penghitungan ukuran item. Selain itu, Query dan Scan dapat mengembalikan jumlah item, bukan nilai atribut. Mendapatkan jumlah item menggunakan jumlah unit baca yang sama dan tunduk pada perhitungan ukuran item yang sama. Hal ini karena DynamoDB harus membaca setiap item untuk menambah jumlah.

Konsumsi unit kapasitas untuk operasi tulis

Satu unit tulis mewakili satu tulis untuk item berukuran hingga 1 KB. Jika Anda perlu menulis item yang lebih besar dari 1 KB, DynamoDB perlu mengkonsumsi unit tulis tambahan. Permintaan penulisan transaksional membutuhkan 2 unit tulis untuk melakukan satu penulisan untuk item hingga 1 KB. Jumlah total unit permintaan tulis yang diperlukan bergantung pada ukuran item. Misalnya, jika ukuran item Anda adalah 2 KB, Anda memerlukan 2 unit tulis untuk mempertahankan satu permintaan tulis atau 4 unit tulis untuk permintaan tulis transaksional.

Ukuran item untuk penulisan dibulatkan ke kelipatan 1 KB berikutnya. Misalnya, menulis item berukuran 500 byte memerlukan throughput yang sama dengan menulis item berukuran 1 KB.

Daftar berikut menjelaskan bagaimana operasi penulisan DynamoDB menggunakan unit tulis:

  • PutItem: Menulis satu item ke tabel. Jika item dengan kunci primer yang sama ada dalam tabel, operasi menggantikan item. Untuk menghitung konsumsi throughput yang disediakan, ukuran item yang penting lebih besar dari dua.

  • UpdateItem: Memodifikasi satu item dalam tabel. DynamoDB menganggap ukuran item, seperti yang muncul sebelum dan setelah pembaruan. Throughput tersedia yang dikonsumsi mencerminkan ukuran item yang lebih besar. Bahkan jika Anda memperbarui subset atribut item, masih UpdateItem akan menggunakan jumlah penuh throughput yang disediakan (semakin besar ukuran item “sebelum” dan “setelah”).

  • DeleteItem: Menghapus satu item dari tabel. Konsumsi throughput yang disediakan didasarkan pada ukuran item yang dihapus.

  • BatchWriteItem: Menulis hingga 25 item ke satu atau lebih tabel. DynamoDB memproses setiap item dalam batch sebagai permintaan PutItem atau DeleteItem individu (pembaruan tidak didukung). DynamoDB pertama-tama membulatkan ukuran setiap item ke batas 1 KB berikutnya, dan kemudian menghitung ukuran totalnya. Hasilnya belum tentu sama dengan ukuran total semua item. Misalnya, jika BatchWriteItem menulis dua item ukuran 500-byte dan 3,5 KB, DynamoDB menghitung ukurannya sebagai 5 KB (1 KB+4 KB). DynamoDB tidak menghitung ukuran sebagai 4 KB (500 byte+3,5 KB).

Untuk operasi PutItem, UpdateItem, dan DeleteItem, DynamoDB membulatkan ukuran item hingga 1 KB berikutnya. Misalnya, jika Anda menempatkan atau menghapus item berukuran 1,6 KB, DynamoDB membulatkan ukuran item menjadi 2 KB.

PutItem,UpdateItem, dan DeleteItem operasi memungkinkan penulisan bersyarat, di mana Anda menentukan ekspresi yang harus mengevaluasi ke true agar operasi berhasil. Jika ekspresi bernilai salah, DynamoDB masih menggunakan unit kapasitas tulis dari tabel. Jumlah unit kapasitas tulis yang dikonsumsi tergantung pada ukuran item. Item ini dapat berupa item yang sudah ada di tabel atau yang baru Anda coba buat atau perbarui. Misalnya, katakan bahwa item yang ada adalah 300 KB. Item baru yang Anda coba buat atau perbarui adalah 310 KB. Unit kapasitas tulis yang dikonsumsi adalah 310 KB untuk item baru.