Use o Tablestore SDK for Python para escrever uma linha e, opcionalmente, especifique uma condição de gravação, versão de dados ou transação local.
Pré-requisitos
Instale o Tablestore SDK for Python e inicialize um cliente.
Descrição da função
Chame put_row para escrever uma linha. Se a chave primária já existir, o método substituirá a linha; caso contrário, criará uma nova linha.
def put_row(
self,
table_name,
row,
condition=None,
return_type=None,
transaction_id=None,
)
O exemplo a seguir escreve uma linha com chave primária ("device", 1) na tabela example_table.
primary_key = [("partition", "device"), ("id", 1)]
attribute_columns = [("name", "thermometer"), ("status", "online")]
row = Row(primary_key, attribute_columns)
condition = Condition(RowExistenceExpectation.IGNORE)
consumed, return_row = client.put_row(
"example_table",
row,
condition,
)
print("Write CU: %s" % consumed.write)
Parâmetros
O método put_row tem os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
table_name (obrigatório) |
|
Nome da tabela. |
|
row (obrigatório) |
|
Chave primária e colunas de atributos a serem gravadas. |
|
condition (opcional) |
|
Condição de gravação. Por padrão, o sistema não verifica a existência da linha. Para mais informações, consulte Use conditional updates. |
|
return_type (opcional) |
|
Tipo de retorno. O valor padrão |
|
transaction_id (opcional) |
|
ID da transação local. Especifique este parâmetro apenas para gravações em uma transação local. Para mais informações, consulte Use local transactions. |
Dados da linha
O parâmetro row é do tipo Row e contém os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
primary_key (obrigatório) |
|
Chave primária. Os nomes, a ordem, a quantidade e os tipos das colunas de chave primária devem corresponder ao esquema de chave primária da tabela. |
|
attribute_columns (opcional) |
|
Colunas de atributos. Cada elemento segue o formato |
Resposta
put_row retorna os seguintes valores:
|
Campo |
Tipo |
Descrição |
|
consumed |
|
CUs de leitura e gravação consumidas pela operação. |
|
return_row |
|
Linha retornada. Se |
Exemplos
Escrever múltiplas colunas de atributos
O exemplo a seguir grava colunas de atributos dos tipos string, inteiro e booleano.
primary_key = [("partition", "device"), ("id", 2)]
attribute_columns = [
("name", "humidity-sensor"),
("temperature", 26),
("enabled", True),
]
row = Row(primary_key, attribute_columns)
client.put_row(
"example_table",
row,
Condition(RowExistenceExpectation.IGNORE),
)
Especificar versões de dados
O terceiro elemento da tupla de coluna de atributos define a versão dos dados em milissegundos. A versão deve estar dentro do intervalo válido permitido pela tabela.
timestamp = int(time.time() * 1000)
primary_key = [("partition", "device"), ("id", 3)]
attribute_columns = [
("status", "online", timestamp),
("temperature", 25, timestamp),
]
row = Row(primary_key, attribute_columns)
client.put_row(
"example_table",
row,
Condition(RowExistenceExpectation.IGNORE),
)
Obter um valor de chave primária com incremento automático
Ao gravar em uma tabela com coluna de chave primária de incremento automático, defina o valor da coluna como PK_AUTO_INCR e return_type como RT_PK. Para mais detalhes sobre os requisitos, consulte Use an auto-increment primary key column.
primary_key = [("partition", "device"), ("id", PK_AUTO_INCR)]
row = Row(primary_key, [("name", "pressure-sensor")])
consumed, return_row = client.put_row(
"example_table",
row,
Condition(RowExistenceExpectation.IGNORE),
ReturnType.RT_PK,
)
print(return_row.primary_key)