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

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

合作背景

产品互补性强

作为一家物联网数据基础设施软件供应商,EMQ 致力于帮助企业客户快速构建云边一体化的 IoT 基础设施能力底座。在构建物联网平台与应用的过程中,很多企业会选择公有云方式部署,往往会需要公有云提供 IoT 存储服务。阿里云表格存储(Tablestore)则可以面向海量结构化数据提供 Serverless 表存储服务,同时针对物联网场景深度优化提供一站式的 IoTstore 解决方案。

行业客户高度重叠

以 EMQX 为核心的 EMQ 云边一体化产品组合广泛应用在车联网、能源电力、充电桩、智能家居、工业互联网和消息通信等行业场景。阿里云表格存储(Tablestore)提供的海量数据低成本存储、毫秒级在线数据查询和检索以及灵活的数据分析能力,也适用于海量账单、IM 消息、物联网、车联网、风控、推荐等场景中的结构化数据存储。EMQX+TableStore 有高度重叠的应用场景和目标客户,可共同为企业客户提供一站式的物联网消息通信、数据集成和 IoT 数据存储服务。

解决多元化数据存储需求

物联网应用场景往往面临多元化数据存储的需求,EMQ 云边一体化产品组合通过边缘的协议接入、数据清洗以及云端强大的规则引擎,可以实现元数据、消息数据、时序数据的一站式集成对接能力。在 IoTstore 组合存储方面,客户大多是通过开源产品组合方案(Mysql+ES+HBase+OPENTSDB 等)实现 ,技术架构、运维等往往成本较高,Tablestore 则通过一体化架构,为 IoTstore 提供了大规模、免运维、低成本、易扩展的解决方案。

方案详解

产品介绍

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

EMQX 通过一体化的分布式 MQTT 消息服务和强大的 IoT 规则引擎,为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,「随处运行,无限连接,任意集成」,助力企业快速构建关键业务的 IoT 平台与应用。
以 EMQX 为核心,结合​​物联网边缘工业协议网关软件 Neuron​​,在云端则可实现全网络、多协议的海量消息接入能力,强大的规则引擎实现 IoT 数据的编解码、数据转发、数据持久化等灵活集成能力,为后端大数据分析和应用提供可靠的数据支撑,构建云边一体化的 IoT 基础设施能力底座。


TableStore:一站式物联网存储 IoTstore

表格存储(Tablestore)是阿里云推出的一款云上的结构化数据存储产品,面向海量结构化数据提供 Serverless 表存储服务,具备极为丰富的产品功能和生态,提供了物联网存储 IoTstore、宽表引擎、多元索引等能力来满足时序数据、消息数据、元数据场景的需求。同时针对物联网场景深度优化提供一站式的 IoTstore 解决方案,提供海量数据低成本存储、毫秒级的在线数据查询和检索以及灵活的数据分析能力。
表格存储 Tablestore 提供的 Serverless 服务模式极为适合物联网数据存储,计算和存储均可独立弹性扩展。在使用过程中无需关心存储容量和计算扩容,存储容量可弹性扩展至 PB 级,提供冷热分层存储大大降低存储成本。底层对设备元数据进行多维索引,满足灵活的设备检索需求。提供 SQL 能够对时序数据进行查询和分析,灵活的满足数据分析需求。

方案架构

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_物联网
该方案通过 EMQX 的规则引擎实现与 Tablestore 集成,用户可以利用可视化的规则引擎配置界面,快速便捷实现设备元数据、时序数据、消息数据快速集成入库。
EMQX 与 Tablestore 团队针对产品高效对接都做了专项优化工作,实现了多元的 IoT 数据高效存储集成。通过 Tablestore 一体化架构,为 IoTstore 提供大规模、免运维的低成本、易扩展的一站式解决方案,有效解决了数据库产品的技术选型、分类存储等技术难点。
EMQX+Tablestore 联合解决方案为企业客户提供一站式的物联网消息通信、数据集成和 IoT 数据存储,可以广泛应用于车联网、充电桩、IM 消息、物联网、智能推选等应用场景。
以车联网场景为例,该场景涉及很多车况感知数据上报和车控消息的下发,车辆定时会更新当前的最新状态信息,如发动机当前转速、当前车速等。这些描述车辆最新状态信息的数据我们称之为元数据;而在智能汽车行驶过程中,车辆的状态数据会随着时间而变化,如车辆一段时间内的车速、胎压等,这些描述车辆历史状态信息的数据我们称之为时序数据;还有一种数据场景是对车辆行为进行控制的指令消息,例如通过车主的手机 APP 远程开启空调的车控指令下发和执行结果反馈,这些控制指令的上下行被称为消息数据。
不同类型的数据应用的场景各不相同,所以对存储系统的需求也有所不同。我们之前可能需要通过 MySQL、Kafka、Redis、HBase 等多套不同的数据库产品来融合实现,而现在我们则可以基于 EMQX+Tablestore 轻松实现一站式数据采集与存储。

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

创建数据库实例

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

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

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_阿里云_02
点击上一步中创建的时序表,进入时序表管理。点击数据管理,创建时间线,按照业务设计创建出时间线。

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_物联网_03

创建规则引擎资源

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

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_Tablestore_04
使用创建出的实例属性,填写对应 Tablestore 服务器 和 实例 名称。
AccessKey & Secret 需要使用阿里账号申请,详细申请步骤,请参考 Tablestore 官方文档。
服务器地址请按照部署方式的不同,填写不同的域名。

创建规则

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

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_物联网_05

创建动作

表名与度量名称,请按照创建的表名与度量名称填写(度量名称可以为空字符串)。
开启同步写入之后,规则引擎将按照批量大小与批量间隔写入数据,以提高高并发场景下的服务性能。

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_iot_06
Tablestore 支持的数据格式:

  • int
  • double
  • boolean
  • string
  • binary

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

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_Tablestore_07

生产测试数据

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

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_emqx_08
输入度量名称(演示使用的是 m_re2),client ID 为 123456,我们使用 client=123456 作为查询条件,点击查询。

EMQX + 阿里云 Tablestore 多场景一站式 IoT 数据解决方案_阿里云_09
可以看到数据已经写入成功。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:​​https://www.emqx.com/zh/blog/emqx-and-tablestore-multi-scenario-one-stop-iot-data-solution​