全部產品
Search
文件中心

Tablestore:BatchWriteRow

更新時間:Jul 24, 2024

調用BatchWriteRow介面批量插入、修改或刪除一個或多個表中的若干行資料。

BatchWriteRow操作可視為多個PutRow、UpdateRow、DeleteRow操作的集合。各個操作獨立執行,獨立返回結果,獨立計算服務能力單元。

與執行大量的單行寫操作相比,使用BatchWriteRow操作可以有效減少請求的回應時間,提高資料的寫入速率。

請求訊息結構

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

參數

類型

是否必需

描述

tables

TableInBatchWriteRowRequest

指定需要執行寫操作的行資訊。

以下情況都會返回整體錯誤:

  • tables中任一表不存在。

  • tables中包含同名的表。

  • tables中任一表名不符合命名規則和資料類型

  • tables中任一行操作未指定主鍵、主鍵列名稱不符合規範或者主鍵列類型不正確。

  • tables中任一屬性列名稱不符合命名規則和資料類型

  • tables中任一行操作存在與主鍵列同名的屬性列。

  • tables中任一主鍵列或者屬性列的值大小超過通用限制

  • tables中任一表中存在主鍵完全相同的請求。

  • tables中所有表總的行操作個數超過200個,或者其含有的總資料大小超過4 M。

  • tables中任一表內沒有包含行操作,則返回OTSParameterInvalidException的錯誤。

  • tables中任一PutRowInBatchWriteRowRequest包含的Column個數超過1024個。

  • tables中任一UpdateRowInBatchWriteRowRequest包含的ColumnUpdate個數超過1024個。

transaction_id

string

局部事務ID。當使用局部事務功能批量寫入資料時必須設定此參數。

is_atomic

bool

指示批量寫操作是否以原子操作的形式執行。

響應訊息結構

說明

BatchWriteRow操作可能會在行層級部分失敗,此時返回的HTTP狀態代碼仍為 200。應用程式必須對RowInBatchWriteRowResponse中的error進行檢查,確認每一行的執行結果並進行相應的處理。

message BatchWriteRowResponse {
    repeated TableInBatchWriteRowResponse tables = 1;
}      

參數

類型

描述

tables

TableInBatchWriteRowResponse

對應了每個table下各操作的響應資訊,包括是否成功執行、錯誤碼和消耗的服務能力單元。

響應訊息中TableInBatchWriteRowResponse對象的順序與BatchWriteRowRequest中的TableInBatchWriteRowRequest對象的順序相同;每個TableInBatchWriteRowRequest中put_rows、update_rows、delete_rows包含的RowInBatchWriteRowResponse對象的順序分別與TableInBatchWriteRowRequest中put_rows、update_rows、delete_rows包含的PutRowInBatchWriteRowRequest、UpdateRowInBatchWriteRowRequest和DeleteRowInBatchWriteRowRequest對象的順序相同。

如果某行讀取失敗,則該行所對應的RowInBatchWriteRowResponse中is_ok將為false。

使用SDK

您可以使用如下語言的SDK批量寫入資料。

服務能力單元消耗

  • 如果本次操作整體失敗,則不消耗任何服務能力單元。
  • 如果請求逾時,結果未定義,則服務能力單元有可能被消耗,也可能未被消耗。

  • 其他情況將每個PutRowInBatchWriteRowRequest、UpdateRowInBatchWriteRowRequestDelete、RowInBatchWriteRowRequest依次視作相對應的寫操作獨立計算讀寫服務能力單元。更多資訊,請參見PutRow服務能力單元消耗UpdateRow服務能力單元消耗DeleteRow服務能力單元消耗