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

通用查询数据集接口

更新时间:2018-06-22 11:32:58

描述

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

API 名称 Request Response
ARMSQueryDataSet ARMSQueryDataSetRequest ARMSQueryDataSetResponse

请求参数

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

业务参数说明

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

ARMSQueryDataSetRequest 包含以下字段:

字段名称 字段类型 设置方法 字段含义 是否必选 备注
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 之外的数据合并到一起
securityToken String setSecurityToken STS securityToken 采用 RAM 用户角色模式时需要设置该字段。详情请参考创建 RAM 用户角色并授权
  • 当需要查询的数据集是下钻类型时,维度使用 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.v20180620.ARMSQueryDataSetRequest;
    6. import com.aliyuncs.arms.model.v20180620.ARMSQueryDataSetRequest.Dimensions;
    7. import com.aliyuncs.arms.model.v20180620.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. // 用户主账号/RAM 子账号的 AK,或者 RAM 用户角色的临时安全令牌的 AK
    14. String accessKeyId = "xxx";
    15. // 用户主账号/RAM 子账号的 SK,或者 RAM 用户角色的临时安全令牌的 SK
    16. String accessKeySecret = "xxx";
    17. //Region和endpoint保持一致,具体内容和ARMS的region绑定,
    18. String endpoint = "xxx";//例如 cn-hangzhou
    19. String region = "xxx";//例如 cn-hangzhou
    20. //产品名请固定填"ARMS"
    21. String productName = "ARMS";
    22. //如果是非杭州区域,请改写,如cn-beijing,
    23. String domain = "arms.cn-hangzhou.aliyuncs.com";
    24. IClientProfile profile = DefaultProfile.getProfile(region, accessKeyId, accessKeySecret);
    25. DefaultProfile.addEndpoint(endpoint, region, productName, domain);
    26. // 设置业务参数
    27. ARMSQueryDataSetRequest armsQueryDataSetRequest = new ARMSQueryDataSetRequest();
    28. //DatasetID在数据集管理页面上可查询到
    29. armsQueryDataSetRequest.setDatasetId(1340l);
    30. //查询数据的返回间隔,请务必自行保证为60的倍数
    31. armsQueryDataSetRequest.setIntervalInSec(60);
    32. //设置查询的起始时间,该例子为查询最近十分钟数据,注意单位为毫秒
    33. armsQueryDataSetRequest.setMinTime(System.currentTimeMillis() - 600000);
    34. armsQueryDataSetRequest.setMaxTime(System.currentTimeMillis());
    35. // ****后续的2、3、4示例代码插入此处****
    36. IAcsClient client = new DefaultAcsClient(profile);
    37. try {
    38. //发送请求
    39. ARMSQueryDataSetResponse armsQueryDataSetResponse = client.getAcsResponse(armsQueryDataSetRequest);
    40. //获取并打印请求结果
    41. System.out.println(armsQueryDataSetResponse.getData());
    42. } catch (ClientException e) {
    43. e.printStackTrace();
    44. }
    45. }
    46. }
  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);
本文导读目录