すべてのプロダクト
Search
ドキュメントセンター

Tablestore:BatchWriteRow

最終更新日:Apr 30, 2026

1 つ以上のテーブルから複数行のデータを同時に挿入、変更、または削除します。

BatchWriteRow は、PutRow、UpdateRow、および DeleteRow の呼び出しを単一のリクエストにバンドルする複合操作です。各サブ操作は個別に実行され、個別に課金されます。また、それぞれに独自の応答エントリが存在します。

PutRow、UpdateRow、または DeleteRow を個別に呼び出す場合と比較して、BatchWriteRow は往復遅延を低減し、書き込みスループットを向上させます。

リクエスト構文

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

パラメーター

必須

説明

tables

TableInBatchWriteRowRequest

はい

バッチ書き込み操作を実行する行を指定します。

以下のいずれかの条件に該当する場合、リクエストは失敗します。

  • 指定されたテーブルが存在しません。

  • 同じ名前のテーブルが複数指定されています。

  • テーブル名が命名規則に準拠していません。詳細については、「命名規則とデータの型」をご参照ください。

  • 行にプライマリキーが含まれていない、またはプライマリキー列の名前が命名規則に準拠していない、もしくは無効な型が使用されています。

  • 行内の属性列名が命名規則に準拠していません。詳細については、「命名規則とデータの型」をご参照ください。

  • 行内の属性列名がプライマリキー列名と競合しています。

  • プライマリキー列値または属性列値がサイズ制限を超えています。詳細については、「一般的な制限事項」をご参照ください。

  • テーブル内で複数の行が同じプライマリキーを共有しています。

  • 行の総数が 200 行を超える、またはデータの総サイズが 4 MB を超えています。

  • 指定されたテーブルに操作対象の行が含まれていません。この場合、OTSParameterInvalidException エラーが返されます。

  • テーブルに対する PutRowInBatchWriteRowRequest 内の列数が 1,024 列を超えています。

  • テーブルに対する UpdateRowInBatchWriteRowRequest 内で ColumnUpdate パラメーターにより指定される列数が 1,024 列を超えています。

transaction_id

string

いいえ

ローカルトランザクション ID です。ローカルトランザクション機能を使用してデータをバッチで書き込む場合に必要です。

is_atomic

bool

いいえ

バッチ書き込みをアトミック操作として実行するかどうかを指定します。

応答構文

説明

BatchWriteRow は、行レベルで部分的に失敗しても HTTP 200 を返すことがあります。各行の結果を確認し、適切に失敗を処理するには、各 RowInBatchWriteRowResponse エントリ内の is_ok をチェックしてください。

message BatchWriteRowResponse {
    repeated TableInBatchWriteRowResponse tables = 1;
}      

パラメーター

説明

tables

TableInBatchWriteRowResponse

各テーブル内の各操作の結果(実行ステータス、エラーコード、消費された CU など)を示します。

TableInBatchWriteRowResponse エントリの順序は、リクエスト内の TableInBatchWriteRowRequest エントリの順序と一致します。各テーブル内では、put_rows、update_rows、delete_rows 内の RowInBatchWriteRowResponse エントリの順序が、対応する PutRowInBatchWriteRowRequest、UpdateRowInBatchWriteRowRequest、DeleteRowInBatchWriteRowRequest エントリの順序と一致します。

行操作が失敗した場合、その RowInBatchWriteRowResponse エントリ内の is_ok は false になります。

Tablestore SDK の使用

以下の Tablestore SDK はバッチ書き込み操作をサポートしています。

CU 消費量

  • 操作が失敗した場合、CU は消費されません。

  • リクエストがタイムアウトし、結果が未定義の場合、CU が消費される場合とされない場合があります。

  • その他のシナリオでは、各 PutRowInBatchWriteRowRequest、UpdateRowInBatchWriteRowRequest、または DeleteRowInBatchWriteRowRequest は、それぞれ独立した PutRow、UpdateRow、または DeleteRow 操作として扱われ、CU は個別に計算されます。詳細については、「PutRow」、「UpdateRow」、および「DeleteRow」をご参照ください。