All Products
Search
Document Center

Tablestore:BatchWriteRow

Last Updated:Apr 30, 2026

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

TableInBatchWriteRowRequest

Ya

Baris-baris tempat operasi batch write dilakukan.

Permintaan gagal jika kondisi berikut ada:

  • Tabel yang ditentukan tidak ada.

  • Beberapa tabel dengan nama yang sama ditentukan.

  • Nama tabel tidak sesuai dengan konvensi penamaan. Untuk informasi selengkapnya, lihat Konvensi penamaan dan tipe data.

  • Sebuah baris tidak memiliki kunci primernya, atau memiliki kolom kunci primer dengan nama yang tidak sesuai atau tipe yang tidak valid.

  • Nama kolom atribut dalam sebuah baris tidak sesuai dengan konvensi penamaan. Untuk informasi selengkapnya, lihat Konvensi penamaan dan tipe data.

  • Nama kolom atribut dalam sebuah baris bentrok dengan nama kolom kunci primer.

  • Nilai kolom kunci primer atau nilai kolom atribut melebihi batas ukuran. Untuk informasi selengkapnya, lihat Batas umum.

  • Beberapa baris dalam satu tabel memiliki kunci primer yang sama.

  • Jumlah total baris melebihi 200, atau ukuran total data melebihi 4 MB.

  • Tabel yang ditentukan tidak berisi baris tempat Anda ingin melakukan operasi. Dalam kasus ini, kesalahan OTSParameterInvalidException dikembalikan.

  • Jumlah kolom dalam PutRowInBatchWriteRowRequest untuk suatu tabel melebihi 1.024.

  • Jumlah kolom yang ditentukan oleh parameter ColumnUpdate dalam UpdateRowInBatchWriteRowRequest untuk suatu tabel melebihi 1.024.

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

Catatan

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

TableInBatchWriteRowResponse

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, is_ok pada entri RowInBatchWriteRowResponse-nya bernilai false.

Gunakan SDK Tablestore

SDK Tablestore berikut mendukung operasi batch write:

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.