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

查询时序数据

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

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

前提条件

  • 已写入时序数据。具体操作,请参见写入时序数据。

  • 已初始化TimeseriesClient。具体操作,请参见初始化Tablestore Client。

参数

参数

是否必选

说明

timeseriesKey

是

要查询的时间线,包括如下内容:

  • measurementName:时间线的度量名称。

  • dataSource:数据源信息,可以为空。

  • tags:时间线的标签信息,为多个字符串的key-value对。

重要

如果不确定要查询的时间线信息(例如度量名称、数据源信息)的时间线,您可以使用QueryTimeseriesMeta接口指定多种条件检索时间线。更多信息,请参见检索时间线。

timeRange

是

要查询的时间范围,范围为左闭右开区间。包括如下内容:

  • beginTimeInUs:起始时间。

  • endTimeInUs:结束时间。

backward

否

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

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

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

fieldsToGet

否

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

重要

fieldsToGet中需要指定要获取的每一列的列名和类型。如果类型不匹配,则无法读取到对应列的数据。

limit

否

本次最多返回的行数。

说明

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

nextToken

否

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

重要

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

示例

以下示例用于根据timeseriesKey获取时序表中指定的时间线数据。

func GetTimeseriesDataSample(client *tablestore.TimeseriesClient , timeseriesTableName string) {
    fmt.Println("[Info]: Begin to get timeseries data !")

    // 构造待查询时间线的timeseriesKey。
    timeseriesKey := tablestore.NewTimeseriesKey()
    timeseriesKey.SetMeasurementName("NETWORK")
    timeseriesKey.SetDataSource("127.0.0.1")
    timeseriesKey.AddTag("City" , "Hangzhou")
    timeseriesKey.AddTag("Region" , "Xihu")

    // 构造查询请求。
    getTimeseriesDataRequest := tablestore.NewGetTimeseriesDataRequest(timeseriesTableName)
    getTimeseriesDataRequest.SetTimeseriesKey(timeseriesKey)
    getTimeseriesDataRequest.SetTimeRange(0 , time.Now().UnixNano() / 1000)    // 指定查询时间线的范围。
    getTimeseriesDataRequest.SetLimit(-1)

    // 调用时序客户端接口获取时间线数据。
    getTimeseriesResp , err := client.GetTimeseriesData(getTimeseriesDataRequest)
    if err != nil {
        fmt.Println("[Error]: Get timeseries data Failed with error: " , err)
        return
    }
    fmt.Println("[Info]: Get timeseries data succeed ! TimeseriesRows: ")
    for i := 0; i < len(getTimeseriesResp.GetRows()); i++ {
        fmt.Println("[Info]: Row" , i , ": [" , getTimeseriesResp.GetRows()[i].GetTimeseriesKey().GetMeasurementName(),
            getTimeseriesResp.GetRows()[i].GetTimeseriesKey().GetDataSource(),
            getTimeseriesResp.GetRows()[i].GetTimeseriesKey().GetTags(), "]",
            getTimeseriesResp.GetRows()[i].GetTimeInus())
        rows := getTimeseriesResp.GetRows()[i].GetFieldsMap()
        for key, value := range rows {
            fmt.Println(key, value.Value)
        }
    }
    fmt.Println("[Info]: GetTimeseriesDataSample finished! RequestId: " , getTimeseriesResp.RequestId)
}

常见问题

  • 数据写入时序表后是否可以立即查询到?

  • 如何删除时序数据

  • 如何更新时序数据

相关文档

  • 关于API说明的更多信息,请参见GetTimeseriesData。

  • 您还可以使用SQL查询时序数据。更多信息,请参见使用SQL查询时序数据。

  • 如果要可视化展示时序数据,您可以通过对接Grafana实现。更多信息,请参见对接Grafana。

  • 如果要低成本存储时序数据以及快速查询与分析时序数据,您可以使用时序分析存储实现。更多信息,请参见时序分析存储。

相关文章

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

创建时序表后,您可以使用PutTimeseriesData接口批量写入时序数据。一次PutTimeseriesData调用支持写入多行数据。 前提条件

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

使用GetTimeseriesData接口,您可以查询符合指定条件的时序数据。 前提条件

检索时间线 2025-04-22 14:25

当不确定要查询的时间线信息(例如度量名称、数据源信息)或者需要按照指定条件列出时间线时,您可以使用QueryTimeseriesMeta接口指定度量名称、数据源、标签、属性、更新时间等多种条件检索时间线。

更新时间线元数据 2025-04-22 14:25

使用UpdateTimeseriesMeta接口,您可以批量更新时间线元数据的属性。一次UpdateTimeseriesMeta调用支持更新多个时间线的元数据。如果更新的时间线元数据不存在,则直接执行新增操作。

删除时间线元数据 2025-04-22 14:25

使用DeleteTimeseriesMeta接口,您可以批量删除时间线元数据。 前提条件 已写

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