指定されたプライマリキーに基づいてデータの単一行を読み取ります。
リクエスト構文
message GetRowRequest {
required string table_name = 1;
required bytes primary_key = 2; // データはPlainBuffer形式のバイナリデータとしてエンコードされます。
repeated string columns_to_get = 3; // このパラメータを指定しない場合は、すべての列が読み取られます。
optional TimeRange time_range = 4;
optional int32 max_versions = 5;
optional bytes filter = 7;
optional string start_column = 8;
optional string end_column = 9;
optional bytes token = 10;
optional string transaction_id = 11;
}
パラメータ | タイプ | 必須 | 説明 |
table_name | string | はい | データを読み取る対象のテーブルの名前。 |
primary_key | bytes | はい | プライマリキー列の名前と値を含む、行のすべてのプライマリキー列。プライマリキー列はPlainBuffer形式でエンコードされます。詳細については、PlainBufferを参照してください。 |
columns_to_get | string | いいえ | 返す列の名前。このパラメータを指定しない場合は、行のすべての列が返されます。このパラメータの値には、最大128個の文字列を含めることができます。 指定された列が存在しない場合、指定された列のデータは返されません。重複する列名を指定した場合、レスポンスにはこの列が1回だけ含まれます。 |
time_range | いいえ(time_rangeとmax_versionsの少なくとも一方を指定する必要があります。) | データの複数のバージョンを読み取るタイムスタンプ範囲。最小値は0、最大値はINT64.MAXです。単位:ミリ秒。 指定された時間範囲内のデータをクエリする場合は、start_timeとend_timeを指定します。指定されたタイムスタンプを含むデータをクエリする場合は、specific_timeを指定します。 たとえば、time_rangeの値が[100、200)の場合、返される列のデータのタイムスタンプは[100、200)の範囲内である必要があります。 | |
max_versions | int32 | いいえ(time_rangeとmax_versionsの少なくとも一方を指定する必要があります。) | 返されるデータの最大バージョン数。 max_versionsの値が2の場合、各列について最大2つのバージョンのデータが返されます。 |
filter | bytes | いいえ | フィルタ条件の式。フィルタ条件の式は、Protobufを使用してバイナリデータとしてシリアル化されます。詳細については、Filterを参照してください。 |
start_column | string | いいえ | 行内の読み取り操作が開始される列。このパラメータは、ワイドカラムを読み取るために使用されます。列は名前のアルファベット順にソートされます。レスポンスには、指定された開始列が含まれます。 テーブルに列a、b、cが含まれていて、start_columnの値がbの場合、読み取り操作は列bから開始され、列bとcが返されます。 |
end_column | string | いいえ | 読み取り操作が終了する列。レスポンスには、指定された終了列は含まれません。列は名前のアルファベット順にソートされます。 例:テーブルに列a、b、cが含まれていて、end_columnの値がbの場合、読み取り操作は列bで終了し、列aのみが返されます。 |
token | bytes | いいえ | ワイドカラム内の次の読み取り操作が開始される位置。このパラメータは使用できません。 |
transaction_id | string | いいえ | ローカルトランザクションのID。ローカルトランザクション機能を使用してデータを読み取る場合は、このパラメータが必要です。 |
レスポンス構文
message GetRowResponse {
required ConsumedCapacity consumed = 1;
required bytes row = 2; // データはPlainBuffer形式のバイナリデータとしてエンコードされます。
optional bytes next_token = 3;
}
パラメータ | タイプ | 説明 |
consumed | 操作で消費される容量ユニット(CU)の数。詳細については、CU消費量を参照してください。 | |
row | bytes | 行から読み取られたデータ。リクエストされた行が存在しない場合は、データは返されません。 返されるデータはPlainBuffer形式でエンコードされます。PlainBufferの詳細については、PlainBufferを参照してください。 |
next_token | bytes | 読み取りリクエストでデータ行の列数が128を超えた場合に返されるトークン。 |
Tablestore SDKの使用
次のTablestore SDKを使用してデータ行を読み取ることができます。
Tablestore SDK for Java:データの単一行の読み取り
Tablestore SDK for Go:データの単一行の読み取り
Tablestore SDK for Python:データの単一行の読み取り
Tablestore SDK for Node.js:データの単一行の読み取り
Tablestore SDK for .NET:データの単一行の読み取り
Tablestore SDK for PHP:データの単一行の読み取り
CU消費量
リクエストされた行が存在しない場合は、1回の読み取りCUが消費されます。
リクエストされた行が存在する場合、消費される読み取りCUの数は、次の式を使用して計算された値から切り上げられます。消費される読み取りCUの数=(行のすべてのプライマリキー列のデータサイズ+読み取られる属性列のデータサイズ)/ 4 KB。データサイズの計算方法の詳細については、課金概要を参照してください。
リクエストがタイムアウトし、結果が未定義の場合、CUが消費される場合とされない場合があります。
内部エラーが発生したことを示すHTTPステータスコード5xxが返された場合、操作はCUを消費しません。その他のエラーが返された場合は、1回の読み取りCUが消費されます。