首页 > 编程知识 正文

时序分析工具,智能工业数据解析与优化

时间:2023-05-06 02:41:43 阅读:185926 作者:4871

时序数据处理应用于物联网、电信、工业互联网领域的过程数据采集、过程控制,建立过程管理和数据链接,属于工业数据管理的新兴领域。 从工具维度看,时序数据处理工具与传统的时序数据库有很大的不同。 后者仅限于车间级可编程逻辑控制器,而不是企业级。

企业级的时序数据处理,首先是基于数据架构和数据模型的。

数据结构决定需要采集哪些时序数据,如何处理,用于哪些业务场景,用于时序数据采集的规划和设计开发; 数据模型用于分析时间序列数据的数据结构。

本文选自 《数据治理:工业企业数字化转型之道》 ,详细介绍了企业级的时间序列数据处理。

通用大数据处理工具的不足

物联网、电信、工业互联网兴起后,大家都想通过共同的大数据平台处理其中的数据。 目前市场上流行的物联网、电信等大数据平台几乎都无一例外都是这样的架构,那么这个通用处理工具的效果如何呢? 可以说有很多不足,主要体现在以下几个方面。

1、开发效率低

由于需要集成四个以上的模块而不是单一的软件,因此许多模块不是标准的POSIX或SQL界面,而是有自己的开发工具、开发语言、配置等,需要一定的学习成本。 此外,由于数据从一个模块移动到另一个模块,因此容易破坏数据的一致性。 此外,这些模块基本上是开源软件,总是存在各种漏洞,如果遇到技术问题,总是会耗费工程师的时间。 一般来说,企业需要建立优秀的团队才能顺利组装这些模块,因此需要大量的人力资源。

2、运行效率低

现有的这些开源软件主要用于处理互联网上的非结构化数据,但通过物联网收集的数据都是按时间顺序结构化的。 采用非结构化数据处理技术处理结构化数据无论是存储还是计算,消耗的资源都非常大。

3、运输成本高

每个模块(无论是Kafka、HBase、HDFS还是Redis )都有自己的管理后台,必须单独进行管理。 在传统的信息系统中,数据库管理员只需学习MySQL和Oracle的管理即可,但现在数据库管理员需要学习许多模块的管理、配置和优化,工作量非常大。 由于模块数量过多,确定一个问题变得更复杂。 例如,用户注意到收集的数据之一已丢失。 无法快速确定是丢失了Kafka、HBase和Spark,还是丢失了APP应用程序,这往往需要很长时间,而且只有通过关联各个模块的日志才能找到原因。 另外,模块越多,系统整体的稳定性越低。

4、产品上市缓慢,利润较低

源软件开发效率低、运输成本高,导致产品上市时间长,企业失去商机。 此外,由于这些开放源代码软件在不断发展,因此同时使用最新版本很费力气。 除互联网巨头外,中小企业一般在通用大数据平台上花费劳动力成本,远远超过专业公司的产品和服务费用。

5、在小数据量场景下,私有化部署过重

在物联网、电信的场景下,由于涉及生产经营数据的安全性,大多采用私有化部署。 每次私有化部署,处理的数据量都有很大的差异,从几百台网络设备到几千万台网络设备。 在数据量较少的场景中,典型的大数据解决方案过于庞大,投资和生产率不成比例。 因此,一些平台提供商往往有两种使用数据库的场景:大数据场景、公共大数据平台、小数据场景和MySQL。 但是,这将导致研发、维护成本的上升。

功能和特点

时序数据处理工具(系统)需要具备哪些功能?

与通用的大数据处理工具相比,它有什么特点呢? 详细分析一下吧。

1、必须是高效的分布式系统。

工业互联网产生的数据量巨大,比如全国有5亿多台智能电表,每个智能电表每15分钟收集一次数据,全国智能电表每天创造500多亿条的记录。 如此大量的数据,任何服务器都无法处理,因此时序数据处理系统必须分散水平扩展。 为了降低成本,单个节点的处理性能必须高效,并且支持数据的快速写入和快速查询功能。

