全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
高性能时间序列数据库 HiTSDB

查询数据

更新时间:2018-03-08 11:40:52

数据查询需要先构建一个 Query 对象。Query 对象表示查询条件,用于指定符合条件的 tags,metric,和聚合查询条件等。

构造查询条件

示例代码

构建一个 Query 对象,即查询条件:

  1. Query query = Query
  2. .timeRange(startTime, endTime) // 设置查询时间条件
  3. .sub(SubQuery.metric("hello").aggregator(Aggregator.AVG).tag("tagk1", "tagv1").build()) // 设置子查询
  4. .sub(SubQuery.metric("world").aggregator(Aggregator.SUM).tag("tagk2", "tagv2").build()) // 设置子查询
  5. .build();

子查询

每个 Query 对象可以设置多个 SubQuery,进行多个条件的查询。

示例代码

一个典型的子查询的构造:

  1. SubQuery subQuery = SubQuery
  2. .metric("test-metric")
  3. .aggregator(Aggregator.AVG)
  4. .downsample("60m-avg")
  5. .tag("tagk1", "tagv1")
  6. .tag("tagk2", "tagv2")
  7. .build();

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

同步查询

HiTSDB SDK 提供了线程同步的数据查询。

示例代码

使用 query 方法同步的查询数据:

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

异步查询

HiTSDB SDK 提供了线程同步的数据查询。

示例代码

使用 query 方法同步的查询数据,并通过设置回调来设置异步查询后的行为:

  1. QueryCallback cb = new QueryCallback() {
  2. @Override
  3. public void response(Query input, List<QueryResult> result) {
  4. System.out.println("查询参数:" + input);
  5. System.out.println("返回结果:" + result);
  6. }
  7. };
  8. tsdb.query(query, cb);

查询结果

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

本文导读目录