GetTimeseriesData オペレーションを呼び出して、時系列テーブル内の指定された条件を満たす時系列データをクエリできます。
前提条件
時系列データは時系列テーブルに書き込まれます。詳細については、「時系列データの書き込み」をご参照ください。
TimeseriesClient インスタンスが初期化されています。詳細については、「OTSClient インスタンスの初期化」をご参照ください。
パラメーター
パラメーター | 必須 | 説明 |
timeseriesKey | はい | クエリする時系列の識別子。次のパラメーターを使用して識別子を指定できます。
重要 クエリする時系列の情報 (メトリック名やデータソースなど) が不明な場合は、QueryTimeseriesMeta オペレーションを呼び出して、さまざまな条件に基づいて時系列を取得できます。詳細については、「時系列の取得」をご参照ください。 |
timeRange | はい | クエリの時間範囲。時間範囲は左閉区間、右開区間です。次のパラメーターを使用して時間範囲を指定できます。
|
backward | いいえ | クエリ結果を逆時系列順にソートするかどうかを指定します。これにより、時系列の最新データを取得できます。有効な値:
|
fieldsToGet | いいえ | 返すデータ列の名前。このパラメーターを指定しない場合は、すべての列が返されます。 重要 fieldsToGet パラメーターを指定する場合は、返す各列の名前とデータ型を指定する必要があります。列のデータ型が列の名前と一致しない場合、その列は返されません。 |
limit | いいえ | 返す最大行数。 説明 limit パラメーターは、1 回の呼び出しで返すことができる最大行数を指定します。クエリ条件を満たす行数が limit パラメーターの値を超える場合、またはスキャンされたデータ量の制限により、返される行数が limit パラメーターの値よりも少ない場合は、nextToken パラメーターを使用して、クエリ条件を満たす残りのデータを返すことができます。 |
nextToken | いいえ | さらに結果を取得するために使用されるトークン。指定された条件を満たす行の一部のみがクエリで返された場合、レスポンスには nextToken パラメーターが含まれます。次のリクエストで nextToken パラメーターを指定して、残りの行を取得できます。 重要 nextToken を永続化する場合、または nextToken をフロントエンドページに転送する場合は、Base64 を使用して nextToken を文字列にエンコードできます。 nextToken は文字列ではありません。 |
例
次のサンプルコードは、timeseriesKey に基づいて時系列のデータをクエリする方法の例を示しています。
func GetTimeseriesDataSample(client *tablestore.TimeseriesClient , timeseriesTableName string) {
fmt.Println("[Info]: 時系列データの取得を開始します !")
// クエリするデータが含まれる時系列の 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)
// 時系列クライアント関連の API オペレーションを呼び出して、時系列のデータをクエリします。
getTimeseriesResp , err := client.GetTimeseriesData(getTimeseriesDataRequest)
if err != nil {
fmt.Println("[Error]: 時系列データの取得に失敗しました。エラー: " , err)
return
}
fmt.Println("[Info]: 時系列データの取得に成功しました ! TimeseriesRows: ")
for i := 0; i < len(getTimeseriesResp.GetRows()); i++ {
fmt.Println("[Info]: 行" , 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 が完了しました! RequestId: " , getTimeseriesResp.RequestId)
}FAQ
関連情報
API オペレーションの詳細については、「GetTimeseriesData」をご参照ください。
SQL ステートメントを実行して時系列データをクエリすることもできます。詳細については、「SQL を使用して時系列データをクエリする」をご参照ください。
時系列データを視覚的に表示するには、Tablestore を Grafana に接続できます。詳細については、「Tablestore を Grafana に接続する」をご参照ください。