Menyisipkan, memodifikasi, atau menghapus beberapa baris data dari satu atau beberapa tabel sekaligus.
BatchWriteRow adalah operasi komposit yang menggabungkan panggilan PutRow, UpdateRow, dan DeleteRow dalam satu permintaan. Setiap suboperasi dieksekusi dan ditagih secara independen, serta memiliki entri respons tersendiri.
Dibandingkan dengan memanggil PutRow, UpdateRow, atau DeleteRow secara terpisah, BatchWriteRow mengurangi latensi round-trip dan meningkatkan throughput tulis.
Sintaks permintaan
message BatchWriteRowRequest {
repeated TableInBatchWriteRowRequest tables = 1;
optional string transaction_id = 2;
optional bool is_atomic = 3;
}
|
Parameter |
Type |
Wajib |
Deskripsi |
|
tables |
Ya |
Baris-baris tempat operasi batch write dilakukan. Permintaan gagal jika kondisi berikut ada:
|
|
|
transaction_id |
string |
Tidak |
ID transaksi lokal. Wajib ditentukan saat menggunakan fitur transaksi lokal untuk menulis data secara batch. |
|
is_atomic |
bool |
Tidak |
Menentukan apakah operasi batch write dieksekusi sebagai operasi atomik. |
Sintaks respons
BatchWriteRow dapat mengalami kegagalan parsial di tingkat baris meskipun tetap mengembalikan HTTP 200. Periksa is_ok pada setiap entri RowInBatchWriteRowResponse untuk memastikan hasil setiap baris dan tangani kegagalan tersebut secara sesuai.
message BatchWriteRowResponse {
repeated TableInBatchWriteRowResponse tables = 1;
}
|
Parameter |
Type |
Deskripsi |
|
tables |
Hasil setiap operasi dalam setiap tabel, termasuk status eksekusi, kode kesalahan, dan CUs yang dikonsumsi. Urutan entri TableInBatchWriteRowResponse sesuai dengan urutan entri TableInBatchWriteRowRequest dalam permintaan. Di dalam setiap tabel, urutan entri RowInBatchWriteRowResponse dalam put_rows, update_rows, dan delete_rows sesuai dengan urutan entri PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest, dan DeleteRowInBatchWriteRowRequest yang bersesuaian. Jika operasi baris gagal, |
Gunakan SDK Tablestore
SDK Tablestore berikut mendukung operasi batch write:
Tablestore SDK for Java: Tulis beberapa baris data dalam satu batch
Tablestore SDK for Go: Tulis beberapa baris data dalam satu batch
Tablestore SDK for Python: Tulis beberapa baris data dalam satu batch
Tablestore SDK for Node.js: Tulis beberapa baris data dalam satu batch
Tablestore SDK for .NET: Tulis beberapa baris data dalam satu batch
Tablestore SDK for PHP: Tulis beberapa baris data dalam satu batch
Konsumsi CU
-
Jika operasi gagal, tidak ada CU yang dikonsumsi.
-
Jika permintaan timeout dan hasilnya tidak terdefinisi, CU mungkin atau mungkin tidak dikonsumsi.
Pada skenario lainnya, setiap PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest, atau DeleteRowInBatchWriteRowRequest diperlakukan sebagai operasi PutRow, UpdateRow, atau DeleteRow independen dengan perhitungan CU terpisah. Untuk informasi selengkapnya, lihat PutRow, UpdateRow, dan DeleteRow.