本文介绍如何对接物联网平台和阿里云大数据平台,以实现设备数据分析、统计、计算和可视化实时展示。
前提条件
开通、购买相关阿里云产品实例和计算资源。使用阿里云大数据平台处理物联网平台设备相关数据,涉及多个阿里云产品,包括云数据库RDS MySQL版、DataHub、实时计算平台、DataV、物联网平台等。
了解涉及产品的配置使用方法和注意事项。
背景信息
任务场景:在DataV可视化大屏上,实时展示物联网平台某产品下的设备相关数据。
实现过程:
物联网平台采集设备数据。
通过规则引擎,物联网平台将一个产品下的设备数据转发至流数据处理平台DataHub中。
DataHub根据相关配置,将设备数据发送至实时计算平台进行计算处理后,再写入RDS MySQL版数据库中。(若无需计算处理的数据,可通过DataConnector将数据直接从DataHub 平台同步到云数据库RDS MySQL版数据库中。)
DataV根据配置,以MySQL数据库表作为数据源,实时展示相关设备数据 。
操作步骤
创建一个云数据库RDS版MySQL数据库,用于存储设备数据。
了解云数据库RDS版,请参见云数据库RDS版文档。
登录云数据库RDS版控制台。
在云数据库管理页,单击创建实例,创建一个MySQL类型的数据库实例。
说明RDS for MySQL数据库实例的地域须与物联网平台设备地域和DataHub项目地域保持一致。
在您的数据库实例列表中,单击该实例对应的管理。
在左侧导航栏中,单击账号管理,创建数据库用户账号。
在左侧导航栏中,单击数据库管理,创建数据库。
在左侧导航栏中,单击数据安全性,添加数据库白名单。请参见设置IP白名单文档中的设置方法。
在左侧导航栏中,单击基本信息,查看该数据库的信息。
后续步骤中,该数据库信息需配置到DataHub、DataV或阿里实时计算开发平台中,用于同步数据。
在基本信息页上方导航栏中,单击登录数据库,输入信息登录数据库。
创建数据库表。如,表mytable包含两个字段:
表 1. mytable
字段名
类型
说明
d_data
varchar(32)
时间。
device_num
int
活跃设备数量。
创建DataHub项目和Topic。
了解流数据处理平台DataHub,请参见DataHub文档。
登录DataHub控制台。
在项目管理页面,单击新建项目,创建项目。
在项目列表中,单击新建项目对应的查看。
在项目信息页,单击新建Topic,创建Topic。
Topic是DataHub中的存储单元,类似数据库中的表。
Topic创建成功后,在Topic列表中,单击该Topic对应的查看按钮,查看Topic详情。
(可选)配置DataConnector将Topic数据同步到数据库表中。在Topic信息页,单击右上方+同步按钮,选择RDS & Mysql。然后,在新建Connector面板中,输入您上一步创建的MySQL数据库信息并选择连接模式和网络类型。
说明使用Connector是直接将Topic表同步到数据库表。如果需要对DataHub中的数据进行计算,再将计算结果写入数据库,请参见第3步,配置实时计算平台。
数据库信息,在云数据库RDS版控制台中,对应数据库的基本信息页查看。
数据库相关参数说明:
参数
说明
Host
数据库的内网地址。
Port
数据库的内网端口,一般为3306。
Database
数据库的名称。
Table
数据库表的名称。
User
数据库账号,即用户名。
Password
数据库的登录密码。
(可选)使用阿里实时计算进行流式数据计算处理。
如要统计活跃设备数量,需根据DataHub接收到的设备收发消息记录计算出一个指标,即截至到当前时间,收发过消息的设备数量。这个指标经过实时计算,然后写入数据库中。
了解实时计算开发平台,请参见什么是阿里云实时计算Flink版。
单击新建项目,创建项目。
说明您需先购买实时计算资源,才可以创建项目。
项目创建成功后,单击项目名称,进入项目详情页。然后,单击 ,创建一个作业。
DataHub域名列表),Project设置为DataHub中的Project名称,然后单击注册。 。输入您的DataHub Endpoint地址(各地域Endpoint地址,请参见
单击 ,输入已创建的数据库信息,然后单击注册。
在数据存储中,双击DataHub数据存储后出现已注册的DataHub项目名称。双击项目名称,然后双击Topic名称,再单击页面中间的作为输入表引用,实时计算将自动解析Topic的Schema,并自动添加对应的SQL。
在数据存储中,找到数据库表名,双击该表名,然后单击作为结果表引用。实时计算将自动解析数据库表,并自动添加对应的SQL。
在作业编辑框,编写业务逻辑的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');
单击调试,上传数据文件进行调试SQL,得到的结果跟数据预期一致,表示SQL正确。
作业开发并调试完成后,单击上线,然后按流程完成上线操作。
说明上线作业操作仅将您的作业提交到数据运维中,但并未真正启动运行,若需启动作业,需在运维界面启动。
在物联网平台控制台,创建产品和设备,并配置规则引擎。
登录物联网平台控制台。
在实例概览页签的全部环境下,找到对应的实例,单击实例卡片。
在左侧导航栏中,单击创建产品。 ,然后创建产品。如需帮助,请参见
产品创建成功后,进入该产品的产品详情页,根据您的业务需要,为产品创建自定义Topic类,定义产品功能(即定义物模型)等。
在左侧导航栏中,单击注册设备。 ,然后
在左侧导航栏中,单击 ,创建一条规则。
重要若当前页面为云产品流转新版页面,需先单击右上角返回旧版,再单击目标规则对应的查看。
在规则列表中,单击规则对应的查看按钮。
在数据流转规则页,单击处理数据栏的编写SQL按钮,为该条规则编写数据处理SQL,并调试SQL语句。
单击转发数据栏对应的添加操作按钮,并配置规则动作将设备数据转发至DataHub的Topic中。如需帮助,请参见设置数据流转规则。
规则配置完成后,在云产品流转页的规则列表中,单击该规则对应的启动按钮,启动规则。
规则启动后,使用模拟设备发送消息,检验设备发送的消息是否成功流转至DataHub中。可以在设备的日志服务页查看设备日志;在DataHub控制台对应的Topic中,查看Shards中数据量的变化,并通过数据抽样功能,可以看到具体的消息内容。
开发设备端,连接设备与物联网平台。
本例以Java Link SDK为例开发设备:下载Java SDK Demo。开发方法,请参见环境要求与配置。
设备端SDK开发完成,并将SDK烧录至物理设备中。设备上电联网后,建立与物联网平台之间的连接,便可与物联网平台进行数据交换。数据通过规则引擎转发至DataHub中,再经过实时计算处理后,写入数据库中。
在DataV控制台,配置DataV。
登录DataV控制台。
配置DataV数据源。单击 。输入您的RDS MySQL数据库信息后,单击确定。
单击 。
在页面左侧选择大屏模板,然后将鼠标移动至页面中间的选择模板区域,单击确定。
DataV提供了一些大屏模板供您使用,您也可以选择空白模板,然后按照自己的需求自定义大屏显示组件和样式。
根据您的需求配置显示组件。
DataV配置页面介绍:
上方一排图标是可供您选择、添加的组件。
中间区域为大屏显示样式。单击其中的组件板块,可对该板块进行具体配置。
左侧是您已选择的组件。单击组件,可在右侧对该组件进行具体配置。鼠标右键单击组件,可调整组件显示位置,重命名组件,或删除组件。
在右侧配置组件信息。
配置说明,请参见DataV文档。
配置组件数据。
在组件配置右侧,单击{/}数据配置按钮,选择数据源类型为数据库,选择已有数据源为您的数据库名,然后编写SQL。
测试。配置完成之后,使用不同的设备登录,并发送消息,大屏展示的活跃设备数会实时改变。