打开网易新闻 查看精彩图片

在不久前落幕的2022阿里云全球数据湖峰会上,EMQ与阿里云联合发布了一站式工业数字化解决方案的构想这一方案的实现基于云原生分布式物联网消息服务器EMQX和阿里云表格存储 Tablestore的高效集成,结合EMQ物联网数据基础设施产品矩阵中的其他边缘计算产品,实现边缘工业数据到云端的综合接入、汇聚与清洗,以及后端大数据分析和应用。

打开网易新闻 查看精彩图片

经过双方研发团队的共同努力,目前EMQX与Tablestore已正式完成技术对接。结合双方产品在数据采集和存储分析方面的优势,EMQ与阿里云共同打造了一套更加通用、适用于更多行业场景的一体化解决方案。

合作背景

合作背景

物联网应用场景往往面临多元化数据存储的需求,EMQ云边一体化产品组合通过边缘的协议接入、数据清洗以及云端强大的规则引擎,可以实现元数据、消息数据、时序数据的一站式集成对接能力。

在IoTstore组合存储方面,客户大多是通过开源产品组合方案(Mysql+ES+HBase+OPENTSDB等)实现,技术架构、运维等往往成本较高,Tablestore则通过一体化架构,为IoTstore提供了大规模、免运维、低成本、易扩展的解决方案。

EMQX+TableStore有高度重叠的应用场景和目标客户,可共同为企业客户提供一站式的物联网消息通信、数据集成和IoT数据存储服务。

方案详解

方案详解

产品介绍

  • EMQX:云原生分布式物联网消息服务器

EMQX通过一体化的分布式MQTT消息服务和强大的IoT规则引擎,为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,「随处运行,无限连接,任意集成」,助力企业快速构建关键业务的IoT平台与应用。

以EMQX为核心,结合物联网边缘工业协议网关软件Neuron、超轻量边缘MQTT消息服务器NanoMQ以及超轻量物联网边缘数据流式分析引擎eKuiper,共同构成了EMQ面向未来的现代物联网数据基础设施。在边缘侧可以实现工业协议适配、边缘轻量级消息服务、边缘流计算(数据过滤、清洗、聚合与AI推理扩展),在云端则可实现全网络、多协议的海量消息接入能力,强大的规则引擎实现IoT数据的编解码、数据转发、数据持久化等灵活集成能力,为后端大数据分析和应用提供可靠的数据支撑,构建云边一体化的IoT基础设施能力底座。

  • TableStore:一站式物联网存储IoTstore

表格存储(Tablestore)是阿里云推出的一款云上的结构化数据存储产品,面向海量结构化数据提供Serverless表存储服务,具备极为丰富的产品功能和生态,提供了物联网存储IoTstore、宽表引擎、多元索引等能力来满足时序数据、消息数据、元数据场景的需求。同时针对物联网场景深度优化提供一站式的IoTstore解决方案,提供海量数据低成本存储、毫秒级的在线数据查询和检索以及灵活的数据分析能力。

表格存储Tablestore提供的Serverless服务模式极为适合物联网数据存储,计算和存储均可独立弹性扩展。在使用过程中无需关心存储容量和计算扩容,存储容量可弹性扩展至PB级,提供冷热分层存储大大降低存储成本。底层对设备元数据进行多维索引,满足灵活的设备检索需求。提供SQL能够对时序数据进行查询和分析,灵活的满足数据分析需求。

方案架构

打开网易新闻 查看精彩图片

该方案通过EMQX的规则引擎实现与Tablestore集成,用户可以利用可视化的规则引擎配置界面,快速便捷实现设备元数据、时序数据、消息数据快速集成入库。

EMQX与Tablestore团队针对产品高效对接都做了专项优化工作,实现了多元的IoT数据高效存储集成。通过Tablestore一体化架构,为IoTstore提供大规模、免运维的低成本、易扩展的一站式解决方案,有效解决了数据库产品的技术选型、分类存储等技术难点。

EMQX+Tablestore联合解决方案为企业客户提供一站式的物联网消息通信、数据集成和IoT数据存储,可以广泛应用于车联网、充电桩、IM消息、物联网、智能推选等应用场景。

以车联网场景为例,该场景涉及很多车况感知数据上报和车控消息的下发,车辆定时会更新当前的最新状态信息,如发动机当前转速、当前车速等。这些描述车辆最新状态信息的数据我们称之为元数据;而在智能汽车行驶过程中,车辆的状态数据会随着时间而变化,如车辆一段时间内的车速、胎压等,这些描述车辆历史状态信息的数据我们称之为时序数据;还有一种数据场景是对车辆行为进行控制的指令消息,例如通过车主的手机APP远程开启空调的车控指令下发和执行结果反馈,这些控制指令的上下行被称为消息数据。

不同类型的数据应用的场景各不相同,所以对存储系统的需求也有所不同。我们之前可能需要通过MySQL、Kafka、Redis、HBase等多套不同的数据库产品来融合实现,而现在我们则可以基于EMQX+Tablestore轻松实现一站式数据采集与存储。

方案实践:如何实现EMQX与Tablestore的对接

方案实践:如何实现EMQX与Tablestore的对接

创建数据库实例

*注:创建实例操作步骤请参考Tablestore官方文档

点击实例管理,点击时序表列表。创建时序表。

打开网易新闻 查看精彩图片

点击上一步中创建的时序表,进入时序表管理。点击数据管理,创建时间线,按照业务设计创建出时间线。

打开网易新闻 查看精彩图片

创建规则引擎资源

登录EMQXDashboard,点击规则引擎-资源-创建资源,下拉框中找到阿里云表格存储Tablestore(时序)

打开网易新闻 查看精彩图片

使用创建出的实例属性,填写对应Tablestore服务器实例名称

AccessKey&Secret需要使用阿里账号申请(详细申请步骤请参考阿里云说明文档:为RAM用户创建访问密钥,链接地址:https://help.aliyun.com/document_detail/116401.htm)。

服务器地址请按照部署方式的不同,填写不同的域名。

打开网易新闻 查看精彩图片

创建规则

规则中SQL语句的编写,请参考官网文档中规则引擎章节。

打开网易新闻 查看精彩图片

创建动作

表名与度量名称,请按照创建的表名与度量名称填写(度量名称可以为空字符串)。

开启同步写入之后,规则引擎将按照批量大小与批量间隔写入数据,以提高高并发场景下的服务性能。

打开网易新闻 查看精彩图片

Tablestore支持的数据格式:

  • int
  • double
  • boolean
  • string
  • binary

这些格式可以被规则引擎自动的识别并分类。但是字符串型数据,默认处理方式为二进制数据,以保证最佳的兼容性。如果需要指定字段值为字符串类型,可以在创建动作时,将字段填写到字符型数据列名中。之后会则引擎会按照字符串的格式方式处理改字段值。

打开网易新闻 查看精彩图片

生产测试数据

使用先进的桌面MQTT客户端MQTTX,登录设备,并发送一条数据。

打开网易新闻 查看精彩图片

输入度量名称(演示使用的是m_re2),clientID为123456,我们使用client=123456作为查询条件,点击查询。

打开网易新闻 查看精彩图片

至此,我们可以看到数据已经写入成功。