Cara memperkirakan konsumsi kapasitas di Amazon Keyspaces - Amazon Keyspaces (untuk Apache Cassandra)

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

Cara memperkirakan konsumsi kapasitas di Amazon Keyspaces

Saat Anda membaca atau menulis data di Amazon Keyspaces, jumlah unit permintaan baca/tulis (RRUS/WRU) atau unit kapasitas baca/tulis (RCUS/WCU) yang dikonsumsi kueri Anda bergantung pada jumlah total data yang harus diproses Amazon Keyspaces untuk menjalankan kueri. Dalam beberapa kasus, data yang dikembalikan ke klien dapat menjadi bagian dari data yang harus dibaca Amazon Keyspaces untuk memproses kueri. Untuk penulisan bersyarat, Amazon Keyspaces menggunakan kapasitas tulis meskipun pemeriksaan bersyarat gagal.

Untuk memperkirakan jumlah total data yang diproses untuk permintaan, Anda harus mempertimbangkan ukuran baris yang dikodekan dan jumlah total baris. Topik ini mencakup beberapa contoh skenario umum dan pola akses untuk menunjukkan bagaimana Amazon Keyspaces memproses kueri dan bagaimana hal itu memengaruhi konsumsi kapasitas. Anda dapat mengikuti contoh untuk memperkirakan persyaratan kapasitas tabel Anda dan menggunakan Amazon CloudWatch untuk mengamati konsumsi kapasitas baca dan tulis untuk kasus penggunaan ini.

Untuk informasi tentang cara menghitung ukuran baris yang dikodekan di Amazon Keyspaces, lihat. Menghitung ukuran baris di Amazon Keyspaces

Kueri rentang

Untuk melihat konsumsi kapasitas baca dari kueri rentang, kami menggunakan tabel contoh berikut yang menggunakan mode kapasitas sesuai permintaan.

pk1 | pk2 | pk3 | ck1 | ck2 | ck3 | value -----+-----+-----+-----+-----+-----+------- a | b | 1 | a | b | 50 | <any value that results in a row size larger than 4KB> a | b | 1 | a | b | 60 | value_1 a | b | 1 | a | b | 70 | <any value that results in a row size larger than 4KB>

Sekarang jalankan query berikut pada tabel ini.

SELECT * FROM amazon_keyspaces.example_table_1 WHERE pk1='a' AND pk2='b' AND pk3=1 AND ck1='a' AND ck2='b' AND ck3 > 50 AND ck3 < 70;

Anda menerima set hasil berikut dari kueri dan operasi baca yang dilakukan oleh Amazon Keyspaces menggunakan 2 RRU dalam mode konsistensi. LOCAL_QUORUM

pk1 | pk2 | pk3 | ck1 | ck2 | ck3 | value -----+-----+-----+-----+-----+-----+------- a | b | 1 | a | b | 60 | value_1

Amazon Keyspaces menggunakan 2 RRU untuk mengevaluasi baris dengan nilai ck3=60 dan ck3=70 untuk memproses kueri. Namun, Amazon Keyspaces hanya mengembalikan baris di mana WHERE kondisi yang ditentukan dalam kueri adalah true, yang merupakan baris dengan nilai. ck3=60 Untuk mengevaluasi rentang yang ditentukan dalam kueri, Amazon Keyspaces membaca baris yang cocok dengan batas atas rentang, dalam hal inick3 = 70, tetapi tidak mengembalikan baris itu dalam hasilnya. Konsumsi kapasitas baca didasarkan pada data yang dibaca saat memproses kueri, bukan pada data yang dikembalikan.

Batasi kueri

Saat memproses kueri yang menggunakan LIMIT klausa, Amazon Keyspaces membaca baris hingga ukuran halaman maksimum saat mencoba mencocokkan kondisi yang ditentukan dalam kueri. Jika Amazon Keyspaces tidak dapat menemukan data pencocokan yang memadai yang memenuhi LIMIT nilai pada halaman pertama, satu atau beberapa panggilan berhalaman mungkin diperlukan. Untuk melanjutkan pembacaan di halaman berikutnya, Anda dapat menggunakan token pagination. Ukuran halaman default adalah 1MB. Untuk mengurangi kapasitas baca saat menggunakan LIMIT klausa, Anda dapat mengurangi ukuran halaman. Untuk informasi lebih lanjut tentang pagination, lihatHasil paginasi di Amazon Keyspaces.

Sebagai contoh, mari kita lihat query berikut.

SELECT * FROM my_table WHERE partition_key=1234 LIMIT 1;”

