您现在的位置是:首页 > 文章详情

物联网数据分析服务之数据开发API使用说明

日期:2020-02-08点击:621

简介

物联网数据分析,又称Link Analytics,是阿里云为物联网开发者提供的设备智能分析服务,全链路覆盖了设备数据生成、管理(存储)、清洗、分析及可视化等环节。有效降低数据分析门槛,助力物联网开发工作。

数据开发提供云上交互式查询服务,无需数据预处理过程,直接使用标准的SQL语句对设备进行数据分析。
可以对以下三个数据来源中的设备数据进行分析。

  1. 物联网平台的系统数据
  2. 基于产品能力定义的设备数据
  3. 用户授权的业务数据

使用场景

无需实时处理数据的场景均可使用。但是如果对实时性有要求,请使用数据分析服务的实时数据分析功能,因为数据从设备上报到物联网平台,再完成SQL数据分析,有大约5分钟左右的延迟。

  1. 设备监控
  2. 报表统计
  3. 设备行为分析

架构图

image

API服务

前提:已创建好物联网平台上的产品及设备

一、添加新的API
image

二、编写SQL语句
本文中的示例为统计产品表中去重设备数
image

三、测试与发布
image

image

image

image

JAVA调用示例

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>数据开发API-Demo</groupId>
    <artifactId>数据开发API-Demo</artifactId>
    <version>1.0-SNAPSHOT</version>


    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-iot -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-iot</artifactId>
            <version>6.10.0</version>
        </dependency>

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.3.5</version>
        </dependency>
    </dependencies>

</project>


Demo.java

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.iot.model.v20180120.InvokeDataAPIServiceRequest;
import com.aliyuncs.iot.model.v20180120.InvokeDataAPIServiceResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

public class Demo {

    public static void main(String args[]) throws ClientException {
        String accessKey = "*****";
        String accessSecret = "*****";
        DefaultProfile.addEndpoint("cn-shanghai", "cn-shanghai", "Iot", "iot.cn-shanghai.aliyuncs.com");
        IClientProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKey, accessSecret);
        DefaultAcsClient client = new DefaultAcsClient(profile); //初始化SDK客户端

        //在控制台的属性参数设置里截取API Path的一部分
        String apiSrn = "acs:iot:*:{uid}:serveapi/devicecount";

        //如果有请求参数,则需要设置
        InvokeDataAPIServiceRequest.Param param = new InvokeDataAPIServiceRequest.Param();
        // 请求参数名称
        //param.setParamName("$device_name");
        // 在线状态
        //param.setParamValue("***");

        InvokeDataAPIServiceRequest request = new InvokeDataAPIServiceRequest();
        request.setApiSrn(apiSrn);
        //request.setParams(Arrays.asList(param));
        // 当param为空时用请求方式用GET,如果不为空是用POST
        request.setSysMethod(MethodType.GET);

        try {
            InvokeDataAPIServiceResponse response = client.getAcsResponse(request);

            System.out.println(response.getSuccess());
            System.out.println(response.getErrorMessage());

            // 服务API指定的SQL查询结果
            List<Map<Object, Object>> result = response.getData().getResultList();
            System.out.println(result);

        } catch (ClientException ce) {
            ce.printStackTrace();
        }
    }
}


运行结果
image

原文链接:https://yq.aliyun.com/articles/744137
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章