Inserta, modifica o elimina varias filas de datos de una o más tablas simultáneamente.
BatchWriteRow es una operación compuesta que agrupa llamadas a PutRow, UpdateRow y DeleteRow en una sola solicitud. Cada suboperación se ejecuta y factura de forma independiente, y cada una tiene su propia entrada de respuesta.
En comparación con llamar a PutRow, UpdateRow o DeleteRow individualmente, BatchWriteRow reduce la latencia de ida y vuelta y mejora el throughput de escritura.
Sintaxis de la solicitud
message BatchWriteRowRequest {
repeated TableInBatchWriteRowRequest tables = 1;
optional string transaction_id = 2;
optional bool is_atomic = 3;
}
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
tables |
Sí |
Filas sobre las que se realizará la operación de escritura por lotes. La solicitud falla si se cumple alguna de las siguientes condiciones:
|
|
|
transaction_id |
string |
No |
ID de transacción local. Obligatorio cuando se utiliza la función de transacción local para escribir datos en lotes. |
|
is_atomic |
bool |
No |
Especifica si se debe ejecutar la escritura por lotes como operaciones atómicas. |
Sintaxis de la respuesta
BatchWriteRow puede fallar parcialmente a nivel de fila y aun así devolver HTTP 200. Compruebe is_ok en cada entrada de RowInBatchWriteRowResponse para confirmar el resultado de cada fila y gestionar los fallos según corresponda.
message BatchWriteRowResponse {
repeated TableInBatchWriteRowResponse tables = 1;
}
|
Parámetro |
Tipo |
Descripción |
|
tables |
Resultado de cada operación en cada tabla, incluido el estado de ejecución, los códigos de error y las CU consumidas. El orden de las entradas de TableInBatchWriteRowResponse coincide con el orden de las entradas de TableInBatchWriteRowRequest en la solicitud. Dentro de cada tabla, el orden de las entradas de RowInBatchWriteRowResponse en put_rows, update_rows y delete_rows coincide con el orden de las entradas correspondientes de PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest y DeleteRowInBatchWriteRowRequest. Si una operación de fila falla, |
Uso de los SDK de Tablestore
Los siguientes SDK de Tablestore admiten operaciones de escritura por lotes:
Tablestore SDK for Java: Write multiple rows of data in a batch
Tablestore SDK for Go: Write multiple rows of data in a batch
Tablestore SDK for Python: Write multiple rows of data in a batch
Tablestore SDK for Node.js: Write multiple rows of data in a batch
Tablestore SDK for .NET: Write multiple rows of data in a batch
Tablestore SDK for PHP: Write multiple rows of data in a batch
Consumo de CU
Si la operación falla, no se consumen CU.
Si la solicitud agota el tiempo de espera y los resultados son indefinidos, es posible que se consuman CU o no.
En otros escenarios, cada PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest o DeleteRowInBatchWriteRowRequest se trata como una operación independiente de PutRow, UpdateRow o DeleteRow con CU calculadas por separado. Para obtener más información, consulte PutRow, UpdateRow y DeleteRow.