調用BatchGetRow介面批量讀取一個表或多個表中的若干行資料。
BatchGetRow操作可視為多個GetRow操作的集合,各個操作獨立執行,獨立返回結果,獨立計算服務能力單元。
與執行大量的GetRow操作相比,使用BatchGetRow操作可以有效減少請求的回應時間,提高資料的讀取速率。
請求訊息結構
message BatchGetRowRequest {
repeated TableInBatchGetRowRequest tables = 1;
}
參數 | 類型 | 是否必填 | 描述 |
tables | repeated TableInBatchGetRowRequest | 是 | 指定需要讀取的行資訊。 如果tables中出現了下述情況,則操作整體失敗,返回錯誤。 |
響應訊息結構
BatchGetRow操作可能會在行層級部分失敗,此時返回的HTTP狀態代碼仍為200。應用程式必須對RowInBatchGetRowResponse中的error進行檢查確認每一行的執行結果,並進行相應的處理。
message BatchGetRowResponse {
repeated TableInBatchGetRowResponse tables = 1;
}
參數 | 類型 | 描述 |
tables | repeated TableInBatchGetRowResponse | 對應每個table下讀取到的資料。 響應訊息中TableInBatchGetRowResponse對象的順序與BatchGetRowRequest中的TableInBatchGetRowRequest對象的順序相同;每個TableInBatchGetRowResponse下的RowInBatchGetRowResponse對象的順序與TableInBatchGetRowRequest下的RowInBatchGetRowRequest相同。 如果某行不存在或者某行在指定的columns_to_get中沒有資料,仍然會在TableInBatchGetRowResponse中有一條對應的RowInBatchGetRowResponse,但其row下的primary_key_columns和attribute_columns將為空白。 如果某行讀取失敗,則該行所對應的RowInBatchGetRowResponse中is_ok將為false,此時row將為空白。 |
使用SDK
您可以使用如下語言的SDK批量讀取資料。
服務能力單元消耗
如果本次操作整體失敗,則不消耗任何服務能力單元。
如果請求逾時,結果未定義,則服務能力單元有可能被消耗,也可能未被消耗。
其他情況將每個RowInBatchGetRowRequest視為一個GetRow操作獨立計算讀服務能力單元。更多資訊,請參見GetRow服務能力單元消耗。