您可以使用GetRange接口读取指定主键范围内的数据。
请求结构
message GetRangeRequest {
required string table_name = 1;
required Direction direction = 2;
repeated string columns_to_get = 3; // 不指定则读出所有的列
optional TimeRange time_range = 4;
optional int32 max_versions = 5;
optional int32 limit = 6;
required bytes inclusive_start_primary_key = 7; // Plainbuffer编码为二进制
required bytes exclusive_end_primary_key = 8; // Plainbuffer编码为二进制
optional bytes filter = 10;
optional string start_column = 11;
optional string end_column = 12;
}
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
table_name | string | 是 |
要读取的数据所在的表名。 |
direction | Direction | 是 |
本次查询的顺序。
|
columns_to_get | repeated string | 否 |
|
time_range | TimeRange | 和max_versions只能存在一个 |
例子:如果指定的time_range为(100, 200),则返回的列数据的时间戳必须位于[100, 200)范围内,前闭后开区间。 |
max_versions | int32 | 和time_range只能存在一个 |
读取数据时,返回的最多版本个数。 例子:如果指定max_versions为2,则每一列最多返回2个版本的数据。 |
limit | int32 | 否 |
|
inclusive_start_primary_key | bytes | 是 |
本次范围读取的起始主键,若该行存在,则响应中一定会包含此行。由Plainbuffer编码,详见Plainbuffer编码。 |
exclusive_end_primary_key | bytes | 是 |
|
filter | bytes | 否 |
|
start_column | string | 否 |
例子:如果一张表有"a","b","c"三列,读取时指定start_column为“b”,则会从"b"列开始读,返回"b","c"两列。 |
end_column | string | 否 |
例子:如果一张表有"a","b","c"三列,读取时指定end_column为“b”,则读到"b"列时会结束,返回"a"列。 |
响应消息结构
message GetRangeResponse {
required ConsumedCapacity consumed = 1;
required bytes rows = 2;
optional bytes next_start_primary_key = 3;
}
名称 | 类型 | 描述 |
---|---|---|
consumed | ConsumedCapacity |
本次操作消耗的服务能力单元。 |
rows | bytes |
|
next_start_primary_key | bytes |
|
服务能力单元消耗
-
GetRange 操作消耗读服务能力单元的数值为查询范围内所有行主键数据大小与实际读取的属性列数据大小之和除以 4 KB 向上取整。关于数据大小的计算请参见产品定价。
-
如果请求超时,结果未定义,服务能力单元有可能被消耗,也可能未被消耗。
-
如果返回内部错误(HTTP 状态码:5XX),则此次操作不消耗服务能力单元,其他错误情况消耗 1 个读服务能力单元。
在文档使用中是否遇到以下问题
更多建议
匿名提交