赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 开发参考
  5. SDK参考
  6. Python SDK
  7. 时序模型
  8. 时序数据操作
  9. 查询时序数据

查询时序数据

  • 时序数据操作
  • 发布于 2025-04-22
  • 1 次阅读
文档编辑
文档编辑

通过调用GetTimeseriesData接口,您可以查询符合指定条件的时序数据。

前提条件

初始化Tablestore Client。

参数说明

request包含以下参数:

参数

说明

timeseriesTableName(必选)

时序表名称。

timeseriesKey(必选)

时间线标识。包括如下内容:

  • measurement_name(必选):时间线的度量名称。

  • data_source(必选):数据源信息。

  • tags(必选):时间线的标签信息,由多个键值对(key-value)组成。

beginTimeInUs(可选)

要查询的时间范围,单位为微秒。默认值为0。

beginTimeInUs和endTimeInUs分别表示起始时间戳和结束时间戳,查询的时间范围为左闭右开的区间。

endTimeInUs(可选)

backward(可选)

是否按照时间倒序读取数据,可用于获取某条时间线的最新数据。取值范围如下:

  • True:按照时间倒序读取。

  • False(默认):按照时间正序读取。

fieldsToGet(可选)

要获取的数据列。如果不指定,则默认获取所有列。

重要

在fieldsToGet中,需要明确指定要获取的每一列的列名及其数据类型。如果数据类型与实际不匹配,则将无法读取该列的数据。

limit(可选)

本次请求最多返回的行数。默认值为5000,取值范围为(0,5000]。

说明

limit仅限制最多返回的行数,在满足条件行数大于limit时,也可能由于扫描数据量等限制导致返回行数少于limit条,此时可以通过nextToken继续获取后面的行。

nextToken(可选)

如果一次查询仅返回了部分符合条件的行,此时response中会包括nextToken,可在下一次请求中指定nextToken用来继续读取数据。

重要

如果需要持久化nextToken或者传输nextToken给前端页面,您可以使用Base64编码将nextToken编码为String后进行保存或传输。nextToken本身不是字符串,如果直接使用str(nextToken)将token编码为String,则会导致token信息丢失。

示例

以下示例用于查询时序表中满足指定条件的时序数据。

# 时间线的标签信息。
tags = {"tag1": "t1", "tag2": "t2"}
# 时间线标识。
key = TimeseriesKey("measure1", "datasource1", tags)

try:
    request = GetTimeseriesDataRequest("<TIMESERIES_TABLE_NAME>")
    # 时间线标识
    request.timeseriesKey = key
    # 指定时间范围的结束时间戳。
    request.endTimeInUs = int(time.time() * 1000000)
    # 限制请求最多返回的行数。
    request.limit = 20
    # 指定要获取的数据列。如果不指定,则默认获取所有列。
    request.fieldsToGet = {"string_field": DataType.STRING, "long_field": DataType.LONG}

    # 调用接口查询时序数据。
    response = ots_client.get_timeseries_data(request)
    print(response.rows)

    # 如果nextToken不为空,可以发起下一次请求。
    if response.nextToken is not None:
        # 获取nextToken。
        next_token = response.nextToken

        # 如果需要持久化nextToken或者传输nextToken给前端页面,您可以使用Base64编码将nextToken编码为String进行保存和传输。
        # token本身不是字符串,直接使用str(nextToken)将token编码为String会造成token信息丢失。
        token_as_string = base64.b64encode(next_token).decode('utf-8')
        # 将String解码为byte。
        next_token_byte = base64.b64decode(token_as_string.encode('utf-8'))

        # 调用接口查询时序数据。
        request.nextToken = next_token
        response = ots_client.get_timeseries_data(request)
        print(response.rows)
    print("get timeseries data succeeded.")
except Exception as e:
    # 如果抛出异常,则说明执行失败,处理异常。
    print("get timeseries data failed. %s" % e)
相关文章

写入时序数据 2025-04-22 14:23

在创建时序表后,您可以通过调用PutTimeseriesData接口向时序表写入时序数据。该接口支持批量写入操作,单次调用即可完成多行数据的写入。 注意事项 表格存储Python SDK从6.1.0版本开始支持时序模型功能,请确保已获取正确的Python SDK版本。

查询时序数据 2025-04-22 14:23

通过调用GetTimeseriesData接口,您可以查询符合指定条件的时序数据。 前提条件 初始化Tablestore Client。 参数说明

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号