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 |
Sim |
Linhas alvo da operação de escrita em lote. A solicitação falha se qualquer uma das condições abaixo ocorrer:
|
|
|
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
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 |
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, |
Usar SDKs do Tablestore
Os seguintes SDKs do Tablestore oferecem suporte a operações de escrita em lote:
Tablestore SDK for Java: Escrever várias linhas de dados em lote
Tablestore SDK for Go: Escrever várias linhas de dados em lote
Tablestore SDK for Python: Escrever várias linhas de dados em lote
Tablestore SDK for Node.js: Escrever várias linhas de dados em lote
Tablestore SDK for .NET: Escrever várias linhas de dados em lote
Tablestore SDK for PHP: Escrever várias linhas de dados 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.