CN117149764A - 一种基于两次缓存的高频工业时序数据存储系统 - Google Patents

一种基于两次缓存的高频工业时序数据存储系统 Download PDF

Info

Publication number
CN117149764A
CN117149764A CN202310998693.7A CN202310998693A CN117149764A CN 117149764 A CN117149764 A CN 117149764A CN 202310998693 A CN202310998693 A CN 202310998693A CN 117149764 A CN117149764 A CN 117149764A
Authority
CN
China
Prior art keywords
data
layer
cache
module
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310998693.7A
Other languages
English (en)
Inventor
王志军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wisdri Engineering and Research Incorporation Ltd
Original Assignee
Wisdri Engineering and Research Incorporation Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wisdri Engineering and Research Incorporation Ltd filed Critical Wisdri Engineering and Research Incorporation Ltd
Priority to CN202310998693.7A priority Critical patent/CN117149764A/zh
Publication of CN117149764A publication Critical patent/CN117149764A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于两次缓存的高频工业时序数据存储系统,通过采用双缓存策略,隔离数据采集及存储,结构简单,模块清晰;保证了数据处理过程不堵塞,不影响其它关联模块,提高系统整体稳定性,保证数据存储的可靠性和及时性,实现了在海量、高并发、高频等场景下存储时序数据的功能。本发明具有更高的性能和更好的可扩展性。通过分层设计和合理的功能模块划分,满足了高吞吐量、低延迟和高可扩展性的要求,从而更好地支持工业时序数据的应用。本发明通过引入消息层和缓存层,实现了数据的实时处理和缓存,提高了数据处理的效率,降低了数据处理的延迟。

Description