2、必须是实时处理系统

作为互联网大数据的应用场景,用户图像、推荐系统、舆情分析等众所周知,但这些场景在数据计算上不需要实时性,批处理即可。 但在工业互联网大数据的应用场景下,需要基于采集到的数据进行实时预警、决策,延时必须控制在秒级以内。 如果没有实时计算,其商业价值将大幅下降。

3、需要职业水平可靠的服务

工业互联网系统对接的多是生产、经营系统,如果数据处理系统瘫痪,将直接导致停产,无法正常为最终用户提供服务。 因此时序数据处理系统必须具有高可靠性,支持数据的实时备份,支持异地容灾,支持软硬件的在线升级。

4、需要高效的缓存功能

在大多数场景中,必须能够快速获取设备的当前状态和其他信息,例如报警和大屏幕显示。 时充数据处理系统需要提供高效的机制,让用户获得一切

或符合过滤条件的部分设备的最新状态。

5、需要实时流式计算

各种实时预警或预测已经不是简单地基于某一个阈值进行的,而是需要通过将一个或多个设备产生的数据流进行实时聚合计算(并且不只是基于一个时间点,而是基于一个时间窗口进行计算)。不仅如此,计算的需求也相当复杂,因场景而异,应容许用户自定义函数进行计算。

6、需要支持数据订阅

时序数据处理系统与通用大数据平台比较一致的地方是,同一组数据往往有很多应用都需要,因此,时序数据处理系统应该提供订阅功能:只要有新的数据更新,就应该实时提醒应用。而且这个订阅也应该是个性化的,容许应用设置过滤条件,比如只订阅某个物理量5分钟的平均值。

7、实时数据和历史数据的处理要合二为一

实时数据被存储在缓存里,历史数据被存储在持久化存储介质里,而且可能依据时长,被存储在不同的存储介质里。时序数据处理系统应该隐藏背后的存储介质,给用户和应用呈现的是同一个接口和界面。无论是访问新采集的数据还是10年前的老数据,除输入的时间参数不同外,其余都应该是一样的。

8、需要保证数据能持续、稳定地写入

对于物联网系统,数据流量往往是平稳的,因此数据写入所需要的资源往往是可以估算的。其中变化的是查询、分析,特别是即席查询,有可能耗费很多的系统资源,不可控。因此,时序数据处理系统必须保证分配足够的资源以确保数据能够写入系统而不被丢失。准确地说,时序数据处理系统必须是一个写优先系统。

9、需要支持灵活的多维度数据分析

对于联网设备产生的数据,需要进行各种维度的统计分析,比如根据设备所处的地域进行分析,根据设备的型号、供应商进行分析,根据设备所使用的人员进行分析等。这些维度的分析是无法事先设计好的,而是在实际运营过程中,根据业务发展需求定下来的。因此,工业互联网大数据平台需要一个灵活的机制来增加某个维度的分析。

10、需要支持数据降频、插值、特殊函数计算等操作

原始数据的采集可能频次较高,但在具体分析时,往往不需要对原始数据进行分析,而是需要对数据进行降频。时序数据处理系统需要提供高效的数据降频操作。不同设备采集数据的时间点是很难一致的,因此,分析一个特定时间点的值,往往需要插值才能解决,系统需要提供线性插值、设置固定值等多种插值策略。

11、需要支持即席分析和查询

为提高数据分析师的工作效率,时序数据处理系统应该提供命令行工具或容许用户通过其他工具,执行SQL查询,而不是非要通过编程接口。并且查询分析结果可以很方便地被导出,以及被制作成各种图表。

12、需要提供灵活的数据管理策略

一个大的系统,其中采集的数据种类繁多,而且除采集的原始数据外,还有大量的衍生数据。这些数据各自有不同的特点,有的采集频次高,有的要求保留时间长,有的需要保存多个副本以保证更高的安全性,有的需要能快速访问。因此,工业互联网大数据平台必须提供多种策略,让用户可以根据特点进行选择和配置,而且各种策略并存。

