全部产品
Search
文档中心

Tablestore:Perbarui beberapa baris data secara bersamaan

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menggunakan Tablestore SDK untuk Java untuk memperbarui beberapa baris data di Tablestore secara bersamaan. Anda dapat menulis, memodifikasi, dan menghapus data di beberapa tabel dalam satu operasi.

Catatan penggunaan

Jika server mendeteksi kesalahan terkait parameter selama operasi, pengecualian kesalahan parameter akan dimunculkan, mencegah eksekusi operasi apa pun dalam permintaan tersebut.

Prasyarat

Klien telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.

Deskripsi metode

public BatchWriteRowResponse batchWriteRow(BatchWriteRowRequest batchWriteRowRequest) throws TableStoreException, ClientException

Parameter BatchWriteRowRequest

Parameter

Tipe

Deskripsi

rowChangesGroupByTable (wajib)

Map<String, List<RowChange>>

Daftar operasi data baris, termasuk nama tabel dan tipe operasi data. Tipe operasi data mencakup menulis data, memperbarui data, dan menghapus data.

Contoh kode

Berikut adalah contoh kode yang menunjukkan cara menyisipkan baris data ke tabel test_table menggunakan metode operasi data batch.

public static void batchWriteRowExample(SyncClient client) {
    // Konstruksi permintaan tulis baris batch.
    BatchWriteRowRequest batchWriteRowRequest = new BatchWriteRowRequest();

    // Tambahkan RowPutChange.
    PrimaryKey primaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"))
            .build();
    RowPutChange rowPutChange = new RowPutChange("test_table", primaryKey);
    batchWriteRowRequest.addRowChange(rowPutChange);

    // Panggil metode batchWriteRow untuk melakukan operasi data batch.
    BatchWriteRowResponse batchWriteRowResponse = client.batchWriteRow(batchWriteRowRequest);

    // Kembalikan hasilnya.
    System.out.println("* RequestId: " + batchWriteRowResponse.getRequestId());
    System.out.println("* Apakah Semua Berhasil: " + batchWriteRowResponse.isAllSucceed());
    if(!batchWriteRowResponse.isAllSucceed()) {
        System.out.println("* Baris Gagal: " + batchWriteRowResponse.getFailedRows().size());
        for(BatchWriteRowResponse.RowResult rowResult:batchWriteRowResponse.getFailedRows()) {
            System.out.println(batchWriteRowRequest.getRowChange(rowResult.getTableName(), rowResult.getIndex()).getPrimaryKey() + " | " + rowResult.getError());
        }
    }
}

Contoh kode untuk berbagai jenis operasi data disediakan di bawah ini:

  • RowPutChange: Tulis data baris.

    PrimaryKey primaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"))
            .build();
    RowPutChange rowPutChange = new RowPutChange("test_table", primaryKey);
    batchWriteRowRequest.addRowChange(rowPutChange);

    Tambahkan kolom atribut saat menulis data baris.

    // Tambahkan kolom atribut.
    rowPutChange.addColumn("col1", ColumnValue.fromString("val1"));
    // Tambahkan kolom atribut dengan nomor versi data kustom.
    rowPutChange.addColumn("col2", ColumnValue.fromString("val2"), System.currentTimeMillis());
  • RowUpdateChange: Perbarui data baris. Anda dapat memodifikasi nilai kolom atribut, menambahkan kolom data, menghapus versi tertentu dari kolom atribut, atau menghapus seluruh kolom atribut.

    PrimaryKey primaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"))
            .build();
    RowUpdateChange rowUpdateChange = new RowUpdateChange("test_table", primaryKey);
    rowUpdateChange.put("col1", ColumnValue.fromString("changed_val1"));
    batchWriteRowRequest.addRowChange(rowUpdateChange);

    Tambahkan atau hapus kolom atribut saat memperbarui data baris.

    // Tambahkan kolom atribut.
    rowUpdateChange.put("col3", ColumnValue.fromString("val3"));
    // Tambahkan kolom atribut dengan nomor versi data kustom.
    rowUpdateChange.put("col4", ColumnValue.fromString("val4"), System.currentTimeMillis());
    // Hapus kolom atribut.
    rowUpdateChange.deleteColumns("col2");
  • RowDeleteChange: Hapus data baris.

    PrimaryKey primaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"))
            .build();
    RowDeleteChange rowDeleteChange = new RowDeleteChange("test_table", primaryKey);
    batchWriteRowRequest.addRowChange(rowDeleteChange);

Referensi