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

前提条件

背景信息

  • 任务场景:在DataV可视化大屏上,实时展示物联网平台某产品下的设备相关数据。
  • 实现过程:
    1. 物联网平台采集设备数据。
    2. 通过规则引擎,物联网平台将一个产品下的设备数据转发至流数据处理平台DataHub中。
    3. DataHub根据相关配置,将设备数据发送至实时计算平台进行计算处理后,再写入RDS MySQL版数据库中。(若无需计算处理的数据,可通过DataConnector将数据直接从DataHub 平台同步到云数据库RDS MySQL版数据库中。)
    4. DataV根据配置,以MySQL数据库表作为数据源,实时展示相关设备数据 。


操作步骤

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

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

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

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

    5. Topic创建成功后,在Topic列表中,单击该Topic对应的查看按钮,查看Topic详情。
    6. (可选)配置DataConnector将Topic数据同步到数据库表中。在Topic信息页,单击右上方+DataConnector按钮,选择同步到RDS Mysql。然后,在创建DataConnector对话框中,输入您上一步创建的MySQL数据库信息并选择连接模式和网络类型。
      说明 使用DataConnector是直接将Topic表同步到数据库表。如果需要对DataHub中的数据进行计算,再将计算结果写入数据库,请参见第3步,配置实时计算平台。
      数据库信息,在云数据库RDS版控制台中,对应数据库的基本信息页查看。


      数据库相关参数说明:
      参数 说明
      Mysql Host 数据库的内网地址。
      Mysql Port 数据库的内网端口,一般为3306。
      Mysql Database 数据库的名称。
      Mysql Table 数据库表的名称。
      User 数据库账号,即用户名。
      Password 数据库的登录密码。
  3. (可选)使用阿里实时计算进行流式数据计算处理。
    如要统计活跃设备数量,需根据DataHub接收到的设备收发消息记录计算出一个指标,即截至到当前时间,收发过消息的设备数量。这个指标经过实时计算,然后写入数据库中。

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

    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. 在左侧导航栏中,单击设备管理 > 产品,然后创建产品。如需帮助,请参见创建产品
    3. 产品创建成功后,进入该产品的产品详情页,根据您的业务需要,为产品创建自定义Topic类定义产品功能(即定义物模型)等。
    4. 在左侧导航栏中,单击设备管理 > 设备,然后注册设备
    5. 在左侧导航栏中,单击规则引擎,创建一条规则。
    6. 在规则列表中,单击规则对应的管理按钮。
    7. 规则详情页,单击处理数据栏的编辑按钮,为该条规则编写数据处理SQL,并调试SQL语句。


    8. 单击转发数据栏对应的添加操作按钮,并配置规则动作将设备数据转发至DataHub的Topic中。如需帮助,请参见设置数据流转规则
      图 1. 配置规则动作


    9. 规则配置完成后,在规则引擎页规则列表中,单击该规则对应的启动按钮,启动规则。
    规则启动后,使用模拟设备发送消息,检验设备发送的消息是否成功流转至DataHub中。可以在设备的日志服务页查看设备日志;在DataHub控制台对应的Topic中,查看Shards中数据量的变化,并通过数据抽样功能,可以看到具体的消息内容。
  5. 开发设备端,连接设备与物联网平台。
    本例以配置Eclipse环境JAVA SDK为例。
    1. 下载设备端SDK
    2. 将解压后的Java SDK文件导入Eclipse应用的Existing Maven Projects中之后,在SimpleClient4IOT.java文件中,配置设备证书和消息通信的Topic。


    3. 设置设备与物联网平台的通信通道,此处以MQTT连接为例。

      您可以根据您的业务修改以下示例中消息content。



      设置完成后,单击运行。如果测试消息发送成功,返回如下信息:



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

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

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

    5. 根据您的需求配置显示组件。
      DataV配置页面介绍:
      • 上方一排图标是可供您选择、添加的组件。
      • 中间区域为大屏显示样式。单击其中的组件板块,可对该板块进行具体配置。
      • 左侧是您已选择的组件。单击组件,可在右侧对该组件进行具体配置。鼠标右键单击组件,可调整组件显示位置,重命名组件,或删除组件。
      • 在右侧配置组件信息。

      配置说明,请参见DataV文档



    6. 配置组件数据。

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



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