全部产品
Search
文档中心

Tablestore:BatchWriteRow

更新时间:Jul 02, 2025

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

TableInBatchWriteRowRequest

Ya

Baris tempat Anda ingin melakukan operasi penulisan batch.

Kesalahan akan dikembalikan jika salah satu situasi berikut ada:

  • Tabel yang ditentukan tidak ada.

  • Tabel dengan nama yang sama ditentukan.

  • Nama tabel yang ditentukan tidak sesuai dengan konvensi penamaan. Untuk informasi lebih lanjut, lihat Konvensi penamaan dan tipe data.

  • Kunci utama tidak ditentukan, nama kolom kunci utama tidak sesuai dengan konvensi penamaan, atau tipe kolom kunci utama tidak valid untuk baris tertentu.

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

  • Nama kolom atribut dalam baris tertentu sama dengan nama kolom kunci utama dalam baris tersebut.

  • Nilai kolom kunci utama atau kolom atribut dalam baris tertentu melebihi batas maksimum ukuran. Untuk informasi lebih lanjut, lihat Batas umum.

  • Baris dengan kunci utama yang sama ada dalam tabel tertentu.

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

  • Jika tabel yang ditentukan tidak berisi baris tempat Anda ingin melakukan operasi, kesalahan OTSParameterInvalidException akan dikembalikan.

  • Jumlah kolom yang termasuk dalam metode PutRowInBatchWriteRowRequest untuk tabel tertentu melebihi 1.024.

  • Jumlah kolom yang ditentukan menggunakan parameter ColumnUpdate dalam metode UpdateRowInBatchWriteRowRequest untuk tabel tertentu melebihi 1.024.

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

Catatan

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

TableInBatchWriteRowResponse

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:

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.