使用GetTimeseriesData介面,您可以查詢符合指定條件的時序資料。
前提條件
已寫入時序資料。具體操作,請參見寫入時序資料。
已初始化TimeseriesClient。具體操作,請參見初始化OTSClient。
參數
參數 | 是否必選 | 說明 |
timeseriesKey | 是 | 要查詢的時間軸,包括如下內容:
重要 如果不確定要查詢的時間軸資訊(例如度量名稱、資料來源資訊)的時間軸,您可以使用QueryTimeseriesMeta介面指定多種條件檢索時間軸。更多資訊,請參見檢索時間軸。 |
timeRange | 是 | 要查詢的時間範圍,範圍為左閉右開區間。包括如下內容:
|
backward | 否 | 是否按照時間倒序讀取資料,可用於擷取某條時間軸的最新資料。取值範圍如下:
|
fieldsToGet | 否 | 要擷取的資料列的列名。如果不指定,則預設擷取所有列。 重要 fieldsToGet中需要指定要擷取的每一列的列名和類型。如果類型不符,則無法讀取到對應列的資料。 |
limit | 否 | 本次最多返回的行數。 說明 limit僅限制最多返回的行數,當滿足條件的行數大於limit時,也可能由於掃描資料量等限制導致返回的行數少於limit條,此時可以通過nextToken繼續擷取後面的行。 |
nextToken | 否 | 如果一次查詢僅返回了部分合格行,此時response中會包括nextToken,可在下一次請求中指定nextToken用來繼續讀取資料。 |
樣本
以下樣本用於根據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。