13、必须是开放的

时序数据处理系统需要支持业界流行的标准,提供各种语言开发接口,包括C/C++、Java、Go、Python、RESTful等,也需要支持Spark、R、MATLAB等,方便集成各种机器学习、人工智能算法或其他应用,让大数据处理平台能够不断扩展,而不是成为一个数据孤岛。

14、必须支持异构环境

大数据平台的搭建是一个长期工作,每个批次采购的服务器和存储设备都会不一样,时序数据处理系统必须支持各种档次、各种不同配置的服务器和存储设备并存。

15、需要支持边云协同

时序数据处理系统要有一套灵活的机制将边缘计算节点的数据上传到云端,根据具体需要,可以将原始数据、加工计算后的数据,或仅仅符合过滤条件的数据同步到云端,并且同步可以随时取消,同步策略可以随时修改。

16、需要单一的后台管理系统

单的后台管理系统便于查看系统运行状态、管理集群、管理用户、管理各种系统资源等,而且能让系统与第三方IT运维监测平台无缝集成,便于统一管理和维护。

17、便于私有化部署

因为很多企业出于安全及各种因素的考虑,希望时序数据处理系统采用私有化部署。而传统的企业往往没有很强的IT运维团队,因此在时序数据处理系统安装、部署上需要做到简单、快捷,可维护性强。

时序数据的采集

时序数据的采集一般都是通过传感器自动进行的,包括光电、热敏、气敏、力敏、磁敏、声敏、湿敏、电量等不同类别的工业传感器。就某一个具体的物理量而言,数据采集是很容易的。但就整个系统而言,数据采集是相当复杂的,具体表现在以下几个方面。

1、工业数据的协议不标准

在现实场景中,往往会出现ModBus、OPC、CAN、ControlNet、Profibus、MQTT等各种类型的工业协议,而且各个自动化设备生产及集成商还会自己开发各种私有的工业协议,导致在实现工业协议的互联互通时出现极大的难度。很多开发人员在工业现场实施综合自动化等项目时,遇到的最大问题即是面对众多的工业协议,无法有效地进行解析和采集数据。


2、通信方式不统一

由于历史原因,采集的数据往往会通过局域网、蓝牙、Wi-Fi、2.5G、3G、4G等各种传输方式被传送到服务器中,导致各种通信方式并行存在,连接管理变得复杂。


3、安全性考虑不足

传统的工业系统都运行在局域网中,安全问题不是考虑的重点。若需要通过云端(特别是公有云)调度工业行业中核心的生产数据,又没有充分考虑安全问题,则很有可能造成难以弥补的损失。


根据上述原因,企业在实际采集数据时,往往配有工业互联网网关盒子,该盒子支持各种物理接口、通信协议和工业标准协议,将不同协议进行转换,对数据进行安全加密,统一以MQTT(Message Queuing Telemetry Transport,ISO/IEC PRF 20922)协议或其他协议发往云端。

对于数据采集部分,因为标准性不够,就不对具体工具做介绍了。

时序数据处理工具

采集后的数据一般通过网络被送往服务器或云端进行处理。相对数据采集工具而言,数据处理工具比较统一,下面对几个流行的工具进行介绍。

1、以PI为代表的实时数据库

从20世纪80年代起,就涌现一批实时数据库(时序数据库的一种),专门用于处理工业自动控制或流程制造行业的实时数据。其中美国OSIsoft公司的PI(Plant Information)实时数据库最典型,它提供成套的工具,包括实时写入、实时计算、存储、分析、可视化、报警等系列功能,GE、Simens、Honeywell都有类似产品。国内有庚顿、朗坤、麦杰、力控等产品。这些产品在一定程度上满足了工业数据处理的需求,但在测点数量暴涨、数据采集频率不断提高的大数据时代,传统实时数据库暴露出以下问题。

①没有水平扩展能力,数据量增加,只能依靠硬件的纵向扩展解决;

