Todos los productos
Search
Centro de documentos

Tablestore:Uso de contadores atómicos

Última actualización: Sep 03, 2026

Utilice Tablestore SDK for Python para incrementar o disminuir de forma atómica columnas de atributos de tipo entero por fila.

Requisitos previos

Instale Tablestore SDK for Python e inicialice un cliente. Los contadores atómicos requieren la versión 5.1.0 o posterior. Se recomienda utilizar la versión más reciente.

Descripción de la función

Llame a update_row y establezca la operación de columna de atributo en INCREMENT para modificar de forma atómica una columna de atributo de tipo entero. Un valor positivo incrementa la columna, mientras que un valor negativo la disminuye.

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

El siguiente ejemplo incrementa de forma atómica la columna de atributo counter en 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)

El método update_row en Tablestore SDK for Python no devuelve directamente el valor resultante de una operación de contador atómico. Para obtener el nuevo valor, llame a get_row después de la actualización.

Parámetros

Una operación de contador atómico incluye los siguientes parámetros clave.

Nombre

Tipo

Descripción

table_name (obligatorio)

str

El nombre de la tabla.

primary_key (obligatorio)

List[Tuple]

La clave primaria de la fila destino. Especifique todas las columnas de clave primaria. El esquema de la clave primaria debe coincidir con el de la tabla.

column_name (obligatorio)

str

El nombre de la columna de atributo donde se ejecutará la operación de contador atómico. Solo se admiten columnas de atributo de tipo entero.

value (obligatorio)

int

La cantidad en la que se modificará el valor de la columna de atributo. Un valor positivo incrementa la columna, mientras que un valor negativo la disminuye.

condition (obligatorio)

Condition

La condición de actualización. Para obtener más información, consulte Use conditional updates.

transaction_id (opcional)

str

El ID de transacción local. Especifique este parámetro únicamente para operaciones de contador atómico dentro de una transacción local.

Límites

  • Solo se admiten columnas de atributo de tipo entero. Si la columna destino no existe, su valor inicial se considera como 0. Si la columna existe pero no es de tipo entero, el servidor devuelve OTSParameterInvalid.

  • La cantidad de cambio puede ser positiva o negativa, pero el resultado no debe exceder el rango de un entero con signo de 64 bits. De lo contrario, el servidor devuelve OTSParameterInvalid.

  • Una operación de contador atómico se aplica únicamente a la versión más reciente y no admite especificar una versión de datos. La actualización escribe una nueva versión de datos.

  • En la misma actualización, no se puede ejecutar una operación de contador atómico junto con otra operación, como sobrescribir o eliminar, sobre la misma columna de atributo.

    Importante

    Una operación de contador atómico puede fallar debido a un tiempo de espera de red o un error del sistema. Un reintento directo podría aplicar el cambio más de una vez y generar un recuento inexacto. Para garantizar una precisión estricta, lea el valor actual y utilice una actualización condicional para escribir el nuevo valor.