當不確定要查詢的時間軸資訊(例如度量名稱、資料來源資訊)或者需要按照指定條件列出時間軸時,您可以使用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。
如果時間軸中繼資料中的屬性資訊不滿足使用需要,您可以更新或者刪除時間軸中繼資料。更多資訊,請參見更新時間軸中繼資料或刪除時間軸中繼資料。
檢索到所需時間軸後,您可以根據時間軸查詢時序資料。更多資訊,請參見查詢時序資料。