日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

查詢數據

更新時間:

數據查詢需要先構建一個 Query 對象。Query 對象表示查詢條件,用于指定符合條件的 tags,metric,和聚合查詢條件等。

構造查詢條件

示例代碼

構建一個 Query 對象,即查詢條件:

Query query = Query
    .timeRange(startTime, endTime)    // 設置查詢時間條件
    .sub(SubQuery.metric("hello").aggregator(Aggregator.AVG).tag("tagk1", "tagv1").build())    // 設置子查詢
    .sub(SubQuery.metric("world").aggregator(Aggregator.SUM).tag("tagk2", "tagv2").build())    // 設置子查詢
    .build();

子查詢

每個 Query 對象可以設置多個 SubQuery,進行多個條件的查詢。

示例代碼

一個典型的子查詢的構造:

SubQuery subQuery = SubQuery
                .metric("test-metric")
                .aggregator(Aggregator.AVG)
                .downsample("60m-avg")
                .tag("tagk1", "tagv1")
                .tag("tagk2", "tagv2")
                .build();

其中,SubQuery 表示子查詢對象,Aggregator 是一個枚舉類型。

同步查詢

TSDB SDK 提供了線程同步的數據查詢。

示例代碼

使用query方法同步的查詢數據:

List<QueryResult> result = tsdb.query(query);
System.out.println("返回結果:" + result);

異步查詢

TSDB SDK提供了線程異步的數據查詢。

示例代碼

使用query方法異步的查詢數據,并通過設置回調來設置異步查詢后的行為:

QueryCallback cb = new QueryCallback() {

    @Override
    public void response(Query input, List<QueryResult> result) {
        System.out.println("查詢參數:" + input);
        System.out.println("返回結果:" + result);
    }

};

tsdb.query(query, cb);

逆序排序查詢

TSDB SDK提供查詢結果的逆序和順序返回。通過 getOrderDps(boolean ordeset)接口函數查詢結果逆序排序的查詢,getOrderDps(true) 實現逆序,getOrderDps() 實現時間戳順序來返回結果。示例代碼

Query query = Query
                .timeRange(current - 1000,start + 1000)
                .sub(SubQuery.metric(metric).aggregator(Aggregator.NONE).tag(tags).build())
                .build();

        try {
            // 執行查詢,并獲取查詢結果
            List<QueryResult> result = tsdb.query(query);


            for(QueryResult queryResult : result){
                // 獲取無序數據點
                System.out.println(queryResult.getDps());
                System.out.println("-------------");
                // 獲取按時間戳由小到大排序的數據點集合
                System.out.println(queryResult.getOrderDps());
                System.out.println("-------------");
                // 獲取按時間戳由大到小排序的數據點集合
                System.out.println(queryResult.getOrderDps(true));
            }
        } catch (HttpUnknowStatusException e) {
            e.printStackTrace();
        }

查詢結果

使用 query 方法查詢的數據以List<QueryResult>的形式返回,其中的QueryResult是每個子查詢的查詢結果。您可以使用QueryResultgetDps()方法獲取查詢的數據。

最新數據點查詢

TSDB SDK提供查詢指定時間戳前的最新數據點功能。代碼示例:

示例1

子查詢條件為metric和tags的查詢:

// 構建tags
        Map<String,String> tags = new HashMap<String, String>();
        tags.put("uid","1");
        tags.put("id","6");

        String metric = "test.1";
        // 構建最新點查詢
        LastPointQuery query = LastPointQuery.builder()
                // 指定時間戳
                .timestamp(1537520409729l)
                // 是否使用毫秒時間戳查詢
                .msResolution(true)
                // 構建最新點子查詢,用于查詢指定時間線下的最新數據點,
                // 可以同時指定多個子查詢
                .sub(LastPointSubQuery.builder(metric,tags).build()).build();

        // 時間線最新點查詢結果,每條時間線對應一個LastDataValue
        List<LastDataValue> lastDataValues = tsdb.queryLast(query);

        System.out.println(lastDataValues);

示例2

子查詢條件為時間線ID(tsuid)的查詢。

// 構造時間線Id集合
        List<String> tsuids = new ArrayList<String>();
        tsuids.add("10000B7C000095000081****FF00006F");

        // 構建最新點查詢
        LastPointQuery query = LastPointQuery.builder()
                // 指定時間戳
                .timestamp(1537520409729l)
                // 是否使用毫秒時間戳查詢
                .msResolution(true)
                // 構建最新點子查詢,用于查詢指定時間線下的最新數據點,
                // 可以同時指定多個子查詢
                .sub(LastPointSubQuery.builder(tsuids).build()).build();

        // 時間線最新點查詢結果,每條時間線對應一個LastDataValue
        List<LastDataValue> lastDataValues = tsdb.queryLast(query);

        System.out.println(lastDataValues);

其中,tsuids可以通過示例1的查詢結果獲取到,即首次使用示例1進行查詢,將查詢結果中的tsuids保存下來,下次可以直接使用tsuids來構建查詢。