一种基于两次缓存的高频工业时序数据存储系统
技术领域
本发明属于工业大数据平台技术领域,具体涉及一种基于两次缓存的高频工业时序数据存储系统。
背景技术
工业时序数据是指在工业生产过程中产生的大量时间序列数据。这些数据主要包括设备运行状态数据、传感器采集数据、生产过程数据等。随着工业自动化程度的提高,工业时序数据的采集、存储和分析变得越来越重要。通常来说,在采集频率不高,采集数据量不大的场景,可以直接采集并存储。
随着工业生产的不断发展,工业时序数据的产生速度和规模呈指数级增长,对数据存储和处理提出了更高的要求。然而,现有的工业时序数据存储方案存在着一些缺点。例如,它们往往无法满足高吞吐量、低延迟和高可扩展性的要求,这限制了工业时序数据的应用范围。
现有用于工业物联网的时序数据存储方法,通过获取待存储的时序数据对时序数据进行清洗;根据时序数据的来源分配时序数据的类别topic,将清洗后的时序数据写入消息分发组件kafka中topic对应的分区partition中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的偏移量offset信息;根据采集时间戳所指示的时间整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系;将topic、采集时间戳与offset信息之间关联关系持久化到索引库。
现有利用Modbus工业总线现场协议进行数据采集的方法,采用Modbus作为数据采集的协议,MQTT作为配置文件下发和数据存储方案,InfluxDB作为时序数据库进行存储,用Java语言进行代码编写,JSON协议作为配置文件和API交互的格式。实现了数据采集、数据存储、数据可视化的功能,满足了工业物联网环境下企业对数据采集和智能化生产的需求,实现了在云端对边缘设备进行数据采集的功能。
上述公开技术在一定程度上提高了工业时序数据的存储性能,然而并未解决海量、高并发、高频等场景下时序数据的存储问题。
发明内容
本发明要解决的技术问题是:提供一种基于两次缓存的高频工业时序数据存储系统,用于在海量、高并发、高频等场景下存储时序数据。
本发明为解决上述技术问题所采取的技术方案为:一种基于两次缓存的高频工业时序数据存储系统,包括依次连接的采集层、消息层、缓存层、数据处理层和存储层;采集层为支持多种数据采集驱动的平台,用于从工业生产现场的设备和传感器采集实时数据并支持通过MQTT异步推送到消息层,向应用程序提供单一来源的工业自动化数据;消息层采用分布式集群架构,包括MQTT broker,支持的协议包括mqtt协议和mqtts协议,用于接收采集层的消息并发送给数据处理层;消息层还包括Web Socket broker,支持的协议包括ws协议和wss协议,用于接收数据处理层的消息并发送给外部系统的HMI画面使用;缓存层包括第一缓存模块和第二缓存模块,用于为数据处理层提供两次缓存;第一缓存模块为topic和payload缓存,用于防止数据处理层消费消息层数据不及时造成堵塞;第二缓存模块为业务数据缓存,用于防止数据处理层保存数据不及时造成堵塞;存储层包括时序数据库。
按上述方案,采集层采用的工业通信协议包括Modbus、OPC-UA或PLC专用协议;工业生产现场的设备和传感器为包括PLC、RTU、相关仪表或第三方系统的外部系统;采集层向消息层推送的数据采用JSON格式编码。
按上述方案,消息层采用开源的EMQX,是弹性伸缩的云原生分布式物联网MQTT/WS消息服务器,用于连接若干物联网设备、实时移动与处理消息和事件流数据、构建关键业务的物联网平台与应用。
按上述方案,缓存采用内存缓存、Redis缓存或Memcached缓存;缓存采用先进先出FIFO清理策略,根据数据进入缓存的时间清理数据;当缓存空间不足时,自动删除最早进入缓存的数据。
按上述方案,数据处理层包括订阅模块、第一缓存处理模块和第二缓存处理模块;订阅模块订阅触发运行,第一缓存处理模块和第二缓存处理模块均为周期性运行;订阅模块用于订阅消息层MQTT数据;第一缓存处理模块用于从第一缓存模块获取并处理数据;第二缓存处理模块用于从第二缓存模块获取业务数据,并批量存入存储层的时序数据库。
进一步的,订阅模块订阅消息层MQTT数据的具体步骤为:
S411:由于采用通配符订阅需要去掉部分接收到的topic,和根据业务逻辑无需接收消息时,对数据进行过滤;
S412:针对有效数据异步将topic和payload数据存入第一缓存模块。
进一步的,第一缓存处理模块从第一缓存模块获取并处理数据的具体步骤为:
S421:数据解析,将payload的数据转成可读数据;
S422:数据跟踪,对原始数据进行跟踪转换形成业务数据;
S423:异步将业务数据推送到消息层的Web Socket broker;
S424:将业务数据存入第二缓存模块。
进一步的,第二缓存处理模块从第二缓存模块获取业务数据,并批量存入存储层的时序数据库的具体步骤为:
S431:获取第二缓存模块的业务数据;
S432:清除第二缓存模块已获取的业务数据;
S433:批量存储到存储层的时序数据库;
S434:若存储成功,则单次流程结束;若存储失败,则将存储失败的业务数据再存入第二缓存模块。
按上述方案,存储层用于持久化存储经过数据处理层处理后的业务数据;存储层采用InfluxDB时序数据库、分布式文件系统或列式数据库,包括HDFS或Cassandra;存储层采用分布式集群架构,用于保证存储性能和数据安全性。
本发明的有益效果为:
1.本发明的一种基于两次缓存的高频工业时序数据存储系统,通过采用双缓存策略,隔离数据采集及存储,结构简单,模块清晰;保证了数据处理过程不堵塞,不影响其它关联模块,提高系统整体稳定性,保证数据存储的可靠性和及时性,实现了在海量、高并发、高频等场景下存储时序数据的功能。
2.与现有的工业时序数据存储方案相比,本发明具有更高的性能和更好的可扩展性。通过分层设计和合理的功能模块划分,满足了高吞吐量、低延迟和高可扩展性的要求,从而更好地支持工业时序数据的应用。
3.本发明采用分层架构,将数据采集、处理和存储分开,降低了系统的复杂度,提高了系统的可维护性和可扩展性。采集层能够实现高吞吐量、低延迟的数据采集;消息层可以实现数据的可靠传输以及系统间交互;缓存层可以加速数据的访问和处理;数据处理层可以对数据进行解析、跟踪、保存等处理;存储层可以实现高可扩展的存储,确保数据的安全性和可靠性。
4.本发明采用双缓存策略,第一次缓存解决了数据订阅后消费不及时的问题,防止堵塞数据。第二次缓存解决了数据处理层保存数据不及时造成堵塞。同时保证了数据的有序存储问题,防止线程冲突。以及支持数据存储失败重试机制。总的来说,通过消息层和缓存层的引入,实现了数据的实时处理和缓存,提高了数据处理的效率,降低了数据处理的延迟。
附图说明
图1是本发明实施例的原理框图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
参见图1,本发明的实施例包括采集层、消息层、缓存层、数据处理层、存储层;
1.采集层:负责从工业生产现场的设备和传感器采集实时数据。
采集层可以采用现有的工业通信协议,如Modbus、OPC-UA、主流PLC专用协议等,从各种外部系统中进行数据采集,包括且不限于,如PLC、RTU、相关仪表、第三方系统等。
另外,采集层需要具备将采集的数据推送到消息层的功能。
优选的,推送的数据采用JSON格式编码。
具体实施例中,采集层一般选用Kepware公司的KEPServerEX软件,它是行业先进的连接平台,包含海量的数据采集驱动,用于向所有应用程序提供单一来源的工业自动化数据,且采集结果支持通过MQTT异步推送到消息平台。
2.消息层:它包括MQTT broker,其支持mqtt协议和mqtts协议,负责接收来自采集层的消息,供数据处理层处理;还包括Web Socket broker,其支持ws协议和wss协议,接收来自数据处理层的消息,供外部系统的HMI画面使用。
具体实施例中,消息层可以采用开源的EMQX,它是一款大规模可弹性伸缩的云原生分布式物联网MQTT/WS消息服务器。其提供了高效可靠海量物联网设备连接,能够高性能实时移动与处理消息和事件流数据,快速构建关键业务的物联网平台与应用。具备开放源码,支持MQTT 5.0,海量连接,高性能,低时延,高可用等特点。
为了进一步提高性能,消息层采用分布式集群架构,在保证高可用性、容错性以及可扩展性的同时,能够处理大量客户端和消息。
3.缓存层:负责为数据处理层提供两次缓存,包括缓存1模块和缓存2模块。其中缓存1为topic和payload缓存,为了防止数据处理层消费消息层数据不及时造成堵塞。缓存2为业务数据缓存,为了防止数据处理层保存数据不及时造成堵塞。
具体实施例中,缓存采用内存缓存或者Redis缓存,或者Memcached缓存。
为了防止内存耗尽,保证缓存稳定运行,缓存需要采用First In First Out(FIFO)清理策略。即先进先出策略,根据数据进入缓存的时间来决定清理哪些数据。当缓存空间不足时,自动删除最早进入缓存的数据。具体实施例中缓存1限制数量为10000条topic和payload消息,缓存2限制为1000条业务数据。
4.数据处理层:包括三个模块,订阅模块,其订阅触发运行;缓存1处理模块,周期性运行;缓存2处理模块,周期性运行。
订阅模块订阅消息层MQTT数据。其包括两个步骤。
S411:对数据进行过滤;
S412:针对有效数据异步将topic和payload数据存入缓存1。
数据过滤的原因主要有两点,一是采用的通配符订阅,部分接收到的topic并不是所需要的。二是根据业务逻辑,在机组停产等情况下,无需接收消息,减少整个平台的数据压力。
缓存1处理模块从缓存1获取数据并处理,其包括四个步骤。
S421:数据解析;
S422:数据跟踪形成业务数据;
S423:异步将业务数据推送到消息层的Web Socket broker;
S424:将业务数据存入缓存2;
其中数据解析是指将payload的数据转成可读的数据,比如通过JSON反解析。
数据跟踪表示对原始的数据进行跟踪转换,比如原始数据为id和value的键值对,其中id是配置文件或者程序内部约定的格式,需要转成业务数据所需要的格式,部分实施例中,需要对数据进行一些四则运算处理。
缓存2处理模块从缓存2获取业务数据,并批量存入存储层的时序数据库。具体步骤包括:
S431:获取缓存2业务数据;
S432:清除缓存2已获取的业务数据;
S433:批量存储到存储层的时序数据库;
S434:若存储成功,则单次流程结束。若存储失败,则将存储失败的业务数据再存入缓存2。
在具体的实施例中,消息推送和存入缓存都能很快完成,而持久化存储数据是最影响效率的过程,其原因包括硬盘IO瓶颈,网络瓶颈等。此处采用批量存储能进一步提高存储效率。
以某实施例为例,采集一组数据需要0.3秒,消息推送和存入缓存耗时约为0秒,存储一组数据需要耗时0.5秒(包括连接处理0.3秒和数据存储0.2秒)。此时数据存储跟不上数据采集的步伐,因此会导致系统卡断,数据丢失等。但是如果缓存后同时保存四组数据,耗时约1.1秒(包括连接处理0.3秒和数据存储0.8秒)。则低于采集四组数据的时间1.2秒。这也说明了批量存储的优点,即批量存储能减少连接过程的资源开销,提升总体存储性能。
5.存储层:将经过数据处理层处理后的业务数据存储到存储层。存储层负责对数据进行持久化存储,以支持后续的数据分析和挖掘。
具体实施例中,存储层可以选用开源的InfluxDB时序数据库。
或者存储层可以采用现有的分布式文件系统、列式数据库等技术,如HDFS、Cassandra等。
为了进一步提高性能,存储层采用分布式集群架构,在保证存储性能和数据安全性。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。

