一种工业数据存储缓存的方法、装置及相关产品与流程

文档序号:32167147发布日期:2022-11-12 05:13阅读:77来源:国知局
一种工业数据存储缓存的方法、装置及相关产品与流程

1.本技术涉及工业大型实时历史数据库领域,尤其涉及一种工业数据存储缓存的方法、装置及相关产品。


背景技术:

2.在大型工业实时历史数据库应用中,需要持续不断的实时采集大型工业现场的实时数据,并将其存储到历史数据库中。历史数据缓冲技术由于能够提高写入性能,且降低磁盘io,已成为数据存储的重要组成部分。其中,历史数据缓冲是指将测点数据暂时存放在缓冲空间,当缓冲的数据达到预设阈值后,将测点数据整合写入磁盘。
3.现有技术往往根据数据测点的数量开辟固定大小的缓冲空间。然而,在实际应用中,并非所有测点数据都在实时变化,因此,为每个测点数据开辟固定大小的缓冲空间,会导致测点数据不变的测点一直占用缓冲空间,造成缓存空间浪费。


技术实现要素:

4.有鉴于此,本技术提供了一种工业数据存储缓存的方法、装置及相关产品,旨在通过测点的数据类型和数据流量动态调整缓冲空间大小,从而避免测点数据不变的测点一直占用缓冲空间,提高缓冲空间的资源利用率。
5.第一方面,本技术提供了一种工业数据存储缓存的方法,应用于实时历史数据库,所述方法包括:
6.响应于不断写入的历史数据,计算当前测点缓冲的历史数据量和当前测点的每秒写入数据量;
7.响应于所述当前测点缓冲的历史数据量超过当前缓冲空间的大小,和/或达到配置刷新时间,将当前缓冲的数据写入磁盘,并根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间;所述当前缓冲空间用于缓冲当前测点的数据。
8.可选的,所述根据当前测点的每秒写入数据量和数据类型更新缓冲空间,包括:
9.根据所述当前测点的每秒写入数据量和数据类型,确定每秒写入字节数;
10.根据所述每秒写入字节数,以及预设的缓冲空间与每秒写入字节数的映射关系,更新缓冲空间。
11.可选的,所述预设的缓冲空间与每秒写入字节数的映射关系,具体包括:
12.缓冲空间=缓存切换时间*每秒写入字节数*第一随机数系数。
13.可选的,在响应于不断写入的历史数据之前,所述方法还包括:
14.响应于历史存档服务第一次启动,根据测点的数据类型和预设的缓冲空间和数据类型的映射关系,创建固定大小的缓冲空间;
15.将创建的所述固定大小的缓冲空间,确定当前缓冲空间。
16.可选的,所述预设的缓冲空间和数据类型的映射关系,具体包括:
17.缓冲空间=数据类型*第二随机数系数。
18.第二方面,本技术提供了一种工业数据存储缓存的装置,应用于实时历史数据库,该装置包括:
19.计算单元,用于响应于不断写入的历史数据,计算当前测点缓冲的历史数据量和当前测点的每秒写入数据量;
20.写入单元,用于响应于前测点缓冲的历史数据量超过当前缓冲空间的大小,和/或达到配置刷新时间,将当前缓冲的数据写入磁盘,并根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间;所述当前缓冲空间用于缓冲当前测点的数据。
21.可选的,所述写入单元,包括:
22.字节数确定模块,用于根据所述当前测点的每秒写入数据量和数据类型,确定每秒写入字节数;
23.更新模块,用于根据所述每秒写入字节数,以及预设的缓冲空间与每秒写入字节数的映射关系,更新缓冲空间。
24.可选的,所述预设的缓冲空间与每秒写入字节数的映射关系,具体包括:
25.缓冲空间=缓存切换时间*每秒写入字节数*第一随机数系数
26.第三方面,本技术实施例提供了一种电子设备。该设备包括:存储器和处理器。
27.存储器用于用于存储程序代码,并将程序代码传输给处理器。
28.处理器:用于根据程序代码中的指令执行第一方面中任一项所述工业数据存储缓存的方法步骤。
29.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储代码,所述代码被处理器执行时实现如第一方面中任一项所述工业数据存储缓存的方法的步骤。
30.本技术提供了一种工业数据存储缓存的方法、装置及相关产品。在执行所述方法时,首先根据不断写入的历史数据,计算当前测点的历史数据量和每秒写入数据量。然后比较当前测点的历史数据量超过当前缓冲空间大小,或达到配置刷新时间。如果满足超过当前缓冲空间大小,或达到配置刷新时间,将当前缓冲的数据写入磁盘,并且根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间。如此,通过测点的数据类型和数据流量动态调整缓冲空间大小,从而避免测点数据不变的测点一直占用缓冲空间而造成缓冲空间的浪费问题,进而提高了缓冲空间的资源利用率。
附图说明
31.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1为根据数据测点的数量开辟固定大小缓冲空间的示意图;
33.图2为本技术实施例提供的一种工业数据存储缓冲的方法流程图;
34.图3为本技术实施例提供的另一种工业数据存储缓存的方法流程图;
35.图4为本技术实施例提供的一种缓存管理示意图;
36.图5为本技术实施例提供的第三种工业数据存储缓存的方法流程图;
37.图6为本技术实施例提供的一种工业数据存储缓存的装置结构示意图。
具体实施方式
38.本技术说明书和权利要求书及附图说明中的术语“第一”、“第二”“第三”、和“第四”等是用于区别不同对象,而不是用于限定特定顺序。
39.在本技术实施例中,“作为示例”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“作为示例”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“作为示例”或者“例如”等词旨在以具体方式呈现相关概念。
40.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。
41.正如前文所述,现有技术往往根据数据测点的数量开辟固定大小的缓冲空间。参见图1,为根据数据测点的数量开辟固定大小缓冲空间的示意图。实时数据服务向历史存储服务推送的数据,先进行存档缓冲。当缓冲达到一定的阈值,将缓冲的数据写入磁盘至存档文件,进行存储。其中,存档缓冲的缓冲空间为根据推送数据的数量开辟的固定大小的缓冲空间。显而易见,这些缓冲空间中包括大量的空位置,用于存放测点数据长时间不变的测点。这导致在实际存储时,缓存空间会存在空间资源的浪费。
42.基于此,本技术提出了通过测点的数据类型和数据流量动态调整缓冲空间大小,从而避免测点数据不变的测点一直占用缓冲空间而造成缓冲空间的浪费问题,进而提高缓冲空间的内存资源合理实用。
43.为了使本技术领域的人员更好地理解本技术方案。下面对一些专业术语进行解释说明。
44.数据缓冲:将每次都需要写入磁盘的数据,先暂时缓存在内存中,分批次分块写入磁盘,减少随机磁盘io,提升磁盘写入性能。
45.磁盘io:一般指磁盘读/写io,读io就是发指令从磁盘读取某段扇区的内容,写io就是发指令将数据写入某段磁盘扇区内。
46.测点数据:例如化学反应釜内温度、湿度、压力等数据,每一项数据都作为一个位号来提现到工业实时历史数据库中,测量数据包含当前值、上送时间、数据质量码三个参数。
47.磁盘:计算机磁盘,相比较于计算机内存来说,空间较大,但操作速度相对于计算机内存来说较慢,但是可以长期保存数据,断电后数据不会被清空,一把电脑500g\1t。
48.内存:指计算机内存,相比较于计算机磁盘来说,空间较小,但速度较快,不能长期保存数据,断电后数据会被清空,一般电脑内存16g、32g。
49.数据类型:指数据测点的数值类型,例如:浮点型、整数型、字符串型、开关型等等。
50.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
51.参见图2,为本技术实施例提供的一种工业数据存储缓冲的方法流程图,应用于工
业大型实时历史数据库中。该方法至少包括:
52.s201:响应于不断写入的历史数据,计算当前测点缓冲的历史数据量和当前测点的每秒写入数据量。
53.在本技术实施例中,历史数据库需要不断采集工业现场的实时数据,采集后的实时数据作为历史数据不断写入实时数据库中。历史数据库首先需要根据当前不断写入的历史数据,计算当前测点缓冲的历史数据量。其中缓冲的历史数据量为存档缓存需要占用的缓冲空间大小,以及磁盘io占用的计算机内存。根据当前测点的缓冲的历史数据量,比如缓冲的化学反应釜内温度、湿度等数据量,确定存档缓冲占用的缓冲空间。
54.在本技术实施例中,根据不断的历史数据,历史数据库可以计算出当前测点的每秒写入数据量。比如,可以获取1min当前测点数据写入量,将该数据写入量/60,即为每秒写入数据量。根据当前测点的每秒写入数据量,结合数据类型,可以对缓冲空间进行动态调整。
55.s202:响应于所述每秒写入数据量超过当前缓冲空间的大小,或达到配置刷新时间,将当前缓冲的数据写入磁盘,并根据当前测点的数据流量和数据类型更新当前缓冲空间。
56.在本技术实施例中,当历史数据库获取当前测点的缓冲数据量和每秒写入数据量之后,首先判断当前测点的缓冲数据量是否超过当前缓冲空间的大小。其中,缓冲空间用于缓冲当前测点的数据。如果超过当前缓冲空间的大小,将当前缓冲的数据写入磁盘。并根据当前测点的每秒写入数据流量和数据类型动态当前缓冲空间。
57.在本技术实施例中,可以预先构建缓冲空间与每秒写入数据流量和数据类型之间的映射关系。根据该映射关系,就可以获取缓冲空间的大小。示例性说明:假设缓冲空间大小为f(x,y),其中,x表示每秒写入数据流量,y表示数据类型长度。则f(x,y)=axy+c。其中,a为固定系数,c为固定常数。如此,确定x和数据类型,既可以确定x和y,如此,代入上述公式可以获得缓冲空间大小。
58.在本技术实施例中,可以通过如下方式实现动态更新当前缓冲空间:
59.根据当前测点每秒写入的数据量和数据类型,确定每秒写入字节数。示例性说明:假设每秒写入数据量为60,数据为浮点型,则数据类型长度4字节,则每秒写入字节数为60*4=240字节。根据上述每秒写入字节数,以及预设的缓冲空间与每秒写入字节数的映射关系,更新缓冲空间。
60.在本技术实施例中,考虑到大部分测点在相同频率变化的情况,为避免测点数据在同一时刻写入存档文件,而导致计算机短时内存占用量较大,而影响计算机运行速度问题。预设的缓冲空间和每秒写入字节数的映射关系可以为:
61.缓冲空间=缓存切换时间*每秒写入字节数*第一随机数系数。
62.其中,缓冲切换时间是指本次缓冲空间开始缓冲到将缓存中数据写入磁盘所需要的时间。在本技术实施例中,缓冲切换时间可以是计算机预先配置的刷新时间。对于计算机来讲,由于写前日志和断电恢复等功能的涉及,使得历史数据库的缓冲根据配置时间定期写入磁盘。示例性说明:如果配置时间为30分钟,则缓存数据需要每个30分钟刷新写入一次磁盘。这一缓冲切换时间为30分钟。此外,缓冲切换时间也可以是内存空间不足所用的缓冲时间。第一随机系数是为每个测点的当前数据分配的任意随机数。其目的是避免大部分测
点数据在相同频率变化情况下,测点数据在同一时刻写入存档文件而导致计算机短时内存占用量较大,而影响计算机运行速度问题。
63.示例性说明:假设配置刷新时间为30min,测点数据频率相同,即每秒写入字节数相同,则会在同一时刻全部写入存档文件。当为当前测点数据分配一个随机数,比如为0.9,如此,缓冲空间内存空间会降低。不断写入的历史数据,即时不到30min,就达到内存空间不足,因此,在未达到配置刷新时间,当前测点数据就会写入磁盘,而不会集中在同一时刻写入文档。
64.本技术提供了工业数据存储缓存的方法,具体来讲:首先根据不断写入的历史数据,计算当前测点的每秒写入数据量。然后比较每秒写入数据量是否超过当前缓冲空间大小,或达到配置刷新时间。如果满足超过当前缓冲空间大小,或达到配置刷新时间,将当前缓冲的数据写入磁盘,并且根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间。如此,通过测点的数据类型和数据流量动态调整缓冲空间大小,从而避免测点数据不变的测点一直占用缓冲空间而造成缓冲空间的浪费问题,进而提高了缓冲空间的资源利用率。
65.参见图3,为本技术实施例提供的另一种工业数据存储缓存的方法流程图,应用于工业大型实时历史数据库中。该方法当内存空间不足时,进行缓存切换。该方法至少包括:
66.s301:预先配置刷新时间。
67.在本技术实施例中,刷新时间是指定期写入磁盘的时间。
68.s302:判断历史存档服务是否为第一次启动,若是,进入s303;否则,进入s305。
69.s303:加载配置中测点,根据测点数据类型和预设的缓冲空间和数据类型的映射关系,创建固定大小的缓冲空间。
70.在本技术实施例中,考虑到大部分测点数据在相同频率变化情况,构建预设的缓冲空间和数据类型的映射关系具体如下:
71.缓冲空间=数据类型*第二随机数系数。
72.示例性说明:如果数据类型为开关型,当第二随机数系数为1时,缓冲空间确定为128字节,如果第二随机数系数改变,则缓冲空间也会相应变化。如果数据类型为浮点型,第二随机数系数为1时,则缓冲空间为4096字节等。
73.s304:将上述固定大小的缓冲空间,确定为当前缓冲空间。
74.s305:响应于不断写入的历史数据,计算当前测点缓冲的历史数据量和当前测点的每秒写入数据量。
75.s306:判断当前测点缓冲的历史数据量是否超过当前缓冲空间的大小,若是,进入s307;否则转入s305。
76.s307:将当前缓冲的数据写入磁盘,并根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间。
77.在本技术实施例中,利用根据当前测点每秒写入的数据量和数据类型,确定每秒写入字节数。根据缓冲空间=缓存切换时间*每秒写入字节数*第一随机数系数更新缓冲空间。
78.参见图4,为本技术实施例提供的一种缓存管理示意图。对比图4和图1,可以很明显的发现:相对于现有技术,本技术提供的实施例不必须为每个测点数据开辟固定大小的
缓存空间,避免缓存空间浪费。
79.本技术实施例提供的一种工业数据缓冲的方法,通过随机数系数,可以制造出相位偏差,从而降低同一时间批量写磁盘的几率,降低了磁盘io,提高了存储性能。
80.参见图5,为本技术实施例提供的第三种工业数据存储缓存的方法流程图,应用于工业大型实时历史数据库中,该方法进行缓存切换,除考虑内存空间不足以外,还综合考虑配置刷新时间。该方法至少包括以下步骤:
81.s501:预先配置刷新时间。
82.s502:判断历史存档服务是否为第一次启动,若是,进入s503;否则,进入s505。
83.s503:加载配置中测点,根据测点数据类型和预设的缓冲空间和数据类型的映射关系,创建固定大小的缓冲空间。
84.s504:将上述固定大小的缓冲空间,确定为当前缓冲空间。
85.s505:响应于不断写入的历史数据,计算当前测点缓冲的历史数据量和当前测点的每秒写入数据量。
86.s506:判断是否达到配置刷新时间,如果是,进入s508,否则进入s507。
87.s507:判断当前测点缓冲的历史数据量是否超过当前缓冲空间的大小,若是,进入s508;否则转入s505。
88.s508:将当前缓冲的数据写入磁盘,并根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间。
89.此外,本技术实施例还提供了相对应的装置。参见图6,为本技术实施例提供的一种工业数据存储缓存的装置600结构示意图。应用于实时历史数据库。该装置600包括:
90.计算单元601,响应于不断写入的历史数据,计算当前测点缓冲的历史数据量和当前测点的每秒写入数据量;
91.写入单元602,响应于缓冲的所述历史数据量超过当前缓冲空间的大小,或达到配置刷新时间,将当前缓冲的数据写入磁盘,并根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间;所述当前缓冲空间用于缓冲当前测点的数据。
92.可选的,所述写入单元602,包括:
93.字节数确定模块,用于根据所述当前测点的每秒写入数据量和数据类型,确定每秒写入字节数;
94.更新模块,用于根据所述每秒写入字节数,以及预设的缓冲空间与每秒写入字节数的映射关系,更新缓冲空间。
95.可选的,所述预设的缓冲空间与每秒写入字节数的映射关系,具体包括:
96.缓冲空间=缓存切换时间*每秒写入字节数*第一随机数系数。
97.可选的,所述装置600还包括:
98.初始创建单元,用于响应于历史存档服务第一次启动,根据测点的数据类型和预设的缓冲空间和数据类型的映射关系,创建固定大小的缓冲空间;
99.将创建的所述固定大小的缓冲空间,确定当前缓冲空间。
100.可选的,所述预设的缓冲空间和数据类型的映射关系,具体包括:
101.缓冲空间=数据类型*第二随机数系数。
102.本技术提供了工业数据存储缓存的装置。其中计算单元601首先根据不断写入的
历史数据,计算当前测点的历史数据量和每秒写入数据量。写入单元602比较当前测点的历史数据量超过当前缓冲空间大小,或达到配置刷新时间。如果满足超过当前缓冲空间大小,或达到配置刷新时间,将当前缓冲的数据写入磁盘,并且根据当前测点的每秒写入数据量和数据类型更新当前缓冲空间。如此,通过测点的数据类型和数据流量动态调整缓冲空间大小,从而避免测点数据不变的测点一直占用缓冲空间而造成缓冲空间的浪费问题,进而提高了缓冲空间的资源利用率。
103.本技术实施例还提供了一种电子设备。该设备包括:存储器和处理器。
104.存储器用于用于存储程序代码,并将程序代码传输给处理器。
105.处理器:用于根据程序代码中的指令执行上述一种控制设备准入的方法的步骤。
106.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本技术实施例的一种工业数据存储缓存的方法。
107.在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
108.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
109.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
110.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
111.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案
的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
112.以上所述仅是本技术示例性的实施方式,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1