使用QueryTimeseriesMeta介面,您可以指定多種條件檢索時間軸。

前提條件

  • 已寫入時序資料。具體操作,請參見寫入時序資料
  • 已初始化TimeseriesClient。具體操作,請參見初始化

參數

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:時間軸中繼資料更新時間的時間戳記,單位為微秒。

樣本

查詢test_timeseries_table時序表中度量名稱為cpu,標籤中含有os標籤且標籤首碼為"Ubuntu"的所有時間軸。

private static void queryTimeseriesMeta(TimeseriesClient client) {
    String tableName = "test_timeseries_table";
    QueryTimeseriesMetaRequest queryTimeseriesMetaRequest = new QueryTimeseriesMetaRequest(tableName);
    // 查詢度量名稱為cpu,標籤中含有os標籤且首碼為"Ubuntu"的所有時間軸。即measurement_name="cpu" and have_prefix(os, "Ubuntu")
    CompositeMetaQueryCondition compositeMetaQueryCondition = new CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND);
    compositeMetaQueryCondition.addSubCondition(new MeasurementMetaQueryCondition(MetaQuerySingleOperator.OP_EQUAL, "cpu"));
    compositeMetaQueryCondition.addSubCondition(new TagMetaQueryCondition(MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu"));
    queryTimeseriesMetaRequest.setCondition(compositeMetaQueryCondition);
    queryTimeseriesMetaRequest.setGetTotalHits(true);
    QueryTimeseriesMetaResponse queryTimeseriesMetaResponse = client.queryTimeseriesMeta(queryTimeseriesMetaRequest);
    System.out.println(queryTimeseriesMetaResponse.getTotalHits());
    for (TimeseriesMeta timeseriesMeta : queryTimeseriesMetaResponse.getTimeseriesMetas()) {
        System.out.println(timeseriesMeta.getTimeseriesKey().getMeasurementName());
        System.out.println(timeseriesMeta.getTimeseriesKey().getDataSource());
        System.out.println(timeseriesMeta.getTimeseriesKey().getTags());
        System.out.println(timeseriesMeta.getAttributes());
        System.out.println(timeseriesMeta.getUpdateTimeInUs());
    }
}