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