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

Tablestore:BatchGetRow

最終更新日:Dec 28, 2024

1 つ以上のテーブルから複数のデータ行を同時に読み取ります。

BatchGetRow オペレーションは、一連の GetRow オペレーションです。BatchGetRow オペレーションを呼び出すと、各 GetRow オペレーションは個別に実行され、各 GetRow オペレーションへの応答は個別に返され、キャパシティユニット (CU) は各 GetRow オペレーションに対して個別に計算されます。

GetRow オペレーションを複数回呼び出す代わりに BatchGetRow オペレーションを呼び出すと、応答時間が短縮され、データ読み取りパフォーマンスが向上します。

リクエスト構文

message BatchGetRowRequest {
    repeated TableInBatchGetRowRequest tables = 1;
}           

パラメーター

タイプ

必須

説明

tables

repeated TableInBatchGetRowRequest

はい

各テーブルから読み取る行。

次のいずれかの条件が満たされた場合、オペレーションは失敗し、エラーが返されます。

  • 特定のテーブルが存在しません。

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

  • プライマリキーが指定されていないか、プライマリキー列の名前が命名規則に準拠していないか、プライマリキー列のタイプが特定の行に対して無効です。

  • 特定のテーブルの columns_to_get パラメーターを使用して指定された列の名前が命名規則に準拠していません。詳細については、命名規則とデータ型 を参照してください。

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

  • 指定されたすべてのテーブルの RowInBatchGetRowRequest オブジェクトの数が 100 を超えています。

  • 特定のテーブルに対して RowInBatchGetRowRequest オブジェクトが指定されていません。

  • 特定のテーブルに対して、columns_to_get パラメーターを使用して指定された列の数が 128 を超えています。

レスポンス構文

説明

BatchGetRow オペレーションは、行レベルで部分的に失敗する可能性があります。ただし、オペレーションは引き続き HTTP 200 ステータスコードを返します。アプリケーションは、RowInBatchGetRowResponse のエラーをチェックして、各行の実行結果を確認してから続行する必要があります。

message BatchGetRowResponse {
    repeated TableInBatchGetRowResponse tables = 1;
}          

パラメーター

タイプ

説明

tables

repeated TableInBatchGetRowResponse

各テーブルから読み取られる行。

レスポンス内の TableInBatchGetRowResponse オブジェクトの順序は、BatchGetRowRequest 内の TableInBatchGetRowRequest オブジェクトの順序と同じです。TableInBatchGetRowResponse 内の RowInBatchGetRowResponse オブジェクトの順序は、TableInBatchGetRowRequest 内の RowInBatchGetRowRequest オブジェクトの順序と同じです。

行が存在しない場合、または行の columns_to_get パラメーターを使用して指定された列が空の場合でも、RowInBatchGetRowResponse オブジェクトは TableInBatchGetRowResponse オブジェクトに表示されます。ただし、行の primary_key_columns パラメーターと attribute_columns パラメーターは空です。

行の読み取りに失敗した場合、その行の RowInBatchGetRowResponse の is_ok の値は false になり、行は空になります。

Tablestore SDK の使用

以下の Tablestore SDK を使用して、1 つ以上のテーブルから複数のデータ行を同時に読み取ることができます。

CU 消費量

  • オペレーションが失敗した場合、CU は消費されません。

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

  • その他の場合、各 RowInBatchGetRowRequest オブジェクトは GetRow オペレーションと見なされ、読み取り CU は個別に計算されます。詳細については、CU 消費量 を参照してください。