写点什么

物联网平台规则引擎流转到 S3 对比

用户头像
张俭
关注
发布于: 2021 年 06 月 14 日

0 对于物联网平台来说,规则引擎是其中一个很重要的功能,也叫消息流转功能,将消息流转到各类中间件、云产品中。在华为、AWS、Azure、阿里这四个物联网平台中,阿里不支持流转到 S3/类 S3 存储中。本文对比一下华为云、AWS、Azure 把设备消息流转到 S3/类 S3 存储的功能

参考资料

  • https://docs.amazonaws.cn/general/latest/gr/iot-core.html#limits_iot

华为云

规则粒度和限制

  • 规则配置粒度到 OBS

  • 限制单用户配置 100 条规则,每个规则 10 个 Action

功能实现

针对华为云,我测试了设备的消息上报转发到华为云 OBS 的功能。


流转规则需要指定 obs 桶,随后运行之后,华为云 OBS 体现为


  • 设备的每条消息都会在 obs 中存储为一个文件

  • 名称采用 deviceId+毫秒级时间戳+后面 4 位数字

关键路径截图

配置规则时指定到 obs 桶

单条消息单个文件

优势

可以非常轻易地查询出单个设备的消息,因为文件名携带有毫秒级时间戳,还可以指定具体

劣势

用来做 MapReduce 的话,文件数目太多,由于 S3 云厂商往往通过 API 调用次数收费,不仅是速度,成本也会很高。

AWS

规则粒度和限制

  • 规则配置粒度到桶及 Key,相当于华为云 OBS 桶+文件名

  • 限制规则每秒进行 20k 次运算

  • 限制最多拥有 1000 条规则

  • 限制每个规则最多 10 个 action

功能实现

再次上报数据触发规则会把 obs 中的数据替换。(通过版本控制可以获取到老的数据)

关键路径截图

配置规则指定粒度到 Key


仅有一个 Key,新值覆盖旧值

优劣势

AWS 的这个模式很适合存储每个设备的最新数据。不过由于规则数量上的限制,最多只能在 S3 上存储 1000 个键值对。可用性较低。可用于数量小于 1000 的设备,存储、查询最新数据。

Azure 转发

规则粒度限制

  • 规则配置粒度到存储容器

  • Azure 可配置存储入存储容器的批量频率和大小限制

  • 编码支持 Avro 和 Json 两种格式

  • 最多 100 条路由

功能实现

自上报事件,到存储中出现数据,azure 是最慢的,azure 做了批量的缓冲,达到 batch 的大小和时间要求后才会写入存储。

关键路径截图

配置路由规则

存储中批量数据

因为选择了 avro 格式,所以 vim 打开是乱码,不过明显可以看到是多条数据


优势

Azure 的这种方式,比较适合做 MapReduce 类操作,相对华为云来说,Azure 的文件数量大大减少,如果用于做 MapReduce 这类操作,因为文件碎片小,作业速度会比华为云快,而且由于云厂商对存储,通常以 api 调用次数收费,价格也会比华为云低。

劣势

不易针对单个设备进行查询。

发布于: 2021 年 06 月 14 日阅读数: 37
用户头像

张俭

关注

还未添加个人签名 2018.08.02 加入

还未添加个人简介

评论

发布
暂无评论
物联网平台规则引擎流转到S3对比