全部产品
Search
文档中心

Tablestore:Gunakan fitur atomic counter

更新时间:Jul 02, 2025

Jika Anda ingin menggunakan penghitung untuk aplikasi online, gunakan fitur atomic counter. Untuk menggunakannya, tentukan kolom sebagai atomic counter dan lakukan operasi atomic counter pada kolom tersebut.

Catatan

Tablestore SDK for Python V5.1.0 atau yang lebih baru mendukung fitur atomic counter.

Prasyarat

  • Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance OTSClient.

  • Tabel data telah dibuat dan data telah ditulis ke tabel tersebut.

Catatan Penggunaan

  • Atomic counter hanya dapat diimplementasikan pada kolom INTEGER.

  • Jika kolom yang ditentukan sebagai atomic counter tidak ada sebelum menulis data, nilai defaultnya adalah 0. Jika kolom bukan tipe INTEGER, kesalahan OTSParameterInvalid akan terjadi.

  • Anda dapat memperbarui atomic counter dengan angka positif atau negatif, tetapi hindari overflow integer. Jika terjadi overflow, kesalahan OTSParameterInvalid akan dikembalikan.

  • Secara default, nilai atomic counter tidak dikembalikan dalam respons pembaruan baris. Namun, Anda dapat menentukan agar nilai yang diperbarui dari atomic counter dikembalikan.

  • Anda tidak dapat menetapkan kolom sebagai atomic counter dan memperbarui kolom tersebut dalam satu permintaan pembaruan. Sebagai contoh, jika Kolom A ditetapkan sebagai atomic counter, Anda tidak dapat melakukan operasi lain seperti timpa atau hapus pada kolom tersebut secara bersamaan.

  • Anda dapat melakukan beberapa operasi pembaruan pada baris yang sama melalui permintaan BatchWriteRow. Namun, jika Anda melakukan operasi atomic counter pada baris, hanya satu operasi pembaruan yang dapat dilakukan pada baris tersebut dalam permintaan BatchWriteRow.

  • Hanya nilai versi terbaru dari atomic counter yang dapat diperbarui. Anda tidak dapat memperbarui nilai versi tertentu dari atomic counter. Setelah pembaruan selesai, versi data baru dimasukkan ke dalam atomic counter di baris tersebut.

Operasi API

Operasi terkait atomic counter telah ditambahkan ke operasi updateRow. Tabel berikut menjelaskan operasi terkait atomic counter.

Operasi

Deskripsi

update_of_attribute_columns

Tentukan INCREMENT sebagai tipe pembaruan untuk menambah atau mengurangi nilai kolom dengan bilangan bulat tertentu.

Parameter

Parameter

Deskripsi

table_name

Nama tabel data.

column_name

Nama kolom tempat Anda ingin melakukan operasi atomic counter. Anda hanya dapat menentukan kolom bertipe INTEGER.

value

Peningkatan atau penurunan nilai kolom.

Contoh

Kode sampel berikut menunjukkan cara menggunakan INCREMENT sebagai tipe pembaruan untuk memperbarui nilai kolom atribut bertipe INTEGER saat memanggil operasi updateRow untuk memperbarui data:

def increment_by_update_row(client):
    # Tentukan nama tabel data. 
    table_name ='<TABLE_NAME>'
    primary_key = [('pk0', 1)]
    # Gunakan INCREMENT sebagai tipe pembaruan. Dalam contoh ini, tentukan bahwa nilai kolom harga dinaikkan sebesar 6. 
    update_of_attribute_columns = {
        'INCREMENT': [('price', 6)]
    }
    row = Row(primary_key, update_of_attribute_columns)
    consumed, return_row = client.update_row(table_name, row, None)
    print ('Pembaruan berhasil, konsumsi %s unit tulis.' % consumed.write)