すべてのプロダクト
Search
ドキュメントセンター

Tablestore:時系列データのクエリ

最終更新日:May 01, 2026

Tablestore SDK for Java を使用して、時系列テーブルから特定の条件を満たす時系列データをクエリします。

前提条件

パラメーター

パラメーター

必須

説明

timeseriesKey

はい

クエリ対象の時系列を識別するための識別子です。以下のサブパラメーターを使用して識別子を指定します。

  • measurementName:時系列のメトリック名。

  • dataSource:時系列のデータソース。このパラメーターは空白のままにすることも可能です。

  • tags:時系列のタグ。値は STRING 型のキーと値のペアで指定します。

重要

メトリック名やデータソースなどの時系列識別子が不明な場合は、QueryTimeseriesMeta 操作を呼び出して、フィルター条件に基づいて時系列を取得してください。詳細については、「時系列の取得」をご参照ください。

timeRange

はい

クエリの時間範囲。範囲は左閉右開区間です。以下のサブパラメーターを使用します。

  • beginTimeInUs:開始時刻。

  • endTimeInUs:終了時刻。

backward

いいえ

結果を逆順(最新のデータポイントから)で返すかどうかを指定します。有効な値は以下のとおりです。

  • true:結果を逆順で返します。

  • false:結果を時系列順で返します。デフォルト値です。

fieldsToGet

いいえ

返却するデータ列を指定します。指定しない場合、すべての列が返されます。

重要

fieldsToGet を指定する際は、各列の名前とデータの型の両方を提供する必要があります。データの型が列名と一致しない場合、その列は返されません。

limit

いいえ

1 回の呼び出しで返される行数の最大値。

説明

結果セットが limit を超える場合、またはスキャンされたデータ量の制約により返される行数が少なくなる場合は、nextToken パラメーターを使用して残りの行を取得してください。

nextToken

いいえ

追加の結果を取得するためのページネーショントークンです。クエリが部分的な結果セットのみを返す場合、応答に nextToken が含まれます。次のリクエストでこのトークンを渡すことで、残りの行を取得できます。

重要

nextToken をフロントエンドページに永続化または転送する場合は、Base64 を使用してエンコードしてください。string(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)

    // 時系列クライアント関連の API オペレーションを呼び出して、時系列内のデータをクエリします。
    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 を使用した時系列データのクエリ」をご参照ください。

  • 時系列データを可視化するには、Tablestore を Grafana に接続できます。詳細については、「Grafana への接続」をご参照ください。