全部產品
Search
文件中心

Tablestore:檢索時間軸

更新時間:Jun 30, 2024

當不確定要查詢的時間軸資訊(例如度量名稱、資料來源資訊)或者需要按照指定條件列出時間軸時,您可以使用QueryTimeseriesMeta介面指定度量名稱、資料來源、標籤、屬性、更新時間等多種條件檢索時間軸。

前提條件

參數

metaQueryCondition表示檢索時間軸的條件,包括compositeMetaQueryCondition(組合條件)、measurementMetaQueryCondition(度量名稱條件)、dataSourceMetaQueryCondition(資料來源條件)、tagMetaQueryCondition(標籤條件)、attributeMetaQueryCondition(屬性條件)和updateTimeMetaQueryCondition(更新時間條件)。詳細參數說明請參見下表。

參數

是否必選

說明

compositeMetaQueryCondition

組合條件,包括如下內容:

  • operator:邏輯運算子,可選AND、OR、NOT。

  • subConditions:子條件列表,通過operator組成複雜查詢條件。

measurementMetaQueryCondition

是,任選一個

度量名稱條件,包括如下內容:

  • operator:關係運算子或首碼匹配條件,關係運算子可選=>>=<<=

  • value:要匹配的度量名稱值,類型為字串。

dataSourceMetaQueryCondition

資料來源條件,包括如下內容:

  • operator:關係運算子或首碼匹配條件,關係運算子可選=>>=<<=

  • value:要匹配的資料來源值,類型為字串。

tagMetaQueryCondition

標籤條件,包括如下內容:

  • operator:關係運算子或首碼匹配條件,關係運算子可選=>>=<<=

  • value:要匹配的標籤值,類型為字串。

attributeMetaQueryCondition

時間軸中繼資料的屬性條件,包括如下內容:

  • operator:關係運算子或首碼匹配條件,關係運算子可選=>>=<<=

  • attributeName:屬性名稱,類型為字串。

  • value:屬性值,類型為字串。

updateTimeMetaQueryCondition

時間軸中繼資料的更新時間條件,包括如下內容:

  • operator:關係運算子,可選=>>=<<=

  • timeInUs:時間軸中繼資料更新時間的時間戳記,單位為微秒。

樣本

以下樣本用於根據指定條件查詢時序表中特定時間軸的measurement、source和tag資訊,其中查詢條件可為組合條件。

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 !")
}

常見問題

相關文檔