クエリ対象の時系列情報 (メジャメント名やデータソースなど) が不明な場合や、特定の条件に基づいて時系列を一覧表示する必要がある場合は、QueryTimeseriesMeta API を使用して、メジャメント名、データソース、タグ、属性、更新時間などの条件を指定して、時系列を取得できます。
前提条件
時系列データが時系列テーブルに書き込まれています。詳細については、「時系列データの書き込み」をご参照ください。
TimeseriesClient インスタンスが初期化されています。詳細については、「Tablestore クライアントの初期化」をご参照ください。
パラメーター
metaQueryCondition パラメーターは、時系列の取得条件を指定します。 条件には、compositeMetaQueryCondition、measurementMetaQueryCondition、dataSourceMetaQueryCondition、tagMetaQueryCondition、attributeMetaQueryCondition、および updateTimeMetaQueryCondition が含まれます。 次の表にパラメーターを示します。
|
パラメーター |
必須 |
説明 |
|
compositeMetaQueryCondition |
いいえ |
複合条件。 以下の内容を含みます。
|
|
measurementMetaQueryCondition |
はい。いずれか 1 つが必須です。 |
メジャメント名の条件。 以下の内容を含みます。
|
|
dataSourceMetaQueryCondition |
データソースの条件。 以下の内容を含みます。
|
|
|
tagMetaQueryCondition |
タグの条件。 以下の内容を含みます。
|
|
|
attributeMetaQueryCondition |
時系列メタデータの属性条件。 以下の内容を含みます。
|
|
|
updateTimeMetaQueryCondition |
時系列メタデータの更新時間条件。 以下の内容を含みます。
|
例
次のサンプルコードは、指定した条件に基づいて、時系列のメジャメント名、データソース、タグをクエリする方法を示します。 条件として複合条件も使用できます。
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 !")
}
よくある質問
関連ドキュメント
-
QueryTimeseriesMeta API の詳細については、「QueryTimeseriesMeta」をご参照ください。
-
時系列のメタデータに含まれる属性がビジネス要件を満たさない場合は、時系列メタデータを更新または削除できます。 詳細については、「時系列メタデータの更新」および「時系列メタデータの削除」をご参照ください。
-
必要な時系列を取得した後、その時系列に基づいて時系列データをクエリできます。 詳細については、「時系列データのクエリ」をご参照ください。