全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
高性能时间序列数据库 HiTSDB

查询HiTSDB中的数据

更新时间:2017-12-11 15:15:56

Query 数据

1. 构造查询条件

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();

2. 子查询

// 一个典型的子查询的构造
SubQuery subQuery = SubQuery
                .metric("test-metric")
                .aggregator(Aggregator.AVG)
                .rate()  // rate 设置为 true
                .downsample("60m-avg")
                .tag("tagk1", "tagv1")
                .tag("tagk2", "tagv2")
                .filter(Filter.filter(FilterType.Regexp, "host", "web[0-9]+.lax.mysite.com",true).build())
                .filter(Filter.filter(FilterType.LiteralOr, "host2", "web[0-9]+.lax.mysite.com",true).build())
                .build();

其中 SubQuery 表示子查询对象。 Aggregator 是一个枚举类型。

3. 同步查询

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

4. 异步查询

// 查询回调
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);

5. 查询结果

使用 query 方法查询的数据以List<QueryResult>的方式返回。其中QueryResult是每个子查询的查询结果。 使用QueryResultgetDps()方法获取查询的数据。

本文导读目录