检索时间线

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

前提条件

参数

metaQueryCondition表示检索时间线的条件,包括compositeMetaQueryCondition(组合条件)、measurementMetaQueryCondition(度量名称条件)、dataSourceMetaQueryCondition(数据源条件)、tagMetaQueryCondition(标签条件)、attributeMetaQueryCondition(属性条件)和updateTimeMetaQueryCondition(更新时间条件)。详细参数说明请参见下表。

参数

是否必选

说明

compositeMetaQueryCondition

组合条件,包括如下内容:

  • operator:逻辑运算符,可选AND、OR、NOT。

  • subConditions:子条件列表,通过operator组成复杂查询条件。

measurementMetaQueryCondition

是,任选一个

度量名称条件,包括如下内容:

  • operator:关系运算符或前缀匹配条件,关系运算符可选=>>=<<=

  • value:要匹配的度量名称值,类型为字符串。

dataSourceMetaQueryCondition

数据源条件,包括如下内容:

  • operator:关系运算符或前缀匹配条件,关系运算符可选=>>=<<=

  • value:要匹配的数据源值,类型为字符串。

tagMetaQueryCondition

标签条件,包括如下内容:

  • operator:关系运算符或前缀匹配条件,关系运算符可选=>>=<<=

  • value:要匹配的标签值,类型为字符串。

attributeMetaQueryCondition

时间线元数据的属性条件,包括如下内容:

  • operator:关系运算符或前缀匹配条件,关系运算符可选=>>=<<=

  • attributeName:属性名称,类型为字符串。

  • value:属性值,类型为字符串。

updateTimeMetaQueryCondition

时间线元数据的更新时间条件,包括如下内容:

  • operator:关系运算符,可选=>>=<<=

  • timeInUs:时间线元数据更新时间的时间戳,单位为微秒。

示例

以下示例用于根据指定条件查询时序表中特定时间线的measurement、sourcetag信息,其中查询条件可为组合条件。

func QueryTimeseriesMetaSample(client *tablestore.TimeseriesClient , timeseriesTableName string) {
    fmt.Println("[Info]: Begin to query timeseries table meta!")

    // 构造多个查询条件。
    measurementMetaQueryCondition := tablestore.NewMeasurementQueryCondition(tablestore.OP_GREATER_EQUAL , "")
    datasourceMetaQueryCondition := tablestore.NewDataSourceMetaQueryCondition(tablestore.OP_GREATER_EQUAL , "")
    tagMetaQueryCondition := tablestore.NewTagMetaQueryCondition(tablestore.OP_GREATER_THAN , "City" , "")

    // 构造组合条件。
    compsiteMetaQueryCondition := tablestore.NewCompositeMetaQueryCondition(tablestore.OP_AND)
    compsiteMetaQueryCondition.AddSubConditions(measurementMetaQueryCondition)
    compsiteMetaQueryCondition.AddSubConditions(datasourceMetaQueryCondition)
    compsiteMetaQueryCondition.AddSubConditions(tagMetaQueryCondition)

    // 构造查询请求。
    queryTimeseriesMetaRequest := tablestore.NewQueryTimeseriesMetaRequest(timeseriesTableName)
    queryTimeseriesMetaRequest.SetCondition(compsiteMetaQueryCondition)
    queryTimeseriesMetaRequest.SetLimit(-1)

    // 调用时序客户端执行查询请求。
    queryTimeseriesTableResponse , err := client.QueryTimeseriesMeta(queryTimeseriesMetaRequest)
    if err != nil {
        fmt.Println("[Error]: Query timeseries table meta failed with error: " , err)
        return
    }
    fmt.Println("[Info]: Query timeseries table meta succeed: ")
    for i := 0; i < len(queryTimeseriesTableResponse.GetTimeseriesMetas()); i++ {
        curTimeseriesMeta := queryTimeseriesTableResponse.GetTimeseriesMetas()[i]
        fmt.Println("[Info]: Meta_" , i , ": " , "Measurement: " , curTimeseriesMeta.GetTimeseriesKey().GetMeasurementName() ,
            "Source: " , curTimeseriesMeta.GetTimeseriesKey().GetDataSource() ,
            "Tags: " , curTimeseriesMeta.GetTimeseriesKey().GetTags(),
            "Attrs: " , curTimeseriesMeta.GetAttributeSlice())
    }
    fmt.Println("[Info]: QueryTimeseriesMetaSample finished !")
}

常见问题

相关文档