Todos os produtos
Search
Central de documentação

Tablestore:BatchWriteRow

Última atualização: Jul 03, 2026

Insere, modifica ou exclui várias linhas de dados de uma ou mais tabelas simultaneamente.

O BatchWriteRow é uma operação composta que agrupa chamadas de PutRow, UpdateRow e DeleteRow em uma única solicitação. Cada suboperação é executada e faturada independentemente, com sua própria entrada de resposta.

Comparado à chamada individual de PutRow, UpdateRow ou DeleteRow, o BatchWriteRow reduz a latência de ida e volta e melhora o throughput de escrita.

Sintaxe da solicitação

message BatchWriteRowRequest {
    repeated TableInBatchWriteRowRequest tables = 1;
    optional string transaction_id = 2;
    optional bool is_atomic = 3;
}        

Parâmetro

Tipo

Obrigatório

Descrição

tables

TableInBatchWriteRowRequest

Sim

Linhas alvo da operação de escrita em lote.

A solicitação falha se qualquer uma das condições abaixo ocorrer:

  • Uma tabela especificada não existe.

  • Há várias tabelas com o mesmo nome especificadas.

  • Um nome de tabela não segue as convenções de nomenclatura. Para mais informações, consulte Convenções de nomenclatura e tipos de dados.

  • Uma linha não tem chave primária ou possui uma coluna de chave primária com nome inválido ou tipo incorreto.

  • O nome de uma coluna de atributo em uma linha viola as convenções de nomenclatura. Para mais informações, consulte Convenções de nomenclatura e tipos de dados.

  • O nome de uma coluna de atributo conflita com o nome de uma coluna de chave primária na mesma linha.

  • O valor de uma coluna de chave primária ou de atributo excede o limite de tamanho. Para mais informações, consulte Limites gerais.

  • Várias linhas em uma tabela compartilham a mesma chave primária.

  • O total de linhas excede 200 ou o tamanho total dos dados ultrapassa 4 MB.

  • Uma tabela especificada não contém as linhas alvo da operação. Nesse caso, o sistema retorna o erro OTSParameterInvalidException.

  • O número de colunas em um PutRowInBatchWriteRowRequest para uma tabela excede 1.024.

  • O número de colunas especificado pelo parâmetro ColumnUpdate em um UpdateRowInBatchWriteRowRequest para uma tabela excede 1.024.

transaction_id

string

Não

ID da transação local. Obrigatório ao usar o recurso de transação local para escrever dados em lotes.

is_atomic

bool

Não

Define se a escrita em lote deve ser executada como operações atômicas.

Sintaxe da resposta

Nota

O BatchWriteRow pode falhar parcialmente no nível da linha e ainda retornar HTTP 200. Verifique is_ok em cada entrada RowInBatchWriteRowResponse para confirme o resultado de cada linha e tratar as falhas adequadamente.

message BatchWriteRowResponse {
    repeated TableInBatchWriteRowResponse tables = 1;
}      

Parâmetro

Tipo

Descrição

tables

TableInBatchWriteRowResponse

Resultado de cada operação em cada tabela, incluindo status de execução, códigos de erro e CUs consumidas.

A ordem das entradas TableInBatchWriteRowResponse corresponde à ordem das entradas TableInBatchWriteRowRequest na solicitação. Dentro de cada tabela, a sequência das entradas RowInBatchWriteRowResponse em put_rows, update_rows e delete_rows segue a ordem das entradas correspondentes de PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest e DeleteRowInBatchWriteRowRequest.

Se uma operação de linha falhar, is_ok na respectiva entrada RowInBatchWriteRowResponse será false.

Usar SDKs do Tablestore

Os seguintes SDKs do Tablestore oferecem suporte a operações de escrita em lote:

Consumo de CU

  • Nenhuma CU é consumida se a operação falhar.

  • Se a solicitação atingir o tempo limite e os resultados ficarem indefinidos, as CUs podem ou não ser consumidas.

  • Nos demais cenários, cada PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest ou DeleteRowInBatchWriteRowRequest é tratado como uma operação independente de PutRow, UpdateRow ou DeleteRow, com cálculo separado de CUs. Para mais informações, consulte PutRow, UpdateRow e DeleteRow.