Jika Anda tidak mengatur ukuran halaman, Amazon Keyspaces membaca 1MB data meskipun hanya mengembalikan 1 baris kepada Anda. Agar Amazon Keyspaces hanya membaca satu baris, Anda dapat mengatur ukuran halaman ke 1 untuk kueri ini. Dalam hal ini, Amazon Keyspaces hanya akan membaca satu baris asalkan Anda tidak memiliki baris kedaluwarsa berdasarkan ime-to-live pengaturan T atau stempel waktu sisi klien. Untuk mengurangi kapasitas baca, sebaiknya atur ukuran halaman Anda sama dengan LIMIT nilai untuk mengurangi jumlah data yang dibaca Amazon Keyspaces.

Pemindaian tabel

Kueri yang menghasilkan pemindaian tabel lengkap, misalnya kueri menggunakan ALLOW FILTERING opsi, adalah contoh lain dari kueri yang memproses lebih banyak pembacaan daripada apa yang mereka kembalikan sebagai hasil. Dan konsumsi kapasitas baca didasarkan pada data yang dibaca, bukan data yang dikembalikan.

Untuk contoh pemindaian tabel kami menggunakan tabel contoh berikut dalam mode kapasitas sesuai permintaan.

pk | ck | value ---+----+--------- pk | 10 | <any value that results in a row size larger than 4KB> pk | 20 | value_1 pk | 30 | <any value that results in a row size larger than 4KB>

Amazon Keyspaces membuat tabel dalam mode kapasitas sesuai permintaan dengan empat partisi secara default. Dalam tabel contoh ini, semua data disimpan dalam satu partisi dan tiga partisi sisanya kosong.

Sekarang jalankan query berikut di atas meja.

SELECT * from amazon_keyspaces.example_table_2;

Kueri ini menghasilkan operasi pemindaian tabel di mana Amazon Keyspaces memindai keempat partisi tabel dan menggunakan 6 RRU dalam mode konsistensi. LOCAL_QUORUM Pertama, Amazon Keyspaces mengkonsumsi 3 RRU untuk membaca tiga baris dengan. pk=‘pk’ Kemudian, Amazon Keyspaces menggunakan 3 RRU tambahan untuk memindai tiga partisi kosong tabel. Karena kueri ini menghasilkan pemindaian tabel, Amazon Keyspaces memindai semua partisi dalam tabel, termasuk partisi tanpa data.

Transaksi ringan

Transaksi ringan (LWT) memungkinkan Anda melakukan operasi penulisan bersyarat terhadap data tabel Anda. Operasi pembaruan bersyarat berguna saat memasukkan, memperbarui, dan menghapus catatan berdasarkan kondisi yang mengevaluasi keadaan saat ini.

Di Amazon Keyspaces, semua operasi penulisan memerlukan konsistensi LOCAL_QUORUM dan tidak ada biaya tambahan untuk menggunakan LWT. Perbedaan untuk LWT adalah bahwa ketika pemeriksaan kondisi LWT menghasilkan FALSE, ia mengkonsumsi unit kapasitas tulis. Jumlah unit kapasitas tulis yang dikonsumsi tergantung pada ukuran baris. Jika ukuran baris adalah 2 KB, penulisan bersyarat yang gagal mengkonsumsi dua unit kapasitas tulis. Jika baris saat ini tidak ada dalam tabel, operasi mengkonsumsi satu unit kapasitas tulis. Dengan memantau ConditionalCheckFailed metrik di dalam CloudWatch Anda dapat menentukan kapasitas yang dikonsumsi oleh kegagalan pemeriksaan kondisi LWT.

Perkirakan konsumsi kapasitas baca dan tulis dengan Amazon CloudWatch

Untuk memperkirakan dan memantau konsumsi kapasitas baca dan tulis, Anda dapat menggunakan CloudWatch dasbor. Untuk informasi selengkapnya tentang metrik yang tersedia untuk Amazon Keyspaces, lihat. Metrik dan dimensi Amazon Keyspaces

Untuk memantau unit kapasitas baca dan tulis yang dikonsumsi oleh pernyataan tertentu dengan CloudWatch, Anda dapat mengikuti langkah-langkah ini.

  1. Buat tabel baru dengan data sampel

  2. Konfigurasikan CloudWatch dasbor Amazon Keyspaces untuk tabel. Untuk memulai, Anda dapat menggunakan template dasbor yang tersedia di Github.

  3. Jalankan pernyataan CQL, misalnya menggunakan ALLOW FILTERING opsi, dan periksa unit kapasitas baca yang dikonsumsi untuk pemindaian tabel lengkap di dasbor.