②技术架构老旧,很多还是运行于Windows系统中的;

③数据分析能力偏弱,不支持现在流行的各种数据分析接口;

④不支持云端部署,更不支持SaaS。

在传统的实时监控场景,由于对各种工业协议的支持比较完善,实时数据库还占有较牢固的市场地位,但是在工业大数据处理上,因为上述几个原因,几乎没有任何大数据平台采用它们。

2、InfluxDB

它是美国InfluxData公司开发的产品,提供了数据存储、查询、分析、流式计算等系列功能。其单机版本采用MIT许可证,是开源且免费的(用GO语言开发),但其集群版本收费。目前,该款产品在全球时序数据库榜单上排名第一。在IT运维监测领域,该产品由于能与多个数据采集工具,以及可视化工具无缝对接,能够方便用户快速搭建一个监测系统,因此拥有相当大的市场份额。但在工业大数据领域,其优势不够明显,用户量还不大。

InfluxDB存储采用Key-Value和LSM技术,支持多列数据写入,而且是Schemaless模式,无须预先定义数据表结构。同时,每条记录可以带有一组标签,便于数据流之间的聚合计算。对于小数据量,其性能表现不错。但对于历史数据查询,其性能欠佳,而且消耗的系统资源过多。相对其他NoSQL数据库产品而言,InfluxDB的数据压缩做得很好,能节省不少存储空间。

同时,InfluxDB是一个独立的软件,不仅是一个数据库,还有流式计算、报警等功能,不依赖第三方,因此其安装部署、维护也相对简单。

3、OpenTSDB

这是一个Apache开源软件,是在HBase的基础上开发的,底层存储是HBase,但其依据时序数据的特点做了一些优化。其最大的好处就是建立在Hadoop体系上,各种工具链成熟,但这也是它最大的缺点,因为Hadoop不是为时序数据打造的,导致其性能很一般,而且需要依赖很多组件,安装部署相当复杂。

OpenTSDB采用Schemaless模式,不用预先定义数据结构,因此写入灵活,但每个时间序列只能写入一个采集量,不支持多列写入。每个序列可以被打上多个标签,以方便聚合操作。总的来讲,OpenTSDB的性能无论是写入还是查询,都很一般,而且系统的稳定性欠佳。但吸引人的是,它支持集群部署和支持水平扩展。

OpenTSDB只是单一的时序数据库,因此,要完整地处理时序数据,还需要搭配缓存、消息队列、流式计算等系列软件,使整个架构的设计和维护变得困难。

4、TDengine

这是来自中国的开源软件,由涛思数据研发推出。它不仅是一款时序数据库,而且还提供缓存、消息队列、数据订阅、流式计算等系列功能,是时序数据的全栈技术解决方案。而且它不依赖任何第三方软件,安装包只有1.5MB,使系统设计、安装、部署和维护都变得极为简单。

TDengine充分利用了时序数据的特点,因此具有很强的优势,具体表现在5个方面:

①无论是插入,还是查询,性能都高出许多;

②因为性能超强,其所需要的计算资源不及其他软件的1/5;

③采用列式存储,对不同数据类型采取不同的压缩算法,所需要的存储资源不到其他软件的1/10;

④无须分库、分表,无实时数据与历史数据之分,管理成本为零;

⑤采用标准SQL语法,应用可以通过标准的JDBC、ODBC接口插入或查询数据,学习成本几乎为零。

5、TimeScale

这也是一家美国公司开发的产品,开源,采用的是Apache 2.0许可证。它是在流行的关系型数据库Postgres基础上开发的,因此接口与Postgres 完全兼容,而且支持各种复杂的SQL查询。因为底层存储没有充分利用时序数据的特点,所以其性能一般。它的社区版完全开源,不支持集群,但提供企业版和云服务版。

该软件很受Postgres用户的欢迎,但其目前在IT运维监测、工业大数据处理这些领域,市场占有率还很有限。

▼ 扫码了解本书详情 ▼

点击阅读原文,了解本书详情~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。