Todos os produtos
Search
Central de documentação

Tablestore:Use atomic counters

Última atualização: Aug 20, 2026

Use o Tablestore SDK for Python para incrementar ou decrementar atomicamente colunas de atributos inteiros no nível da linha.

Pré-requisitos

Instale o Tablestore SDK for Python e inicialize um cliente. Os contadores atômicos exigem a versão 5.1.0 ou posterior. Recomendamos usar a versão mais recente.

Descrição da função

Chame update_row e defina a operação da coluna de atributo como INCREMENT para alterar atomicamente uma coluna de atributo inteira. Um valor positivo incrementa a coluna; um valor negativo a decrementa.

def update_row(
    self,
    table_name,
    row,
    condition,
    return_type=None,
    transaction_id=None,
)

O exemplo a seguir incrementa atomicamente a coluna de atributo counter em 5.

primary_key = [("partition", "device"), ("id", 1)]
attribute_columns = {"INCREMENT": [("counter", 5)]}
row = Row(primary_key, attribute_columns)
condition = Condition(RowExistenceExpectation.EXPECT_EXIST)

consumed, return_row = client.update_row(
    "example_table",
    row,
    condition,
)
print("Write CU: %s" % consumed.write)

O método update_row no Tablestore SDK for Python não retorna diretamente o valor após uma operação de contador atômico. Para obter o novo valor, chame get_row após a atualização.

Parâmetros

Uma operação de contador atômico contém os seguintes parâmetros principais.

Nome

Tipo

Descrição

table_name (obrigatório)

str

Nome da tabela.

primary_key (obrigatório)

List[Tuple]

Chave primária da linha de destino. Especifique todas as colunas da chave primária. O esquema da chave primária deve corresponder ao da tabela.

column_name (obrigatório)

str

Nome da coluna de atributo na qual executar a operação de contador atômico. Há suporte apenas para colunas de atributos inteiros.

value (obrigatório)

int

Valor pelo qual alterar o valor da coluna de atributo. Um valor positivo incrementa a coluna; um valor negativo a decrementa.

condition (obrigatório)

Condition

Condição de atualização. Para mais informações, consulte Use conditional updates.

transaction_id (opcional)

str

ID da transação local. Especifique este parâmetro apenas para operações de contador atômico em uma transação local.

Limites

  • Há suporte apenas para colunas de atributos inteiros. Se a coluna de destino não existir, seu valor inicial será tratado como 0. Se a coluna existir mas não for do tipo inteiro, o servidor retornará OTSParameterInvalid.

  • O valor de alteração pode ser positivo ou negativo, mas o resultado não pode exceder o intervalo de um inteiro assinado de 64 bits. Caso contrário, o servidor retornará OTSParameterInvalid.

  • A operação de contador atômico aplica-se apenas à versão mais recente e não aceita uma versão de dados específica. A atualização grava uma nova versão dos dados.

  • Na mesma atualização, não é possível executar uma operação de contador atômico e outra operação, como sobrescrita ou exclusão, na mesma coluna de atributo.

    Importante

    Uma operação de contador atômico pode falhar devido a timeout de rede ou erro do sistema. Tentar novamente imediatamente pode aplicar a alteração mais de uma vez e produzir uma contagem imprecisa. Para garantir precisão rigorosa, leia o valor atual e use uma atualização condicional para gravar o novo valor.