Claims (9)

1.一种基于两次缓存的高频工业时序数据存储系统,其特征在于:包括从底层到顶层的采集层、消息层、缓存层、数据处理层和存储层;
采集层为支持多种数据采集驱动的平台,用于从工业生产现场的设备和传感器采集实时数据并支持通过MQTT异步推送到消息层,向应用程序提供单一来源的工业自动化数据;
消息层采用分布式集群架构,包括MQTT broker,支持的协议包括mqtt协议和mqtts协议,用于接收采集层的消息并发送给数据处理层;消息层还包括Web Socket broker,支持的协议包括ws协议和wss协议,用于接收数据处理层的消息并发送给外部系统的HMI画面使用;
缓存层包括第一缓存模块和第二缓存模块,用于为数据处理层提供两次缓存;第一缓存模块为topic和payload缓存,用于防止数据处理层消费消息层数据不及时造成堵塞;第二缓存模块为业务数据缓存,用于防止数据处理层保存数据不及时造成堵塞;
存储层包括时序数据库。
2.根据权利要求1所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
采集层采用的工业通信协议包括Modbus、OPC-UA或PLC专用协议;
工业生产现场的设备和传感器为包括PLC、RTU、相关仪表或第三方系统的外部系统;
采集层向消息层推送的数据采用JSON格式编码。
3.根据权利要求1所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
消息层采用开源的EMQX,是弹性伸缩的云原生分布式物联网MQTT/WS消息服务器,用于连接若干物联网设备、实时移动与处理消息和事件流数据、构建关键业务的物联网平台与应用。
4.根据权利要求1所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
缓存采用内存缓存、Redis缓存或Memcached缓存;
缓存采用先进先出FIFO清理策略,根据数据进入缓存的时间清理数据;当缓存空间不足时,自动删除最早进入缓存的数据。
5.根据权利要求1所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
数据处理层包括订阅模块、第一缓存处理模块和第二缓存处理模块;订阅模块订阅触发运行,第一缓存处理模块和第二缓存处理模块均为周期性运行;订阅模块用于订阅消息层MQTT数据;第一缓存处理模块用于从第一缓存模块获取并处理数据;第二缓存处理模块用于从第二缓存模块获取业务数据,并批量存入存储层的时序数据库。
6.根据权利要求5所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
订阅模块订阅消息层MQTT数据的具体步骤为:
S411:由于采用通配符订阅需要去掉部分接收到的topic,和根据业务逻辑无需接收消息时,对数据进行过滤;
S412:针对有效数据异步将topic和payload数据存入第一缓存模块。
7.根据权利要求5所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
第一缓存处理模块从第一缓存模块获取并处理数据的具体步骤为:
S421:数据解析,将payload的数据转成可读数据;
S422:数据跟踪,对原始数据进行跟踪转换形成业务数据;
S423:异步将业务数据推送到消息层的Web Socket broker;
S424:将业务数据存入第二缓存模块。
8.根据权利要求5所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
第二缓存处理模块从第二缓存模块获取业务数据,并批量存入存储层的时序数据库的具体步骤为:
S431:获取第二缓存模块的业务数据;
S432:清除第二缓存模块已获取的业务数据;
S433:批量存储到存储层的时序数据库;
S434:若存储成功,则单次流程结束;若存储失败,则将存储失败的业务数据再存入第二缓存模块。
9.根据权利要求1所述的一种基于两次缓存的高频工业时序数据存储系统,其特征在于:
存储层用于持久化存储经过数据处理层处理后的业务数据;
存储层采用InfluxDB时序数据库、分布式文件系统或列式数据库,包括HDFS或Cassandra;
存储层采用分布式集群架构,用于保证存储性能和数据安全性。
CN202310998693.7A 2023-08-08 2023-08-08 一种基于两次缓存的高频工业时序数据存储系统 Pending CN117149764A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310998693.7A CN117149764A (zh) 2023-08-08 2023-08-08 一种基于两次缓存的高频工业时序数据存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310998693.7A CN117149764A (zh) 2023-08-08 2023-08-08 一种基于两次缓存的高频工业时序数据存储系统

