开发者社区> 问答> 正文

通用查询数据集接口怎么使用?

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

查询用户数据集
API 功能    Request    Response
ARMSQueryDataSet    ARMSQueryDataSetRequest    ARMSQueryDataSetResponse
业务参数详细说明

ARMSQueryDataSetRequest 包含6个字段:

字段名称    字段类型    设置方法    字段含义    是否必选    备注
datasetId    Long    setDatasetId    数据集ID    是    
minTime    Long    setMinTime    查询数据的起始时间    是    
maxTime    Long    setMaxTime    查询数据的截止时间    是    
intervalInSec    Integer    setIntervalInSec    数据片的时间间隔    是    
dimensions    List[Dimension]    setDimensions    查询维度列表    否    Dimensions 为复合参数,列表最长支持3个元素。如果为空,则按第一个维度查询数据
measures    List[String]    setMesures    查询指标列表    否    列表最长支持3个元素。如果为空,则返回所有指标数据
isDrillDown    Boolean    setIsDrillDown    是否下钻    是    
Dimensions 复合字段说明
字段名称    字段类型    设置方法    字段含义    备注
key    String    setKey    维度名称    如:区域
value    String    setValue    维度值    如:北京
返回参数 ARMSQueryDataSetResponse 说明:

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

完整使用示例

import java.util.ArrayList;
import java.util.List;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.arms.model.v20161125.ARMSQueryDataSetRequest;
import com.aliyuncs.arms.model.v20161125.ARMSQueryDataSetRequest.Dimensions;
import com.aliyuncs.arms.model.v20161125.ARMSQueryDataSetResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class ARMSGeneralQuery
{
    public static void main(String[] args) throws ClientException {
        // 用户主账号的AK,在阿里云控制台上查看获取
        String accessKeyId = "xxx";
        // 用户主账号的SK,在阿里云控制台上查看获取
        String accessKeySecret = "xxx";
        //Region和endpoint保持一致,具体内容和ARMS的region绑定,
        //目前支持cn-hangzhou和cn-beijing两种,填哪个由ARMS控制台的region为准。
        String endpoint = "cn-hangzhou";
        String region = "cn-hangzhou";
        //产品名请固定填"ARMS"
        String productName = "ARMS";
        //如果是非杭州区域,请改写,如cn-beijing,
        String domain = "arms.cn-hangzhou.aliyuncs.com";
        IClientProfile profile = DefaultProfile.getProfile(region, accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint(endpoint, region, productName, domain);
        // 设置业务参数
        ARMSQueryDataSetRequest armsQueryDataSetRequest = new ARMSQueryDataSetRequest();
        //DatasetID在数据集管理页面上可查询到
        armsQueryDataSetRequest.setDatasetId(1340l);
        //查询数据的返回间隔,请务必自行保证为60的倍数
        armsQueryDataSetRequest.setIntervalInSec(60);
        //设置查询的起始时间,该例子为查询最近60秒数据,注意单位为毫秒
        armsQueryDataSetRequest.setMinTime(System.currentTimeMillis() - 60000);
        armsQueryDataSetRequest.setMaxTime(System.currentTimeMillis());
        //以下例子为设置查询维度,该例子中,查询维度Key为区域,Value为上海
        Dimensions dimensions = new Dimensions();
        dimensions.setKey("区域");
        dimensions.setValue("上海");
        List<Dimensions> dimensionss = new ArrayList<Dimensions>();
        dimensionss.add(dimensions);
        //选择要读取的统计值,该例子中,查询的值为价格和数量
        List<String> measuress = new ArrayList<String>();
        measuress.add("价格");
        measuress.add("数量");
        armsQueryDataSetRequest.setDimensionss(dimensionss);
        armsQueryDataSetRequest.setMeasuress(measuress);
        //如果设置为false,则返回指定Dimension的单维数据,
        //如果设置为true,则返回指定Dimension以下的多维数据
        armsQueryDataSetRequest.setIsDrillDown(false);
        IAcsClient client = new DefaultAcsClient(profile);
        try {
            //发送请求
            ARMSQueryDataSetResponse armsQueryDataSetResponse = client.getAcsResponse(armsQueryDataSetRequest);
            //获取并打印请求结果
            System.out.println(armsQueryDataSetResponse.getData());
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

展开
收起
猫饭先生 2017-10-31 10:37:25 1739 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
继承与功能组合 立即下载
“静态调用链路发现”应用场景分析及实践探索 立即下载