全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
业务实时监控服务 ARMS

通用查询数据集接口

更新时间:2017-12-21 13:49:15

描述

ARMSQueryDataSet 主要用于查询 ARMS 中的数据集的数据。

API 名称 Request Response
ARMSQueryDataSet ARMSQueryDataSetRequest ARMSQueryDataSetResponse

请求参数

请求参数包含 POP 公共参数和业务参数两个部分。公共请求参数请参考 POP 参数说明

业务参数说明

阿里云将用户所有的请求参数封装在一个 Request 中,返回一个 Response。

ARMSQueryDataSetRequest 包含 11 个字段:

字段名称 字段类型 设置方法 字段含义 是否必选 备注
datasetId Long setDatasetId 数据集 ID
minTime Long setMinTime 查询数据的起始时间
maxTime Long setMaxTime 查询数据的截止时间
intervalInSec Integer setIntervalInSec 数据片的时间间隔
measures List[String] setMesures 查询指标列表 列表最长支持 3 个元素。如果为空,则返回所有指标数据
dimensions List[Dimension] setDimensions 查询维度列表 下钻数据集字段,dimensions 为复合参数,列表最长支持 3 个元素。Dimension 的定义见下一说明列表
requiredDims List[Dimension] setRequiredDims 通用数据集的必选维度 通用数据集字段
optionalDims List[Dimension] setOptionalDims 通用数据集的可选维度 通用数据集字段
orderByKey String setOrderByKey orderBy 指标
limit Integer setLimit 限制的返回个数
reduceTail Boolean setReduceTail 是否把 limit 之外的数据合并到一起
  • 当需要查询的数据集是下钻类型时,维度使用 dimensions。
  • 当需要查询的数据集是通用类型时,维度使用 requiredDims 和 optionalDims。
  • 下钻数据集和通用数据集的区别请参考文档创建数据集

Dimensions 复合字段说明

字段名称 字段类型 设置方法 字段含义 备注
key String setKey 维度名称 如:区域
value String setValue 维度值 如:北京
type String setType 取值方式 分别为:STATIC, ALL, DISABLED
  • 当您想选择该维度下面的所有的维度值时,type 设置为 ALL,value 为 null。
  • 当您想选择该维度下面的其中某个维度值时,type 设置为 STATIC(静态值),value 为输入维度值。
  • 当您不想选择该维度时候,可以直接忽略,或者将 type 设置为 DISABLED。

返回参数

返回值为 JSON 串形式返回,可通过 ARMSQueryDataSetResponse.getdata() 获取。

ARMSQueryDataSetResponse 主要字段有:

字段名称 字段含义 备注
dimensions 时序数据的维度值 当该维度选为ALL时,会有多个
measures 数据点中的指标
resultSize 返回的所有数据点个数
dimData 多条时序数据

完整使用示例

  1. 在不选择维度情况下,查询所有数据的汇总信息:

    1. import java.util.ArrayList;
    2. import java.util.List;
    3. import com.aliyuncs.DefaultAcsClient;
    4. import com.aliyuncs.IAcsClient;
    5. import com.aliyuncs.arms.model.v20161125.ARMSQueryDataSetRequest;
    6. import com.aliyuncs.arms.model.v20161125.ARMSQueryDataSetRequest.Dimensions;
    7. import com.aliyuncs.arms.model.v20161125.ARMSQueryDataSetResponse;
    8. import com.aliyuncs.exceptions.ClientException;
    9. import com.aliyuncs.profile.DefaultProfile;
    10. import com.aliyuncs.profile.IClientProfile;
    11. public class ARMSGeneralQuery {
    12. public static void main(String[] args) throws ClientException {
    13. // 用户主账号的AK,在阿里云控制台上查看获取
    14. String accessKeyId = "xxx";
    15. // 用户主账号的SK,在阿里云控制台上查看获取
    16. String accessKeySecret = "xxx";
    17. //Region和endpoint保持一致,具体内容和ARMS的region绑定,
    18. //目前支持cn-hangzhou和cn-beijing两种,填哪个由ARMS控制台的region为准。
    19. String endpoint = "cn-hangzhou";
    20. String region = "cn-hangzhou";
    21. //产品名请固定填"ARMS"
    22. String productName = "ARMS";
    23. //如果是非杭州区域,请改写,如cn-beijing,
    24. String domain = "arms.cn-hangzhou.aliyuncs.com";
    25. IClientProfile profile = DefaultProfile.getProfile(region, accessKeyId, accessKeySecret);
    26. DefaultProfile.addEndpoint(endpoint, region, productName, domain);
    27. // 设置业务参数
    28. ARMSQueryDataSetRequest armsQueryDataSetRequest = new ARMSQueryDataSetRequest();
    29. //DatasetID在数据集管理页面上可查询到
    30. armsQueryDataSetRequest.setDatasetId(1340l);
    31. //查询数据的返回间隔,请务必自行保证为60的倍数
    32. armsQueryDataSetRequest.setIntervalInSec(60);
    33. //设置查询的起始时间,该例子为查询最近十分钟数据,注意单位为毫秒
    34. armsQueryDataSetRequest.setMinTime(System.currentTimeMillis() - 600000);
    35. armsQueryDataSetRequest.setMaxTime(System.currentTimeMillis());
    36. // ****后续的2、3、4示例代码插入此处****
    37. IAcsClient client = new DefaultAcsClient(profile);
    38. try {
    39. //发送请求
    40. ARMSQueryDataSetResponse armsQueryDataSetResponse = client.getAcsResponse(armsQueryDataSetRequest);
    41. //获取并打印请求结果
    42. System.out.println(armsQueryDataSetResponse.getData());
    43. } catch (ClientException e) {
    44. e.printStackTrace();
    45. }
    46. }
    47. }
  2. 选择第一个维度,将维度值设为空字符串(“”),类型为 ALL(全部)。结果返回按第一维度 group 的数据:

    1. Dimensions dimensions = new Dimensions();
    2. dimensions.setKey("区域");
    3. dimensions.setValue("");
    4. dimensions.setType("ALL");
    5. List<Dimensions> dimensionss = new ArrayList<Dimensions>();
    6. dimensionss.add(dimensions);
    7. armsQueryDataSetRequest.setDimensionss(dimensionss);
  3. 选择第一个维度,将维度值设为固定值,如 hangzhou,类型为 STATIC(固定值)。结果返回按第一维度的 hangzhou 数据:

    1. Dimensions dimensions = new Dimensions();
    2. dimensions.setKey("区域");
    3. dimensions.setValue("hangzhou");
    4. dimensions.setType("STATIC");
    5. List<Dimensions> dimensionss = new ArrayList<Dimensions>();
    6. dimensionss.add(dimensions);
    7. armsQueryDataSetRequest.setDimensionss(dimensionss);
  4. 选择要查询的指标列表,返回结果只返回您指定的指标:

    1. List<String> measuress = new ArrayList<String>();
    2. measuress.add("价格");
    3. measuress.add("数量");
    4. armsQueryDataSetRequest.setMeasuress(measuress);
本文导读目录