メトリック名やデータソースなどの時系列に関する情報をクエリする場合、または指定した条件を満たす時系列を一覧表示する場合、QueryTimeseriesMeta オペレーションを呼び出すことができます。このオペレーションを使用すると、メトリック名、データソース、タグ、属性、更新時刻などの特定の条件で時系列をクエリできます。
前提条件
時系列データは時系列テーブルに書き込まれます。詳細については、時系列データの書き込みを参照してください。
TimeseriesClient インスタンスが初期化されています。詳細については、OTSClient インスタンスの初期化を参照してください。
パラメーター
metaQueryCondition パラメーターは、時系列取得の条件を指定します。条件には、compositeMetaQueryCondition、measurementMetaQueryCondition、dataSourceMetaQueryCondition、tagMetaQueryCondition、attributeMetaQueryCondition、updateTimeMetaQueryCondition が含まれます。次の表にパラメーターを示します。
パラメーター | 必須 | 説明 |
compositeMetaQueryCondition | いいえ | 複合条件。次の内容が含まれます。
|
measurementMetaQueryCondition | はい。パラメーターのいずれかを指定する必要があります。 | メトリック名条件。次の内容が含まれます。
|
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 !")
}
FAQ
参照
API オペレーションの詳細については、QueryTimeseriesMeta を参照してください。
時系列のメタデータの属性がビジネス要件を満たしていない場合は、時系列メタデータを更新または削除できます。詳細については、時系列メタデータの更新および時系列メタデータの削除を参照してください。
必要な時系列を取得した後、時系列に基づいて時系列データをクエリできます。詳細については、時系列データのクエリを参照してください。