BatchWriteRow は、1 つ以上のテーブル内の複数のデータ行を挿入、変更、または削除します。
基本的には、複数の PutRow、UpdateRow、 DeleteRow 操作のセットです。 各操作が実行され、結果が個別に返され、CU が個別に消費されます。
多数の GetRow 操作の実行と比較した場合、BatchWriteRow 操作はリクエストへの応答時間を短縮し、データ読み取りを高速化することができます。
リクエスト構造:
message BatchWriteRowRequest {
repeated TableInBatchWriteRowRequest tables = 1;
}
-
データ型:repeated TableInBatchWriteRowRequest
-
必須 / 省略可能:必須
-
書き込み操作を必要とする行の情報を指定します。
-
次のいずれかの条件が発生すると、エラーが返されます。
-
tables
のいずれかのテーブルが存在しない。 -
table
に同じ名前のテーブルが含まれている。 -
tables
にあるいずれかのテーブルの名前がテーブルの命名規則に準拠していない。 -
主キーが
tables
にあるどの行にも指定されていない。または、主キー列名が規則に準拠していない。または、主キー列タイプに誤りがある。 -
tables
の属性列の場合、列名が列の命名規則に準拠していない。 -
tables
の行に、主キー列と同じ名前の属性列がある。 -
tables
にある主キーまたは属性列の値が、制限項目を超過している。 -
tables
にあるテーブルに同一の主キーを持つ行が含まれている。 -
テーブル内のすべての
tables
の行の総数が 200 以上あるか、または含まれているデータの合計サイズが 1M 以上ある。 -
tables
にあるテーブルに行が含まれていない場合、OTSParameterInvalidException エラーが返されます。 -
tables
にある PutRowInBatchWriteRowRequest に 1024 列以上含まれている。 -
tables
にある UpdateRowInBatchWriteRowRequest にColumnUpdate オブジェクトが 1024 以上含まれている。
-
レスポンスメッセージの構造:
message BatchWriteRowResponse {
repeated TableInBatchWriteRowResponse tables = 1;
}
-
各テーブルの操作に対応するレスポンス情報 (正常に実行されたか、エラーコード、消費された CU 等)
-
レスポンスメッセージの 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 になります。