当不确定要查询的时间线信息(例如度量名称、数据源信息)或者需要按照指定条件列出时间线时,您可以使用QueryTimeseriesMeta接口指定度量名称、数据源、标签、属性、更新时间等多种条件检索时间线。
前提条件
已写入时序数据。具体操作,请参见写入时序数据。
已初始化TimeseriesClient。具体操作,请参见初始化OTSClient。
参数
metaQueryCondition表示检索时间线的条件,包括compositeMetaQueryCondition(组合条件)、measurementMetaQueryCondition(度量名称条件)、dataSourceMetaQueryCondition(数据源条件)、tagMetaQueryCondition(标签条件)、attributeMetaQueryCondition(属性条件)和updateTimeMetaQueryCondition(更新时间条件)。详细参数说明请参见下表。
参数 | 是否必选 | 说明 |
compositeMetaQueryCondition | 否 | 组合条件,包括如下内容:
|
measurementMetaQueryCondition | 是,任选一个 | 度量名称条件,包括如下内容:
|
dataSourceMetaQueryCondition | 数据源条件,包括如下内容:
| |
tagMetaQueryCondition | 标签条件,包括如下内容:
| |
attributeMetaQueryCondition | 时间线元数据的属性条件,包括如下内容:
| |
updateTimeMetaQueryCondition | 时间线元数据的更新时间条件,包括如下内容:
|
示例
以下示例用于根据指定条件查询时序表中特定时间线的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().GetTags(),
"Attrs: " , curTimeseriesMeta.GetAttributeSlice())
}
fmt.Println("[Info]: QueryTimeseriesMetaSample finished !")
}
常见问题
相关文档
关于API说明的更多信息,请参见QueryTimeseriesMeta。
如果时间线元数据中的属性信息不满足使用需要,您可以更新或者删除时间线元数据。更多信息,请参见更新时间线元数据或删除时间线元数据。
检索到所需时间线后,您可以根据时间线查询时序数据。更多信息,请参见查询时序数据。