Menyisipkan, memodifikasi, atau menghapus beberapa baris data dari satu atau lebih tabel secara bersamaan.
Operasi BatchWriteRow merupakan rangkaian operasi PutRow, UpdateRow, atau DeleteRow. Saat memanggil operasi BatchWriteRow, setiap operasi PutRow, UpdateRow, atau DeleteRow dilakukan secara independen. Respons untuk setiap operasi dikembalikan secara terpisah, dan unit konsumsi (CUs) dihitung secara individual untuk setiap operasi tersebut.
Dengan menggunakan operasi BatchWriteRow alih-alih memanggil operasi PutRow, UpdateRow, atau DeleteRow secara berulang, waktu respons dapat dikurangi, serta kinerja penulisan data meningkat.
Sintaks permintaan
message BatchWriteRowRequest {
repeated TableInBatchWriteRowRequest tables = 1;
optional string transaction_id = 2;
optional bool is_atomic = 3;
} Parameter | Tipe | Diperlukan | Deskripsi |
tables | Ya | Baris tempat Anda ingin melakukan operasi penulisan batch. Kesalahan akan dikembalikan jika salah satu situasi berikut ada:
| |
transaction_id | string | Tidak | ID transaksi lokal. Parameter ini diperlukan jika Anda menggunakan fitur transaksi lokal untuk menulis data secara batch. |
is_atomic | bool | Tidak | Menentukan apakah operasi penulisan batch dilakukan sebagai operasi atomik. |
Sintaks respons
Operasi BatchWriteRow dapat mengalami kegagalan sebagian pada tingkat baris. Meskipun demikian, operasi tetap mengembalikan kode status HTTP 200. Aplikasi harus memeriksa kesalahan dalam RowInBatchWriteRowResponse untuk memastikan hasil eksekusi setiap baris sebelum melanjutkan.
message BatchWriteRowResponse {
repeated TableInBatchWriteRowResponse tables = 1;
} Parameter | Tipe | Deskripsi |
tables | Respons untuk setiap operasi untuk setiap tabel. Respons berisi hasil eksekusi, kode kesalahan, dan jumlah CUs yang dikonsumsi. Urutan metode TableInBatchWriteRowResponse dalam respons sama dengan urutan metode TableInBatchWriteRowRequest dalam BatchWriteRowRequest. Urutan metode RowInBatchWriteRowResponse yang terkandung dalam put_rows, update_rows, atau delete_rows dalam setiap metode TableInBatchWriteRowRequest sama dengan urutan metode PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest, atau DeleteRowInBatchWriteRowRequest yang terkandung dalam put_rows, update_rows, atau delete_rows dalam TableInBatchWriteRowRequest. Jika sebuah baris gagal dibaca, nilai is_ok dalam RowInBatchWriteRowResponse adalah false untuk baris tersebut. |
Menggunakan SDK Tablestore
Anda dapat menggunakan SDK Tablestore berikut untuk menyisipkan, memodifikasi, atau menghapus beberapa baris data dari satu atau lebih tabel secara bersamaan:
Tablestore SDK for Java: Menulis beberapa baris data dalam batch
Tablestore SDK for Go: Menulis beberapa baris data dalam batch
Tablestore SDK for Python: Menulis beberapa baris data dalam batch
Tablestore SDK for Node.js: Menulis beberapa baris data dalam batch
Tablestore SDK for .NET: Menulis beberapa baris data dalam batch
Tablestore SDK for PHP: Menulis beberapa baris data dalam batch
Konsumsi CU
Jika operasi gagal, tidak ada CUs yang dikonsumsi.
Jika permintaan habis waktu dan hasilnya tidak terdefinisi, CUs mungkin atau mungkin tidak dikonsumsi.
Pada skenario lain, setiap metode PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest, atau DeleteRowInBatchWriteRowRequest dianggap sebagai operasi PutRow, UpdateRow, atau DeleteRow, di mana CUs dihitung secara terpisah. Untuk informasi lebih lanjut, lihat PutRow, UpdateRow, dan DeleteRow.