Insère, modifie ou supprime plusieurs lignes de données dans une ou plusieurs tables simultanément.
BatchWriteRow est une opération composite qui regroupe les appels PutRow, UpdateRow et DeleteRow en une seule requête. Chaque sous-opération s'exécute et se facture indépendamment, avec sa propre entrée de réponse.
Par rapport à des appels individuels à PutRow, UpdateRow ou DeleteRow, BatchWriteRow réduit la latence des allers-retours réseau et améliore le débit d'écriture.
Syntaxe de la requête
message BatchWriteRowRequest {
repeated TableInBatchWriteRowRequest tables = 1;
optional string transaction_id = 2;
optional bool is_atomic = 3;
}
|
Parameter |
Type |
Required |
Description |
|
tables |
Yes |
Les lignes sur lesquelles effectuer l'opération d'écriture par lot. La requête échoue si l'une des conditions suivantes est remplie :
|
|
|
transaction_id |
string |
No |
L'ID de la transaction locale. Requis lors de l'utilisation de la fonctionnalité de transaction locale pour écrire des données par lots. |
|
is_atomic |
bool |
No |
Indique si l'écriture par lot doit être exécutée sous forme d'opérations atomiques. |
Syntaxe de la réponse
BatchWriteRow peut échouer partiellement au niveau des lignes tout en renvoyant un code HTTP 200. Vérifiez is_ok dans chaque entrée RowInBatchWriteRowResponse pour confirmer le résultat de chaque ligne et gérer les échecs en conséquence.
message BatchWriteRowResponse {
repeated TableInBatchWriteRowResponse tables = 1;
}
|
Parameter |
Type |
Description |
|
tables |
Le résultat de chaque opération dans chaque table, y compris l'état d'exécution, les codes d'erreur et les unités de capacité (CU) consommées. L'ordre des entrées TableInBatchWriteRowResponse correspond à l'ordre des entrées TableInBatchWriteRowRequest dans la requête. Au sein de chaque table, l'ordre des entrées RowInBatchWriteRowResponse dans put_rows, update_rows et delete_rows correspond à l'ordre des entrées PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest et DeleteRowInBatchWriteRowRequest correspondantes. Si une opération sur une ligne échoue, |
Utilisation des SDK Tablestore
Les SDK Tablestore suivants prennent en charge les opérations d'écriture par lot :
SDK Tablestore pour Java : Écrire plusieurs lignes de données par lot
SDK Tablestore pour Go : Écrire plusieurs lignes de données par lot
SDK Tablestore pour Python : Écrire plusieurs lignes de données par lot
SDK Tablestore pour Node.js : Écrire plusieurs lignes de données par lot
SDK Tablestore pour .NET : Écrire plusieurs lignes de données par lot
SDK Tablestore pour PHP : Écrire plusieurs lignes de données par lot
Consommation d'unités de capacité (CU)
Si l'opération échoue, aucune CU n'est consommée.
Si la requête expire et que les résultats sont indéfinis, des CU peuvent avoir été consommées ou non.
Dans les autres scénarios, chaque PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest ou DeleteRowInBatchWriteRowRequest est traité comme une opération PutRow, UpdateRow ou DeleteRow indépendante, avec un calcul séparé des CU. Pour plus d'informations, consultez PutRow, UpdateRow et DeleteRow.