本文介绍如何对接物联网平台和阿里云大数据平台,以实现设备数据分析、统计、计算和可视化实时展示。

前提条件

背景信息

数据交互

操作步骤

  1. 创建一个云数据库RDS版MySQL数据库,用于存储设备数据。
    了解云数据库RDS版,请参见 云数据库RDS版文档
    1. 登录 云数据库RDS版控制台。
    2. 云数据库管理页,单击创建实例,创建一个MySQL类型的数据库实例。
      说明 RDS for MySQL数据库实例的地域须与物联网平台设备地域和DataHub项目地域保持一致。
    3. 在您的数据库实例列表中,单击该实例对应的管理
    4. 在左侧导航栏中,单击账号管理,创建数据库用户账号。
    5. 在左侧导航栏中,单击数据库管理,创建数据库。
    6. 在左侧导航栏中,单击数据安全性,添加数据库白名单。请参见 设置IP白名单文档中的设置方法。
    7. 在左侧导航栏中,单击基本信息,查看该数据库的信息。

      后续步骤中,该数据库信息需配置到DataHub、DataV或阿里实时计算开发平台中,用于同步数据。

    8. 基本信息页上方导航栏中,单击登录数据库,输入信息登录数据库。
    9. 创建数据库表。如,表mytable包含两个字段:
      表 1. mytable
      字段名类型说明
      d_datavarchar(32)时间。
      device_numint活跃设备数量。
  2. 创建DataHub项目和Topic。
    了解流数据处理平台DataHub,请参见 DataHub文档。
    1. 登录 DataHub控制台。
    2. 项目管理页面,单击新建项目,创建项目。
    3. 在项目列表中,单击新建项目对应的查看
    4. 在项目信息页,单击新建Topic,创建Topic。

      Topic是DataHub中的存储单元,类似数据库中的表。

    5. Topic创建成功后,在Topic列表中,单击该Topic对应的查看按钮,查看Topic详情。
    6. (可选)配置DataConnector将Topic数据同步到数据库表中。在Topic信息页,单击右上方+同步按钮,选择RDS & Mysql。然后,在新建Connector面板中,输入您上一步创建的MySQL数据库信息并选择连接模式和网络类型。
      说明 使用Connector是直接将Topic表同步到数据库表。如果需要对DataHub中的数据进行计算,再将计算结果写入数据库,请参见第3步,配置实时计算平台。
      数据库信息,在 云数据库RDS版控制台中,对应数据库的基本信息页查看。
      查看
      数据库相关参数说明:
      参数说明
      Host数据库的内网地址。
      Port数据库的内网端口,一般为3306。
      Database数据库的名称。
      Table数据库表的名称。
      User数据库账号,即用户名。
      Password数据库的登录密码。
  3. (可选)使用 阿里实时计算进行流式数据计算处理。
    如要统计活跃设备数量,需根据DataHub接收到的设备收发消息记录计算出一个指标,即截至到当前时间,收发过消息的设备数量。这个指标经过实时计算,然后写入数据库中。

    了解实时计算开发平台,请参见 什么是阿里云实时计算Flink版。

    1. 登录 阿里实时计算开发平台控制台。
    2. 单击新建项目,创建项目。
      说明 您需先购买 实时计算资源,才可以创建项目。
    3. 项目创建成功后,单击项目名称,进入项目详情页。然后,单击开发 > 新建作业,创建一个作业。新建作业
    4. 数据存储 > DataHub数据存储 > +注册与网络。输入您的DataHub Endpoint地址(各地域Endpoint地址,请参见DataHub域名列表),Project设置为DataHub中的Project名称,然后单击注册
      注册
    5. 单击数据存储 > RDS数据存储 > +注册与网络,输入已创建的数据库信息,然后单击注册
    6. 数据存储中,双击DataHub数据存储后出现已注册的DataHub项目名称。双击项目名称,然后双击Topic名称,再单击页面中间的作为输入表引用,实时计算将自动解析Topic的Schema,并自动添加对应的SQL。
      数据存储
    7. 数据存储中,找到数据库表名,双击该表名,然后单击作为结果表引用。实时计算将自动解析数据库表,并自动添加对应的SQL。
      数据库表
    8. 在作业编辑框,编写业务逻辑的SQL。如计算活跃设备数量的SQL示例:
      
      REPLACE INTO activity_device 
      SELECT 
      from_unixtime(FLOOR(dm.msgtime/1000), 'yyyy-MM-dd') as d_data,
      count(DISTINCT dm.devicename) as device_num
      FROM device_message dm
      group by from_unixtime(FLOOR(dm.msgtime/1000), 'yyyy-MM-dd');
    9. 单击调试,上传数据文件进行调试SQL,得到的结果跟数据预期一致,表示SQL正确。
    10. 作业开发并调试完成后,单击上线,然后按流程完成上线操作。
      说明 上线作业操作仅将您的作业提交到数据运维中,但并未真正启动运行,若需启动作业,需在运维界面启动。
  4. 在物联网平台控制台,创建产品和设备,并配置规则引擎。
    1. 登录物联网平台控制台。
    2. 实例概览页面,找到对应的实例,单击实例进入实例详情页面。
      重要 目前华东2(上海)、华北2(北京)、华南1(深圳)地域开通了企业版实例服务。其他地域,请跳过此步骤。
      实例概览
    3. 在左侧导航栏中,单击设备管理 > 产品,然后创建产品。如需帮助,请参见创建产品。
    4. 产品创建成功后,进入该产品的产品详情页,根据您的业务需要,为产品 创建自定义Topic类, 定义产品功能(即定义物模型)等。
    5. 在左侧导航栏中,单击设备管理 > 设备,然后注册设备。
    6. 在左侧导航栏中,单击消息转发 > 云产品流转,创建一条规则。
      重要 若当前页面为云产品流转新版页面,需先单击右上角返回旧版,再单击目标规则对应的查看
    7. 在规则列表中,单击规则对应的查看按钮。
    8. 数据流转规则页,单击处理数据栏的编写SQL按钮,为该条规则编写数据处理SQL,并调试SQL语句。
      编写SQL
    9. 单击转发数据栏对应的添加操作按钮,并配置规则动作将设备数据转发至DataHub的Topic中。如需帮助,请参见 设置数据流转规则。
    10. 规则配置完成后,在云产品流转页的规则列表中,单击该规则对应的启动按钮,启动规则。
  5. 开发设备端,连接设备与物联网平台。
    本例以Java Link SDK为例开发设备: 下载Java SDK Demo。开发方法,请参见 环境要求与配置。

    设备端SDK开发完成,并将SDK烧录至物理设备中。设备上电联网后,建立与物联网平台之间的连接,便可与物联网平台进行数据交换。数据通过规则引擎转发至DataHub中,再经过实时计算处理后,写入数据库中。

  6. 在DataV控制台,配置DataV。
    1. 登录 DataV控制台。
    2. 配置DataV数据源。单击我的数据 > 添加数据。输入您的RDS MySQL数据库信息后,单击确定
    3. 单击我的可视化 > 新建可视化
    4. 在页面左侧选择大屏模板,然后将鼠标移动至页面中间的选择模板区域,单击确定

      DataV提供了一些大屏模板供您使用,您也可以选择空白模板,然后按照自己的需求自定义大屏显示组件和样式。

    5. 根据您的需求配置显示组件。
      配置组件
    6. 配置组件数据。

      在组件配置右侧,单击{/}数据配置按钮,选择数据源类型为数据库,选择已有数据源为您的数据库名,然后编写SQL。

      编写SQL
  7. 测试。配置完成之后,使用不同的设备登录,并发送消息,大屏展示的活跃设备数会实时改变。