在 BatchGetRow 操作中,表示要读取的一个表的请求信息。
数据结构message TableInBatchGetRowRequest {
required string table_name = 1;
repeated bytes primary_key = 2; //Plainbuffer编码
repeated bytes token = 3;
repeated string columns_to_get = 4; // 不指定则读出所有的列
optional TimeRange time_range = 5;
optional int32 max_versions = 6;
optional bool cache_blocks = 7 [default = true]; // 本次读出的数据是否进入BlockCache
optional bytes filter = 8;
optional string start_column = 9;
optional string end_column = 10;
}
table_name:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云的表格存储(Table Store,原OTS)中,BatchGetRow
操作是一种高效的数据读取方式,允许用户在一个请求中并行读取多个表中的多行数据。您提供的信息详细描述了构成 BatchGetRow
请求中针对单个表读取请求 (TableInBatchGetRowRequest
) 的数据结构和各参数含义。下面是对这些参数的简要总结和应用指导:
table_name: 必填项,指定需要读取数据的表名。
primary_key: 必填项,用于定位表中的具体行。主键列必须按照表定义的顺序提供,并使用Plainbuffer编码。
token: 可选项,用于宽行读取时指定下一次读取的起始位置,但目前此功能暂不可用。
columns_to_get: 可选项,指定需要获取的列名列表。如果不指定,则默认返回所有列。
time_range 和 max_versions: 这两个参数至少需要指定一个。用来限制读取数据的时间版本范围或最大版本数。这对于处理具有多版本数据的场景非常有用。
cache_blocks: 默认为true,表示读取的数据会进入BlockCache以加速后续读取。当前不支持修改此设置。
filter: 可选项,通过protobuf序列化的过滤条件表达式,用于在服务端过滤不需要的数据行,提高数据检索效率。
start_column 和 end_column: 用于宽行读取时控制返回列的范围。这两个参数可以用来优化数据传输量,特别是当表包含大量列且只需要其中一部分时。
进行 BatchGetRow
操作时,你需要构造一个包含多个 TableInBatchGetRowRequest
的请求体,每个请求体对应于你想要从不同表中读取的数据需求。这不仅减少了网络往返次数,也提高了数据读取的整体效率,特别适合于需要批量查询或预加载数据的场景。记得在实际应用中根据业务需求合理配置上述参数,以达到最佳性能和资源利用率。