使用QueryTimeseriesMeta接口,您可以指定多种条件检索时间线。
前提条件
参数
metaQueryCondition表示检索时间线的条件,包括compositeMetaQueryCondition(组合条件)、measurementMetaQueryCondition(度量名称条件)、dataSourceMetaQueryCondition(数据源条件)、tagMetaQueryCondition(标签条件)、attributeMetaQueryCondition(属性条件)和updateTimeMetaQueryCondition(更新时间条件)。详细参数说明请参见下表。
参数 | 说明 |
---|---|
compositeMetaQueryCondition | 组合条件,包括如下内容:
|
measurementMetaQueryCondition | 度量名称条件,包括如下内容:
|
dataSourceMetaQueryCondition | 数据源条件,包括如下内容:
|
tagMetaQueryCondition | 标签条件,包括如下内容:
|
attributeMetaQueryCondition | 时间线元数据的属性条件,包括如下内容:
|
updateTimeMetaQueryCondition | 时间线元数据的更新时间条件,包括如下内容:
|
示例
/**
* QueryTimeseriesMetaSample用于根据指定条件查询数据表中特定时间线的measurement、source和tag信息,其中查询条件可为组合条件。
*/
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().GetTagsSlice() ,
"Attrs: " , curTimeseriesMeta.GetAttributeSlice())
}
fmt.Println("[Info]: QueryTimeseriesMetaSample finished !")
}