Tous les produits
Search
Centre de documentation

Tablestore:BatchWriteRow

Dernière mise à jour :Aug 18, 2026

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

TableInBatchWriteRowRequest

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 :

  • Une table spécifiée n'existe pas.

  • Plusieurs tables portent le même nom.

  • Un nom de table ne respecte pas les conventions de dénomination. Pour plus d'informations, consultez Naming conventions and data types.

  • Une ligne ne contient pas de clé primaire, ou possède une colonne de clé primaire dont le nom n'est pas conforme ou dont le type est invalide.

  • Le nom d'une colonne d'attribut dans une ligne ne respecte pas les conventions de dénomination. Pour plus d'informations, consultez Naming conventions and data types.

  • Le nom d'une colonne d'attribut dans une ligne entre en conflit avec le nom d'une colonne de clé primaire.

  • La valeur d'une colonne de clé primaire ou d'une colonne d'attribut dépasse la limite de taille. Pour plus d'informations, consultez General limits.

  • Plusieurs lignes d'une table partagent la même clé primaire.

  • Le nombre total de lignes dépasse 200, ou la taille totale des données dépasse 4 Mo.

  • Une table spécifiée ne contient pas les lignes sur lesquelles vous souhaitez effectuer des opérations. Dans ce cas, l'erreur OTSParameterInvalidException est renvoyée.

  • Le nombre de colonnes dans un PutRowInBatchWriteRowRequest pour une table dépasse 1 024.

  • Le nombre de colonnes spécifié par le paramètre ColumnUpdate dans un UpdateRowInBatchWriteRowRequest pour une table dépasse 1 024.

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

Remarque

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

TableInBatchWriteRowResponse

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, is_ok dans son entrée RowInBatchWriteRowResponse est défini sur false.

Utilisation des SDK Tablestore

Les SDK Tablestore suivants prennent en charge les opérations d'écriture 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.