指定されたプライマリキーに基づいて、単一の行のデータを読み取ります。
リクエスト構文
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 のうち少なくとも 1 つを指定する必要があります。) | データの複数バージョンを読み取るタイムスタンプ範囲。最小値は 0、最大値は INT64.MAX です。単位: ミリ秒。 指定された時間範囲内のデータをクエリする場合は、start_time と end_time を指定します。指定されたタイムスタンプを含むデータをクエリする場合は、specific_time を指定します。 たとえば、time_range の値が [100, 200) の場合、返される列のデータのタイムスタンプは [100, 200) の範囲内である必要があります。 | |
max_versions | int32 | いいえ (time_range と max_versions のうち少なくとも 1 つを指定する必要があります。) | 返されるデータの最大バージョン数。 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 を使用して、1 行のデータを読み取ります。
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 が消費されます。