All Products
Search
Document Center

Tablestore:Perbarui baris

Last Updated:Jun 26, 2026

Lokasikan sebuah baris berdasarkan kunci primernya, lalu tambahkan, ubah, atau hapus kolom atributnya secara inkremental—dengan opsional menyertakan nomor versi tertentu. Java SDK menggunakan UpdateRow untuk pembaruan baris tunggal yang bersifat atomik. Kasus penggunaan umum mencakup penyegaran bidang status, pengarsipan nilai historis, dan penghapusan logis.

Prasyarat

Tablestore SDK untuk Java telah diinstal dan instans OTSClient telah diinisialisasi.

Deskripsi

public UpdateRowResponse updateRow(UpdateRowRequest updateRowRequest) throws TableStoreException, ClientException

Lokasikan satu baris berdasarkan kunci primernya dan perbarui kolom atributnya secara inkremental. Gunakan RowUpdateChange untuk menyimpan kunci primer dan operasi perubahan kolom. Konsumsi unit kapasitas (CU) dapat diperoleh dari response.getConsumedCapacity().

Contoh berikut memperbarui baris row1 dalam tabel data update_row_demo, dengan mengatur kolom atribut col1 menjadi changed_val1.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
rowUpdateChange.put("col1", ColumnValue.fromString("changed_val1"));

UpdateRowResponse response = client.updateRow(new UpdateRowRequest(rowUpdateChange));
System.out.println("RequestId: " + response.getRequestId());
System.out.println("Write CU: " + response.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());

Parameter

Objek RowUpdateChange membawa muatan pembaruan untuk satu baris. Setiap parameter dijelaskan di bawah ini.

Nama

Tipe

Deskripsi

tableName (wajib)

String

Nama tabel data yang akan diperbarui.

primaryKey (wajib)

PrimaryKey

Informasi kunci primer, termasuk nama dan nilai kolom kunci primer.

  • Tipe data yang didukung untuk kolom kunci primer: STRING, INTEGER, dan BINARY.

  • Jumlah dan tipe kolom kunci primer harus sesuai dengan skema tabel.

columnsToUpdate (wajib)

List<Pair<Column, Type>>

Daftar perubahan kolom atribut. Panggil metode RowUpdateChange berikut untuk menambahkan operasi perubahan:

  • put: tambahkan atau ubah kolom atribut.

  • deleteColumn: hapus versi tertentu dari kolom atribut.

  • deleteColumns: hapus semua versi dari kolom atribut.

Untuk contoh kode setiap operasi, lihat bagian Skenario.

condition (opsional)

Condition

Menentukan kondisi penulisan. Untuk detailnya, lihat Conditional update.

Skenario

Tulis kolom atribut dengan nomor versi tertentu

Berikan argumen ketiga pada put untuk menentukan nomor versi (timestamp dalam milidetik) kolom atribut tersebut. Pendekatan ini berguna untuk mengarsipkan nilai historis yang dikaitkan dengan waktu bisnis.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Tentukan nomor versi (timestamp dalam milidetik) sebagai argumen ketiga.
long version = System.currentTimeMillis();
rowUpdateChange.put("col2", ColumnValue.fromString("val2"), version);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Hapus versi tertentu dari kolom atribut

Gunakan deleteColumn untuk menghapus satu versi kolom atribut sambil mempertahankan semua versi lainnya.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Hapus nilai col2 pada versi yang ditentukan (timestamp dalam milidetik).
rowUpdateChange.deleteColumn("col2", 1747893563831L);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Hapus seluruh kolom atribut

Gunakan deleteColumns untuk menghapus semua versi kolom atribut dalam satu operasi.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Hapus semua versi dari kolom atribut col2.
rowUpdateChange.deleteColumns("col2");

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Referensi