全部產品
Search
文件中心

Tablestore:檢索時間軸

更新時間:Apr 09, 2025

通過調用QueryTimeseriesMeta介面,您可以查詢符合指定條件的時間軸。

前提條件

初始化Tablestore Client

參數說明

參數

說明

timeseriesTableName(必選

時序表名稱。

condition(可選)

檢索時間軸的查詢條件,支援以下多種條件的組合方式。

  • CompositeMetaQueryCondition:組合條件。包括以下內容:

    • operator:邏輯運算子,可選OP_ANDOP_OROP_NOT

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

  • MeasurementMetaQueryCondition:度量名稱條件。

    • operator:關係運算子或首碼匹配條件(OP_PREFIX),關係運算子可選OP_EQUALOP_NOT_EQUALOP_GREATER_THANOP_GREATER_EQUALOP_LESS_THANOP_LESS_EQUAL

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

  • DataSourceMetaQueryCondition:資料來源條件。

    • operator:關係運算子或首碼匹配條件(OP_PREFIX),關係運算子可選OP_EQUALOP_NOT_EQUALOP_GREATER_THANOP_GREATER_EQUALOP_LESS_THANOP_LESS_EQUAL

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

  • TagMetaQueryCondition:標籤條件。

    • operator:關係運算子或首碼匹配條件(OP_PREFIX),關係運算子可選OP_EQUALOP_NOT_EQUALOP_GREATER_THANOP_GREATER_EQUALOP_LESS_THANOP_LESS_EQUAL

    • tag_name:要匹配的標籤名稱,類型為字串。

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

  • UpdateTimeMetaQueryCondition:時間軸中繼資料的更新時間條件。

    • operator:關係運算子,可選OP_EQUALOP_NOT_EQUALOP_GREATER_THANOP_GREATER_EQUALOP_LESS_THANOP_LESS_EQUAL

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

  • AttributeMetaQueryCondition:時間軸中繼資料的屬性條件。

    • operator:關係運算子或首碼匹配條件(OP_PREFIX),關係運算子可選OP_EQUALOP_NOT_EQUALOP_GREATER_THANOP_GREATER_EQUALOP_LESS_THANOP_LESS_EQUAL

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

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

getTotalHits(可選)

是否擷取符合條件總行數。預設值為False。

limit(可選)

本次請求最多返回的行數。預設值為100,取值範圍為(0,1000]

說明

limit僅限制最多返回的行數,在滿足條件行數大於limit時,也可能由於掃描資料量等限制導致返回行數少於limit條,此時可以通過nextToken繼續擷取後面的行。

nextToken(可選)

如果一次查詢僅返回了部分合格行,此時response中會包括nextToken,可在下一次請求中指定nextToken用來繼續讀取資料。

重要

如果需要持久化nextToken或者傳輸nextToken給前端頁面,您可以使用Base64編碼將nextToken編碼為String後進行儲存或傳輸。nextToken本身不是字串,如果直接使用str(nextToken)將token編碼為String,則會導致token資訊丟失。

樣本

以下樣本用於查詢時序表中合格時間軸。

try:
    # 查詢條件:度量名稱為cpu,標籤中含有os標籤且首碼為"Ubuntu"的所有時間軸。即measurement_name="cpu" and have_prefix(os, "Ubuntu")。
    measCond = MeasurementMetaQueryCondition(MetaQuerySingleOperator.OP_EQUAL, "cpu")
    tagCond = TagMetaQueryCondition(MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu")
    condition = CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND, [measCond, tagCond])

    request = QueryTimeseriesMetaRequest("<TIMESERIES_TABLE_NAME>", condition)
    # 調用介面檢索時間軸。
    response = ots_client.query_timeseries_meta(request)
    print("query timeseries metas succeeded. ")
    for timeseriesMeta in response.timeseriesMetas:
        print("data_source: %s, measurement_name: %s, tags: %s, attributes : %s, update_time_in_us: %s." % (
        timeseriesMeta.timeseries_key.data_source, timeseriesMeta.timeseries_key.measurement_name,
        timeseriesMeta.timeseries_key.tags,
        timeseriesMeta.attributes, timeseriesMeta.update_time_in_us))
except Exception as e:
    # 如果拋出異常,則說明執行失敗,處理異常。
    print("query timeseries meta failed. %s" % e)