昨天偶然聊起工业场景下IOT时序处理问题,有人讨论时序数据库哪家强,有人询问数据收集应该用云服务商的PaaS还是自己搭建,不一而足。笔者认为没有最强的产品,只有最合适的架构。抛开具体应用场景而去谈单一产品性能,无异于缘木求鱼,刻舟求剑。针对客户具体情况,选择相应的架构,灵活结合开源工具和云厂商服务;同时以实用性为原则,解决问题而非为了所谓的最新科技而选择一些实用性有限的产品。在此分享个人一点看法,水平有限,抛砖引玉,欢迎切磋讨论。
创新互联建站是专业的三穗网站建设公司,三穗接单;提供网站制作、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行三穗网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
首先,我们可以把整个系统分成几部分,随后逐一探讨。在此暂且采用将整个架构分为,终端、分析、行动三部分。
在“终端”部分,微软近期动作很大,预期投入50亿美金进行IOT研发的大部分都花在了这里,其中产品AzureSphere备受期待,目前已经和台积电等厂商联合生产开发中,×××还要飞一会~其最大的优势就是双套安全机制,确保客户终端安全
暗黑科技Azuresphere传送门:https://azure.microsoft.com/en-us/services/azure-sphere/
在“分析”部分,微软IOT solution包含了丰富的产品。
传送门:https://azure.microsoft.com/zh-cn/overview/iot/
先从数据收集说起,常见几种收集方式如下:
其中最常被比较的两种方式为使用云厂商PaaS (在此以微软IOT Hub,Event Hub为例)vs 开源自建(在此以Kafka为例),对比如下:
使用微软服务 (IOT Hub) | 使用微软服务 (Event Hub) | 自建 (Kafka) | |
托管 | 是 | 是 | 无 |
并行 | 是 | 是 | 是 |
传输方向 | 双向 | 单向 | 单向 |
设备管理 | 有 | 无 | 无 |
传递 | 可配置 | 至少一次 | 至少一次 |
支持协议 | MQTT,HTTPS,AMQP | HTTPS、AMQP 1.0、 Apache Kafka | Kafka |
可扩展性 | 相对高(可轻松扩展到TB级) | 相对高(可轻松扩展到TB级) | 相对低 |
直接成本 | 高 | 中 | 低 |
管理成本 | 低 | 低 | 高 |
真实工业情况下,能否用云厂商PaaS收集数据往往其决定因素的是客户终端设备,特别是该设备支持的协议。比方Honeywell的工业机器大部分可以用微软IOT收集数据;比方Siemens自成体系,并未开放,微软只能在Siemens自己收集完数据,加工整理之后,通过客户传给微软,做做数据分析展现之类的后续工作。
其中IOT Hub还在不断演进当中,接下来devices streams即将登场,会给设备端链接带来更好的易用性和安全性:
https://azure.microsoft.com/zh-cn/blog/introducing-iot-hub-device-streams-in-public-preview/
如果客户使用开源,会常见Kafka, Flume, Storm等名词,可参见以下blog,内有基础介绍和分步骤代码:
http://www.cnblogs.com/smartloli/p/4615908.html
https://www.cnblogs.com/smartloli/p/4632644.html
数据存储、计算各家云厂商都有功能强大的服务,所实现功能也大同小异,在此不赘述。谨在此提两个技术细节问题供探讨:
数据库选择:时序数据库虽然喧嚣之上,但是实际应用者寥寥。针对需要长期展现的类似matrix数据有一定应用场景价值。更多情况下,传统数据库或者Hadoop体系就有均有丰富的最佳实践,选择时根据实际情况而定,简简单单能够解决问题就好。
压缩数据:这项技术特别容易被忽略,但是特别是在大数据量情况下可以考虑。在这里需要做一个平衡,就是压缩和解压缩带来计算量的增大和存储/网络负载减少之间的取舍。其好处一方面显而易见的好处是压缩数据可以节约存储成本,还有可以在分布式计算情况下节约各个节点之间传输数据的网络压力,减少传输时间,从而增加运算速度。
常见压缩工具对比如下:
接下来就是数据分析引擎的选择,常见选择标准为查询的兼容性和时延:
除了工具推陈出新,随着架构的演进,现在serverless大行其道,传统架构也可以进击发展为分为fast path和slow path双通道的全自动连接架构。
“行动”部分,根据客户具体应用场景而定,有的采用预防性维护,有的采取远程开关机等等,在此不展开。
工业数据分析曾经甚嚣尘上,似乎传统制造业要执数字化转型之牛耳,言必及GE;而随着一系列泡沫挤出,Predix也落得一个出售的命运,颇有点“看斜阳照大地阡陌,从头转“的味道了。作为从业人员,大势不能违,从小处做起,积点滴,汇江海,共勉之。
技术博大精深,个人能力有限,行文粗鄙,抛砖引玉,欢迎探讨指正,共精进。
参考材料:
微软IOT参考架构:
Azure IoT Reference Architecture Guide
微软在IOT成熟案例:
Rolls Royce https://customers.microsoft.com/en-us/story/rollsroycestory
POC含具体步骤的blog在此:
https://mp.weixin.qq.com/s/rMJZ2At6AGVqTVZ5ZB0GLA?
POC代码在此:
https://github.com/jurejoy/Temperature-Forecast