工业互联网数据处理架构
最近几天,有几个朋友和我聊起来工业互联网的数据处理架构。无论何种架构都要根据业务需求进行相应的架构选型,不能够为了架构而架构,所有的架构都是为业务服务,并且能够为业务的发展流出余量或者有演化的空间。
对于工业互联网的平台,数据的存储和治理等工作是这类平台的基础问题。对于很多互联网公司,基础的数据结构如下:
这个方案基本基于 Hadoop ,在处理大数据时,将多个开源软件,如现在比较流行的 Kafka,然后把实时数据引入到 redis,把历史数据存到 Hadoop,中间可能结合 Spark 和 Flink 的计算,利用集群来处理海量数据。这是一种非常通用的处理大数据的解决方案,可以处理百亿、千亿、甚至万亿级别的数据,可以根据需求来动态的扩容机器,就基本能保证数据管理方案 。
对于有特殊需求,可以写一些代码来实现,比如做实时监控,就可以在 Kafka 后面挂一个 Flink 做实时分析,做实时的流计算,把当前的 QBS、健康状态做实时统计;在比如看历史数据,可以在 Hadoop 上挂一个 MapReduce,这样我们可以通过写程序把所有的需求都实现。然而,对于一些规模较小的公司, 或者并没有那么大的规模的数据需求和使用需求,Hadoop 系统并没有很好的解决,主要问题在于开发效率低而成本高,运行复杂且效率效率差。
因此如何综合考虑成本和业务的需求,搭建一个比较初级的物联网数据管理平台,2020 年我写过一篇文章,使用开源进行工业互联网平台的搭建,可以参考一下。https://xie.infoq.cn/article/190320d8fed927a9f61afd6f4
实际上对于工业互联网平台,数据至关重要,我现在将我对于中小企业的一个简单的方案写一下,可以直接采用 PostgreSQL + TimescaleDB 的方案作为基础的数据架构平台。SQL 与 NoSQL 混合数据库方法
使用数据库来存储实体数据如:设备、资产、客户、仪表板等 以及 时序数据:
Hybrid 的方案中,将所有实体数据存储在 PostgreSQL 数据库中,将时间序列数据存储在 Timescale 数据库中。这种方案基本能够满足一个工业互联网数据的存储需求。
基于设备属性或数据本身将数据从物联网设备数据分析以及其他。需要高级分析的支持:机器学习、预测分析等工作。将数据路由到 Kafka 主题,使用简单的 Kafka Streams 应用程序聚合来自多个设备的数据。
并可以给予 Grafana 实现数据的可视化等工作。
比如一个基本的使用场景,使用具有 30 秒窗口(可配置)的 Kafka Streams 作业分析来自多个设备的实时数据。
工业互联网是个超级大的主题,如何使用开源的技术完成一个平台的建立是一个团队的课题,今天想到这里就写到这,后面想到再继续补充。
版权声明: 本文为 InfoQ 作者【刘旭东】的原创文章。
原文链接:【http://xie.infoq.cn/article/80716b0fc3940140f6d05fa20】。文章转载请联系作者。
评论