Publications (1)

Publication Number Publication Date
CN117149764A true CN117149764A (zh) 2023-12-01

Family

ID=88907121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310998693.7A Pending CN117149764A (zh) 2023-08-08 2023-08-08 一种基于两次缓存的高频工业时序数据存储系统

Country Status (1)

Country Link
CN (1) CN117149764A (zh)

Similar Documents

Publication Publication Date Title
CN111277672B (zh) 一种基于非阻塞输入输出模型的能源物联网数据采集方法
CN108335075B (zh) 一种面向物流大数据的处理系统及方法
CN109918349B (zh) 日志处理方法、装置、存储介质和电子装置
CN111796983B (zh) 一种体彩异常交易请求的监控系统及方法
CN111432295A (zh) 一种基于分布式技术的用电信息采集主站系统
CN103856392A (zh) 消息推送方法及其外发服务器和外发服务器系统
CN105224445A (zh) 分布式跟踪系统
CN102739452A (zh) 资源监控方法和系统
CN106850258A (zh) 一种日志管理系统、方法及装置
CN111813395B (zh) 基于xml格式的通讯协议信息描述通用模型及其设计方法
CN108228755A (zh) 基于日志解析技术的MySQL数据库到Hadoop平台的数据同步复制方法
CN109271256A (zh) 一种基于分布式部署的云资源管理和监控系统及方法
CN112069264A (zh) 异构数据源采集方法、装置、电子设备及存储介质
CN111913933A (zh) 基于统一支撑平台的电网历史数据管理方法及系统
CN102497498A (zh) 一种广播电视播出控制方法、装置及系统
CN109829094A (zh) 分布式爬虫系统
CN104734895A (zh) 业务监控系统及业务监控方法
CN117149764A (zh) 一种基于两次缓存的高频工业时序数据存储系统
CN111049898A (zh) 一种实现计算集群资源跨域架构的方法及系统
CN110099116B (zh) 一种基于大数据的子网安全性评估方法
CN111241101A (zh) 一种分布式水利rtu数据采集系统及方法
CN113485793B (zh) 基于容器技术的多源异构数据接入通道在线弹性扩展方法
CN113873033B (zh) 一种具有容错功能的智能边缘计算网关平台
CN113742393B (zh) 一种适用于互联网应用的时序数据处理系统
CN101771578B (zh) 一种网络性能检测方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination