开发者社区 问答 正文

TableInBatchGetRowRequest

在 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:


  • 类型:string

  • 描述:该表的表名。


primary_key:


  • 类型:repeated bytes

  • 是否必要参数:是

  • 该行全部的主键列,包含主键名和主键值,由Plainbuffer编码,详见Plainbuffer编码


token:


  • 类型:repeated bytes

  • 是否必要参数:否

  • 宽行读取时指定下一次读取的起始位置,暂不可用。


columns_to_get:


  • 类型:repeated string

  • 描述:该表中需要返回的全部列的列名。


time_range:


  • 类型:TimeRange

  • 是否必要参数:和max_versions必须至少存在一个。

  • 读取数据的版本时间戳范围。

  • 时间戳的单位是毫秒,取值最小值为0,最大值为INT64.MAX。

  • 若要查询一个范围,则指定start_time和end_time。

  • 若要查询一个特定时间戳,则指定specific_time。

  • 例子:如果指定的time_range为(100, 200),则返回的列数据的时间戳必须位于[100, 200)范围内,前闭后开区间。


max_versions:


  • 类型:int32

  • 是否必要参数:和time_range必须至少存在一个。

  • 读取数据时,返回的最多版本个数。

  • 例子:如果指定max_versions为2,则每一列最多返回2个版本的数据。


cache_blocks:


  • 类型:bool

  • 是否必要参数:否

  • 本次读出的数据是否进入BlockCache。

  • 默认值:true

  • 当前暂不支持设置为false。


filter:


  • 类型:bytes

  • 是否必要参数:否

  • 过滤条件表达式。

  • Filter经过protobuf序列化后的二进制数据。


start_column:


  • 类型:string

  • 是否必要参数:否

  • 指定读取时的起始列,主要用于宽行读。

  • 返回的结果中包含当前起始列。

  • 列的顺序按照列名的字典序排序。

  • 例子:如果一张表有”a”,”b”,”c”三列,读取时指定start_column为“b”,则会从”b”列开始读,返回”b”,”c”两列。


end_column:


  • 类型:string

  • 是否必要参数:否

  • 指定读取时的结束列,主要用于宽行读。

  • 返回的结果中不包含当前结束列。

  • 列的顺序按照列名的字典序排序。

  • 例子:如果一张表有”a”,”b”,”c”三列,读取时指定end_column为“b”,则读到”b”列时会结束,返回”a”列。


相关操作


BatchGetRow

展开
收起
云栖大讲堂 2017-10-25 15:19:02 2054 分享 版权
阿里云 AI 助理回答

在阿里云的表格存储(Table Store,原OTS)中,BatchGetRow 操作是一种高效的数据读取方式,允许用户在一个请求中并行读取多个表中的多行数据。您提供的信息详细描述了构成 BatchGetRow 请求中针对单个表读取请求 (TableInBatchGetRowRequest) 的数据结构和各参数含义。下面是对这些参数的简要总结和应用指导:

  1. table_name: 必填项,指定需要读取数据的表名。

  2. primary_key: 必填项,用于定位表中的具体行。主键列必须按照表定义的顺序提供,并使用Plainbuffer编码。

  3. token: 可选项,用于宽行读取时指定下一次读取的起始位置,但目前此功能暂不可用。

  4. columns_to_get: 可选项,指定需要获取的列名列表。如果不指定,则默认返回所有列。

  5. time_rangemax_versions: 这两个参数至少需要指定一个。用来限制读取数据的时间版本范围或最大版本数。这对于处理具有多版本数据的场景非常有用。

  6. cache_blocks: 默认为true,表示读取的数据会进入BlockCache以加速后续读取。当前不支持修改此设置。

  7. filter: 可选项,通过protobuf序列化的过滤条件表达式,用于在服务端过滤不需要的数据行,提高数据检索效率。

  8. start_columnend_column: 用于宽行读取时控制返回列的范围。这两个参数可以用来优化数据传输量,特别是当表包含大量列且只需要其中一部分时。

进行 BatchGetRow 操作时,你需要构造一个包含多个 TableInBatchGetRowRequest 的请求体,每个请求体对应于你想要从不同表中读取的数据需求。这不仅减少了网络往返次数,也提高了数据读取的整体效率,特别适合于需要批量查询或预加载数据的场景。记得在实际应用中根据业务需求合理配置上述参数,以达到最佳性能和资源利用率。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: