一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据存储方法、装置、设备以及计算机存储介质与流程

2021-11-10 01:58:00 来源:中国专利 TAG:


1.本发明实施例涉及数据存储技术领域,具体涉及一种数据存储方法、装置、设备以及计算机存储介质。


背景技术:

2.随着互联网以及大数据领域的快速发展,在实际应用中,常遇到各类海量数据与超高频率的采集场景,在这种场景下占用大量存储空间,资源消耗过高的问题,因此需要对数据进行压缩后再存储。目前的数据压缩过程一般如下:针对每次数据采集结果与上一次相同的,则不作任何记录,直至出现相异的采集数据再进行记录。
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.将所述邻近记录的所述记录起始时间确定为第二起始时间;
33.根据所述第一起始时间、第二起始时间、所述采集周期以及所述待存储数据确定所述为所述第一起始时间与所述第二起始时间之间采集的所述待存储数据对应的解压后数据。
34.根据本发明实施例的另一方面,提供了一种数据存储装置,包括:
35.获取模块,用于周期性采集待写入数据;
36.生成模块,用于当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据;
37.压缩模块,用于获取下一周期的待写入数据,对下一周期的待写入数据对应的新
记录和当前周期的记录进行压缩,得到待存储数据;
38.存储模块,用于将所述待存储数据写入缓存中。
39.根据本发明实施例的另一方面,提供了一种数据存储设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
40.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如所述数据存储方法的操作。
41.根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在数据存储设备上运行时,使得数据存储设备执行所述数据存储方法的操作。
42.本发明实施例通过周期性采集待写入数据;当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据;从而将异常数据与非异常数据以分隔开的记录分别进行记录,再获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据;最后将所述待存储数据写入缓存中。区别于现有技术中相同数据则不进行记录更新的做法,无法确定是否出现数据采集异常,导致的数据存储可靠性低,本发明实施例能够根据每个周期的待写入数据的异常情况对待写入数据采取不同的记录存储方式,实现了对异常数据出现时间的回溯,从而实现无损压缩,提高了数据存储的效可靠性。
43.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
44.附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
45.图1示出了本发明实施例提供的数据存储方法的流程示意图;
46.图2示出了本发明另一个实施例提供的数据存储方法的流程示意图;
47.图3示出了本发明另一个实施例提供的数据存储方法的流程示意图;
48.图4示出了本发明另一个实施例提供的数据存储方法的流程示意图;
49.图5示出了本发明另一个实施例提供的数据存储方法的流程示意图;
50.图6示出了本发明另一个实施例提供的数据存储方法的流程示意图;
51.图7示出了本发明实施例提供的数据存储装置的结构示意图;
52.图8示出了本发明实施例提供的数据存储设备的结构示意图。
具体实施方式
53.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
54.图1示出了本发明实施例提供的数据存储方法的流程图,该方法由计算机处理设
备执行。计算机处理设备可以包括手机、笔记本电脑等。如图1所示,该方法包括以下步骤:
55.步骤101:周期性采集待写入数据。
56.在本发明的一个实施例中,待写入数据可以是目标指标下的指标值数据。采集周期可以是预设的,如5s。可选地,待写入数据可以是经过原始采集数据预处理后得到,数据的预处理可以包括:非法数据过滤、标准化格式转换、过滤数据噪点、数据映射规则替换以及数据二次计算等处理。
57.步骤102:当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据。
58.在本发明的一个实施例中,异常数据指的是数据为空,即在目标指标下无数据上报。异常数据的出现可以是采集设备或者数据传输过程异常引起的。在本发明的一个实施例中,缓存中存有多条待存储数据,每一条待存储数据可以是数据行的形式进行记录,每一条数据行中可以包括如下信息:目标指标标识、记录起始时间、采集周期、至少一个周期采集的待写入数据以及各个待写入数据对应的连续写入次数,其中,连续写入次数是指连续的周期采集到的相同的待写入数据。
59.举例说明,待存储数据的数据行可以如下:key1 10:00:00 10 7[3]8[1]10[1]9[1]a;其中,key1为目标指标标识,记录起始时间为10:00:00,10为采集周期,单位为预设的,如秒。7、8、10、9为从记录起始时间开始各个周期分别采集到的待写入数据,[3]为7的连续写入次数,表示7连续出现了3次,即7 7 7,其他周期采集的待写入数据的连续写入次数计算方式以此类推,a为后续步骤中将说明的标志位。
[0060]
在本发明的一个实施例中,将缓存中记录起始时间与所述当前周期的待写入数据的当前采集时间最接近的第一缓存数据确定为所述待写入数据。举例说明,待写入数据可以如下:key1 19:00:00 5 99[3]98[1]100[1]97[3]a。
[0061]
在本发明的一个实施例中,所述当前周期的记录中包括标志位;所述标志位用于表征上一周期的待写入数据的记录处理情况;其中,记录处理情况可以包括上一周期是否生成了新记录来进行后续周期的待写入数据的存储。
[0062]
因此,在本发明的再一个实施例中,如图2所示,步骤102还包括:
[0063]
步骤1021:当所述当前周期的待写入数据为异常数据并且所述标志位表征上一周期未生成新记录时,生成所述新记录。
[0064]
在本发明的一个实施例中,将非异常数据存入到记录中,对于异常数据不进行存储,而通过记录之间的分割来标记。因此,可选地,若标志位表征上一周期生成新记录时,说明上一周期的待写入数据为异常,而当前周期的待写入数据仍然无异常,因此不存在待写入数据存入记录,直至出现后续周期出现非异常的待写入数据时,再生成该新记录,将采集到的非异常数据存入新记录中。
[0065]
步骤1022:将所述下一周期的待写入数据存入所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间。
[0066]
在本发明的一个实施例中,新记录可以为key1 19:00:00 5,其中,19:00:00为下一周期对应的采集时间,下一周期的待写入数据可以为96,则存入后的新记录为key1 19:00:00 5 96。
[0067]
步骤1023:在所述新记录中添加表征上一周期生成新记录的所述标志位。
[0068]
在本发明的一个实施例中,通过在新记录中添加表征上一周期生成新记录的标志位,将新记录与上一周期的记录分隔开来,从而在进行数据还原时,可以根据表征上一周期生成新记录的标志位确定出现异常数据的时间信息,从而对异常数据和非异常数据都无损进行回溯与还原。
[0069]
在本发明的再一个实施例中,如图2所示,所述标志位包括第一标志位(记作a)和第二标志位(记作e);所述第一标志位用于表征上一周期未生成新记录;所述第二标志位用于表征上一周期生成新记录。
[0070]
在本发明的一个实施例中,即每次采集到非异常的当前周期的待写入数据之后,在将该当前周期的待写入数据写入待写入数据之后中,再在当前写入完成的待写入数据中添加第一标志位,从而当当前周期的记录中存在第一标志位时,表明当前周期的前一周一的数据的采集过程没有被异常数据打断。即将一次非异常数据的写入视作一次心跳,通过第一标志位添加心跳检测通过的验证。具体地,第一标志位可以是心跳标识a(表示alive,即心跳存活)。
[0071]
在本发明的再一个实施例中,在当前周期的待写入数据为异常数据时,说明数据的采集过程出现了中断,则为了实现数据的完全还原,需要记录下出现中断(即异常数据)的时间,因此需要新建一个新记录来存储恢复正常时所采集到的待写入数据,即当一条记录为一个数据行时,需要进行折行。从而将每一次完整的包含至少一个采集周期的数据正常采集过程(可以视为一次包括多次连续心跳的心跳过程)以一条记录的形式分别进行记录。具体地,第二标志位可以是折行标识e(表示end,即记录的结束)。
[0072]
如图2所示,在步骤101之后还包括:步骤121:当所述下一周期的待写入数据为非异常数据且所述当前周期的记录中包括所述第二标志位时,生成所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间。
[0073]
当下一周期的待写入数据为非异常数据时,则不需要生成新记录,即直接将下一周期的待写入数据添加到当前周期的记录中,而若当前周期的记录中包括第二标志位,则说明当前周期的待写入数据之前的历史采集时间中出现了数据采集的中断,即需要将当前周期的待写入数据存入一个新的第二缓存数据,从而通过缓存中的待写入数据和第二缓存数据对应的记录起始时间(即执行折行处理的时间)以及采集周期来对异常数据的出现时间进行回溯,数据回溯和解压的过程详见后续步骤1041

1045。
[0074]
步骤122:将所述下一周期的待写入数据存入所述新记录中。
[0075]
在本发明的一个实施例中,步骤122的存入过程与步骤1022类似,不再赘述。
[0076]
步骤123:在所述新记录中添加所述第一标志位。
[0077]
在新记录中存储了下一周期的待写入数据之后,也应该添加第一标志位,即表示在新记录中的上一周期存储的是非异常数据,从而保证后续新记录中待写入数据的心跳检测过程迭代式正常进行。另外,考虑到缓存设备的单行数据存储长度一般是有限的,在数据存储长度超过设备存储阈值时,会出现数据溢出而造成数据的丢失,因此,在本发明的再一个实施例中,如图3所示,在步骤102生成新记录之后还包括:
[0078]
步骤124:当所述当前周期的记录的记录长度大于长度阈值时,在所述当前周期的记录中添加所述第二标志位;其中,所述长度阈值根据设备最大存储长度和所述第二标志位的标志位长度确定。
[0079]
在当前周期的记录的记录长度大于长度阈值时,也进行与步骤102中相同的生成新记录的处理,由此通过新记录来存储下一周期以及之后周期的待写入数据,由此避免数据溢出而丢失,进一步提高数据存储的可靠性。并且,在当前周期的记录中添加第二标志位,用以指示下一周期采集到的非异常数据在新记录中进行存储。
[0080]
步骤103:获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据。
[0081]
在本发明的一个实施例中,通过对各个记录中的相邻采集周期出现的相同的待写入数据进行压缩,从而减小存储成本。具体地,可以是在重复连续出现的待写入数据的连续出现次数,通过对该连续出现次数进行更新,记录下待写入数据的数值变化情况。因此,在本发明的再一个实施例中,所述当前周期的记录中包括第三标志位和上一周期的待写入数据;所述第三标志位用于指示所述当前周期的待写入数据与所述上一周期的待写入数据之间的数值关系;待写入数据之间的数值关系可以包括相同与不同两种,具体地,如图3所示,在相同时,将第三标志位设置为第一预设值(如1),在不同时,将第三标志位设置为第二预设值(如0),第一预设值与第二预设值不同。在本发明的一个实施例中,如图3所示,第三标志位可以为xt_key1=0/1,即指示针对key1这一目标指标值下的心跳检测执行状态是否开启。
[0082]
举例对第三标志位xt_key1的作用进行说明,上一周期的记录可以如下所示:key1 19:00:00 5 99[3]98[1]100[1]97[3]a;可知上一周期的待写入数据数据为97。当当前周期的待写入数据与上一周期的待写入数据不同时,如当当前周期的待写入数据为98时,将当前周期的待写入数据写入得到更新后的待存储数据为:key1 19:00:00 5...97[3]98。
[0083]
根据待存储数据可以看出当前周期的记录中的最近两个周期的待写入数据发生了变化,因此最近一次存入记录的数据是非异常数据,为了进一步提高数据存储的效率,可以采取跳过一次心跳检测的方法,即在当前周期的待写入数据存入上一周期的记录之后不添加第一标志位,从而下一周期的数据在存入该记录时也不用先删除第一标志位,由此省去添加和删除第一标志位的两次操作,进一步提高数据存储的效率。
[0084]
需要说明的是,当记录中最近两个周期存入的待写入数据相同时,在对记录进行数据压缩之前,得到的是key1 19:00:00 5...97[3]97,此时由于最近两个周期的待写入数据相同,因此无法确定记录中的最末位的待写入数据是否发生了变化,即上一周期的记录中末位的待写入数据的97是否是已经存入的当前周期的待写入数据还是未存入的上一周期的待写入数据,因此不能将第三标志位设置为第一预设值,以跳过心跳检测过程。综上,第三标志位用于指示待写入数据缓存过程中的心跳检测是否开启。
[0085]
在本发明的一个实施例中,如图4所示,步骤103还包括:
[0086]
步骤1031:将所述当前周期的待写入数据与所述上一周期的待写入数据进行比较。
[0087]
将当前周期的待写入数据与上一周期的待写入数据即97进行比较。
[0088]
步骤1032:当所述当前周期的待写入数据与所述上一周期的待写入数据不同时,将所述当前周期的待写入数据存入上一周期的记录中,得到所述待存储数据,并将所述第三标志位设置为第二预设值;所述第二预设值用于指示当前周期的待写入数据与上一周期的待写入数据不同。
[0089]
在本发明的一个实施例中,当所述当前周期的待写入数据与所述最近写入数据不同时,将所述当前周期的待写入数据存入上一周期的记录中,并且将当前周期的待写入数据的连续写入次数记录为1。举例说明,在当前周期的待写入数据为98时,待存储数据确定为key1 19:00:00 5 99[3]98[1]100[1]97[3]98[1]。
[0090]
步骤1033:当所述当前周期的待写入数据与所述上一周期的待写入数据相同时,对所述待写入数据的连续采集次数进行更新,得到所述待存储数据,并将所述第三标志位设置为第一预设值;所述第一预设值用于指示当前周期的待写入数据与上一周期的待写入数据相同。
[0091]
在本发明的一个实施例中,当当前周期的待写入数据与上一周期的待写入数据相同时,对所述相同的待写入数据的连续写入次数进行更新,即将连续写入次数进行加一处理。举例说明,在当前周期的待写入数据为97时,待存储数据确定为key1 19:00:00 5 99[3]98[1]100[1]97[4]a,即在上一周期写入后得到的记录的基础上,根据当前周期的待写入数据是否异常,确定是将当前周期的待写入数据继续写入到上一周期的记录中,还是生成一个新记录进行下一周期的待写入数据的存储。
[0092]
在本发明的再一个实施例中,如图5所示,在步骤101之后,还包括:
[0093]
步骤31:当所述当前周期的待写入数据为非异常数据且所述第三标志位为所述第二预设值时,将当前周期的待写入数据存入上一周期的记录中,并在存入后的记录中添加所述第一标志位。
[0094]
如前所述,在所述第三标志位为所述第二预设值时,则表明最近一次数据写入时跳过了增加心跳检测通过标志即第一标志位的步骤,因此,在将当前周期的待写入数据存入上一周期的记录之前,无需执行删除第一标志位的操作。
[0095]
步骤32:当所述当前周期的待写入数据为非异常数据并且上一周期的记录中包括所述第一标志位且所述第三标志位为所述第一预设值时,删除所述上一周期的记录中的所述第一标志位,将所述当前周期的待写入数据写入所述上一周期的记录,并在存入后的记录中添加所述第一标志位。
[0096]
在所述第三标志位为所述第一预设值时,得到待压缩数据的过程与步骤102中相同。
[0097]
步骤104:将所述待存储数据写入缓存中。
[0098]
在本发明的一个实施例中,以上数据采集和压缩操作全部在缓存中进行,从而确保了较高的运算性能。在数据压缩完成后,还需要将缓存中的数据转移到磁盘中,从而进一步提高数据存储的可靠性。
[0099]
在本发明的再一个实施例中,可以根据缓存中的数据是否达到最大缓存容量、所有第一缓存数据对应的目标记录时长之和是否达到最大时间值以及第一缓存数据的总记录数是否达到最大存储行数等方面进行是否需要缓存中的数据转移到磁盘中的判断。从而从时间、空间和数量三个维度完成磁盘数据的写入,将实时传输变为准实时传输,从而确保数据高效集中写入,极大减少io读写。
[0100]
在本发明的再一个实施例中,对待写入数据进行记录,得到待压缩数据最终写入缓存的过程可以如图6所示,即分别用第一标志位、第二标志位以及第三标志位来进行不同的记录的分割标识,以此根据数据的异常情况进行不同的记录处理操作,实现数据的无损
压缩、完全还原以及异常数据的回溯。
[0101]
在本发明的再一个实施例中,在步骤104之后,还包括:
[0102]
步骤1041:确定所述待写入数据的采集周期。
[0103]
步骤1042:响应针对所述缓存的数据解压请求。
[0104]
举例说明,在缓存中存在一条记录如下:key1 19:00:00 5 99[3]98[1]100[1]97[3]98[1]ae。
[0105]
步骤1043:将所述缓存中任一记录起始时间确定为第一起始时间。
[0106]
如,对于上述记录,第一起始时间为19:00:00。
[0107]
步骤1044:获取所述缓存中记录起始时间晚于且最接近所述第一起始时间的邻近记录。
[0108]
根据记录起始时间可以确定,步骤1042中的记录的邻近记录为:key1 19:00:50 5 100[2]99[2]97[1]98[1]a。
[0109]
步骤1044:将所述邻近记录的所述记录起始时间确定为第二起始时间。
[0110]
如,对于上述邻近记录,第二起始时间为19:00:50。
[0111]
步骤1045:根据所述第一起始时间、第二起始时间、所述采集周期以及所述待存储数据确定所述为所述第一起始时间与所述第二起始时间之间采集的所述待存储数据对应的解压后数据。
[0112]
在本发明的一个实施例中,首先确定第二起始时间与第一起始时间的差值作为目标记录时长,结合前述步骤中的举例,第一起始时间为19:00:00,第二起始时间为19:00:50,则目标记录时长为19:00:50

19:00:00=50。然后根据目标记录时长与采集周期的比值确定目标数据个数,如50/5=10个。最后根据待写入数据中的各个历史写入数据和该历史写入数据对应的连续写入次数进行压缩数据的还原,得到原始非异常数据。如将key1 19:00:00 5 99[3]98[1]100[1]97[3]98[1]ae还原为原始非异常数据key1 19:00:00 5 99 99 99 98 100 97 97 97 98。
[0113]
该原始非异常数据中包括的数据个数为9个,而计算出的目标数据个数为10个,因此确定解压后数据出现了异常数据,并且异常数据的出现时间为第10个采集时间节点,即19:00:00 (10

1)*5=19:00:45。由此解压后数据为key1 19:00:00 5 99 99 99 98 100 97 97 97 98异常标识符。其中,异常标识符可以是预设的占位符,用于指示该占位符对应的采集时间节点出现了异常数据。通过上述方式,实现了对缓存中的压缩后数据进行无损解压,得到原始数据,由此实现了数据可回溯。
[0114]
在本发明的再一个实施例中,可以按照记录的记录起始时间的顺序,针对每一条记录的记录起始时间以及该记录的下一条邻近记录的记录起始时间对该条记录进行解压处理,从而将缓存中的全部记录解压出来。
[0115]
本发明实施例的数据存储方法通过每一次在上一周期的记录中存入非异常的当前周期的待写入数据时,添加一个指示新存入的待写入数据为非异常数据的第一标志位到存入后的记录中,从而保证每一次待写入数据的数据记录存储状态都被记录下来,便于异常数据的回溯,从而提高了数据存储的可靠性和效率。
[0116]
图7示出了本发明实施例提供的数据存储装置的结构示意图。如图7所示,该装置200包括:获取模块201、生成模块202、压缩模块203以及存储模块204。
[0117]
在一种可选的方式中,获取模块201,用于周期性采集待写入数据。
[0118]
生成模块202,用于当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据。
[0119]
压缩模块203,用于获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据。
[0120]
存储模块204,用于将所述待存储数据写入缓存中。
[0121]
在本发明的再一个实施例中,所述当前周期的记录中包括标志位;所述标志位用于表征上一周期的待写入数据的记录处理情况;生成模块202还用于:当所述当前周期的待写入数据为异常数据并且所述标志位表征上一周期未生成新记录时,生成所述新记录;将所述下一周期的待写入数据存入所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间;在所述新记录中添加表征上一周期生成新记录的所述标志位。
[0122]
在本发明的再一个实施例中,所述标志位包括第一标志位和第二标志位;所述第一标志位用于表征上一周期未生成新记录;所述第二标志位用于表征上一周期生成新记录;生成模块202,还用于:当所述下一周期的待写入数据为非异常数据且所述当前周期的记录中包括所述第二标志位时,生成所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间;将所述下一周期的待写入数据存入所述新记录中;在所述新记录中添加所述第一标志位。
[0123]
在本发明的再一个实施例中,生成模块202,还用于:当所述当前周期的记录的记录长度大于长度阈值时,在所述当前周期的记录中添加所述第二标志位;其中,所述长度阈值根据设备最大存储长度和所述第二标志位的标志位长度确定。
[0124]
在本发明的再一个实施例中,所述所述当前周期的记录中包括第三标志位和上一周期的待写入数据;所述第三标志位用于指示所述当前周期的待写入数据与所述上一周期的待写入数据之间的数值关系;压缩模块203,还用于:
[0125]
将所述当前周期的待写入数据与所述上一周期的待写入数据进行比较;
[0126]
当所述当前周期的待写入数据与所述上一周期的待写入数据相同时,对所述待写入数据的连续采集次数进行更新,得到所述待存储数据,并将所述第三标志位设置为第一预设值;所述第一预设值用于指示当前周期的待写入数据与上一周期的待写入数据相同;
[0127]
当所述当前周期的待写入数据与所述上一周期的待写入数据不同时,将所述当前周期的待写入数据存入上一周期的记录中,得到所述待存储数据,并将所述第三标志位设置为第二预设值;所述第二预设值用于指示当前周期的待写入数据与上一周期的待写入数据不同。
[0128]
在本发明的再一个实施例中,生成模块202,还用于:
[0129]
当所述当前周期的待写入数据为非异常数据且所述第三标志位为所述第二预设值时,将当前周期的待写入数据存入所述当前周期的记录中,并在存入后的记录中添加所述第一标志位;
[0130]
当所述当前周期的待写入数据为非异常数据并且上一周期的记录中包括所述第一标志位且所述第三标志位为所述第一预设值时,删除所述上一周期的记录中的所述第一标志位,将所述当前周期的待写入数据写入所述上一周期的记录,并在存入后的记录中添加所述第一标志位。
[0131]
在本发明的再一个实施例中,存储模块204,还用于:
[0132]
确定所述待写入数据的采集周期;
[0133]
响应针对所述缓存的数据解压请求;
[0134]
将所述缓存中任一记录起始时间确定为第一起始时间;
[0135]
获取所述缓存中记录起始时间晚于且最接近所述第一起始时间的邻近记录;
[0136]
将所述邻近记录的所述记录起始时间确定为第二起始时间;
[0137]
根据所述第一起始时间、第二起始时间、所述采集周期以及所述待存储数据确定所述为所述第一起始时间与所述第二起始时间之间采集的所述待存储数据对应的解压后数据。
[0138]
本发明实施例的数据存储装置通过周期性采集待写入数据;当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据;从而将异常数据与非异常数据以分隔开的记录分别进行记录,再获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据;最后将所述待存储数据写入缓存中。区别于现有技术中相同数据则不进行记录更新的做法,无法确定是否出现数据采集异常,导致的数据存储可靠性低,本发明实施例的数据存储装置能够根据每个周期的待写入数据的异常情况对待写入数据采取不同的记录存储方式,实现了对异常数据出现时间的回溯,从而实现无损压缩,提高了数据存储的效可靠性。
[0139]
图8示出了本发明实施例提供的数据存储设备的结构示意图,本发明具体实施例并不对数据存储设备的具体实现做限定。
[0140]
如图8所示,该数据存储设备可以包括:处理器(processor)302、通信接口(communications interface)304、存储器(memory)306、以及通信总线308。
[0141]
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于数据存储方法实施例中的相关步骤。
[0142]
具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。
[0143]
处理器302可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。数据存储设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0144]
存储器306,用于存放程序310。存储器306可能包括高速ram存储器,也可能还包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。
[0145]
程序310具体可以被处理器302调用使数据存储设备执行以下操作:
[0146]
周期性采集待写入数据;
[0147]
当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据;
[0148]
获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据;
[0149]
将所述待存储数据写入缓存中。
[0150]
在一种可选的方式中,所述当前周期的记录中包括标志位;所述标志位用于表征
上一周期的待写入数据的记录处理情况;所述程序310被处理器302调用使数据存储设备执行以下操作:
[0151]
当所述当前周期的待写入数据为异常数据并且所述标志位表征上一周期未生成新记录时,生成所述新记录;
[0152]
将所述下一周期的待写入数据存入所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间;
[0153]
在所述新记录中添加表征上一周期生成新记录的所述标志位。
[0154]
在一种可选的方式中,所述标志位包括第一标志位和第二标志位;所述第一标志位用于表征上一周期未生成新记录;所述第二标志位用于表征上一周期生成新记录;所述程序310被处理器302调用使数据存储设备执行以下操作:
[0155]
当所述下一周期的待写入数据为非异常数据且所述当前周期的记录中包括所述第二标志位时,生成所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间;
[0156]
将所述下一周期的待写入数据存入所述新记录中;
[0157]
在所述新记录中添加所述第一标志位。
[0158]
在一种可选的方式中,所述程序310被处理器302调用使数据存储设备执行以下操作:
[0159]
当所述当前周期的记录的记录长度大于长度阈值时,在所述当前周期的记录中添加所述第二标志位;其中,所述长度阈值根据设备最大存储长度和所述第二标志位的标志位长度确定。
[0160]
在一种可选的方式中,所述当前周期的记录中包括第三标志位和上一周期的待写入数据;所述第三标志位用于指示所述当前周期的待写入数据与所述上一周期的待写入数据之间的数值关系;所述程序310被处理器302调用使数据存储设备执行以下操作:
[0161]
将所述当前周期的待写入数据与所述上一周期的待写入数据进行比较;
[0162]
当所述当前周期的待写入数据与所述上一周期的待写入数据不同时,将所述当前周期的待写入数据存入上一周期的记录中,得到所述待存储数据,并将所述第三标志位设置为第二预设值;所述第二预设值用于指示当前周期的待写入数据与上一周期的待写入数据不同;
[0163]
当所述当前周期的待写入数据与所述上一周期的待写入数据相同时,对所述待写入数据的连续采集次数进行更新,得到所述待存储数据,并将所述第三标志位设置为第一预设值;所述第一预设值用于指示当前周期的待写入数据与上一周期的待写入数据相同。
[0164]
在一种可选的方式中,所述程序310被处理器302调用使数据存储设备执行以下操作:
[0165]
当所述当前周期的待写入数据为非异常数据且所述第三标志位为所述第二预设值时,将当前周期的待写入数据存入所述当前周期的记录中,并在存入后的记录中添加所述第一标志位;
[0166]
当所述当前周期的待写入数据为非异常数据并且上一周期的记录中包括所述第一标志位且所述第三标志位为所述第一预设值时,删除所述上一周期的记录中的所述第一标志位,将所述当前周期的待写入数据写入所述上一周期的记录,并在存入后的记录中添
加所述第一标志位。
[0167]
在一种可选的方式中,所述程序310被处理器302调用使数据存储设备执行以下操作:
[0168]
确定所述待写入数据的采集周期;
[0169]
响应针对所述缓存的数据解压请求;
[0170]
将所述缓存中任一记录起始时间确定为第一起始时间;
[0171]
获取所述缓存中记录起始时间晚于且最接近所述第一起始时间的邻近记录;
[0172]
将所述邻近记录的所述记录起始时间确定为第二起始时间;
[0173]
根据所述第一起始时间、第二起始时间、所述采集周期以及所述待存储数据确定所述为所述第一起始时间与所述第二起始时间之间采集的所述待存储数据对应的解压后数据。
[0174]
本发明实施例的数据存储设备通过周期性采集待写入数据;当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据;从而将异常数据与非异常数据以分隔开的记录分别进行记录,再获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据;最后将所述待存储数据写入缓存中。区别于现有技术中相同数据则不进行记录更新的做法,无法确定是否出现数据采集异常,导致的数据存储可靠性低,本发明实施例的数据存储设备能够根据每个周期的待写入数据的异常情况对待写入数据采取不同的记录存储方式,实现了对异常数据出现时间的回溯,从而实现无损压缩,提高了数据存储的效可靠性。
[0175]
本发明实施例提供了一种计算机存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在数据存储设备上运行时,使得所述数据存储设备执行上述任意方法实施例中的数据存储方法。
[0176]
可执行指令具体可以用于使得数据存储设备执行以下操作:
[0177]
周期性采集待写入数据;
[0178]
当当前周期的待写入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据;
[0179]
获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据;
[0180]
将所述待存储数据写入缓存中。
[0181]
在一种可选的方式中,所述当前周期的记录中包括标志位;所述标志位用于表征上一周期的待写入数据的记录处理情况;所述可执行指令使所述数据存储设备执行以下操作:
[0182]
当所述当前周期的待写入数据为异常数据并且所述标志位表征上一周期未生成新记录时,生成所述新记录;
[0183]
将所述下一周期的待写入数据存入所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间;
[0184]
在所述新记录中添加表征上一周期生成新记录的所述标志位。
[0185]
在一种可选的方式中,所述标志位包括第一标志位和第二标志位;所述第一标志位用于表征上一周期未生成新记录;所述第二标志位用于表征上一周期生成新记录;所述
可执行指令使所述数据存储设备执行以下操作:
[0186]
当所述下一周期的待写入数据为非异常数据且所述当前周期的记录中包括所述第二标志位时,生成所述新记录;所述新记录的记录起始时间为所述下一周期对应的采集时间;
[0187]
将所述下一周期的待写入数据存入所述新记录中;
[0188]
在所述新记录中添加所述第一标志位。
[0189]
在一种可选的方式中,所述可执行指令使所述数据存储设备执行以下操作:
[0190]
当所述当前周期的记录的记录长度大于长度阈值时,在所述当前周期的记录中添加所述第二标志位;其中,所述长度阈值根据设备最大存储长度和所述第二标志位的标志位长度确定。
[0191]
在一种可选的方式中,所述当前周期的记录中包括第三标志位和上一周期的待写入数据;所述第三标志位用于指示所述当前周期的待写入数据与所述上一周期的待写入数据之间的数值关系;所述可执行指令使所述数据存储设备执行以下操作:
[0192]
将所述当前周期的待写入数据与所述上一周期的待写入数据进行比较;
[0193]
当所述当前周期的待写入数据与所述上一周期的待写入数据相同时,对所述待写入数据的连续采集次数进行更新,得到所述待存储数据,并将所述第三标志位设置为第一预设值;所述第一预设值用于指示当前周期的待写入数据与上一周期的待写入数据相同;
[0194]
当所述当前周期的待写入数据与所述上一周期的待写入数据不同时,将所述当前周期的待写入数据存入上一周期的记录中,得到所述待存储数据,并将所述第三标志位设置为第二预设值;所述第二预设值用于指示当前周期的待写入数据与上一周期的待写入数据不同。
[0195]
在一种可选的方式中,所述可执行指令使所述数据存储设备执行以下操作:
[0196]
当所述当前周期的待写入数据为非异常数据且所述第三标志位为所述第二预设值时,将当前周期的待写入数据存入所述当前周期的记录中,并在存入后的记录中添加所述第一标志位;
[0197]
当所述当前周期的待写入数据为非异常数据并且上一周期的记录中包括所述第一标志位且所述第三标志位为所述第一预设值时,删除所述上一周期的记录中的所述第一标志位,将所述当前周期的待写入数据写入所述上一周期的记录,并在存入后的记录中添加所述第一标志位。
[0198]
在一种可选的方式中,所述可执行指令使所述数据存储设备执行以下操作:
[0199]
确定所述待写入数据的采集周期;
[0200]
响应针对所述缓存的数据解压请求;
[0201]
将所述缓存中任一记录起始时间确定为第一起始时间;
[0202]
获取所述缓存中记录起始时间晚于且最接近所述第一起始时间的邻近记录;
[0203]
将所述邻近记录的所述记录起始时间确定为第二起始时间;
[0204]
根据所述第一起始时间、第二起始时间、所述采集周期以及所述待存储数据确定所述为所述第一起始时间与所述第二起始时间之间采集的所述待存储数据对应的解压后数据。
[0205]
本发明实施例的计算机存储介质通过周期性采集待写入数据;当当前周期的待写
入数据为异常数据时,生成新记录;所述新记录用于存储下一周期的待写入数据;从而将异常数据与非异常数据以分隔开的记录分别进行记录,再获取下一周期的待写入数据,对下一周期的待写入数据对应的新记录和当前周期的记录进行压缩,得到待存储数据;最后将所述待存储数据写入缓存中。区别于现有技术中相同数据则不进行记录更新的做法,无法确定是否出现数据采集异常,导致的数据存储可靠性低,本发明实施例的计算机存储介质能够根据每个周期的待写入数据的异常情况对待写入数据采取不同的记录存储方式,实现了对异常数据出现时间的回溯,从而实现无损压缩,提高了数据存储的效可靠性。
[0206]
本发明实施例提供一种数据存储装置,用于执行上述数据存储方法。
[0207]
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使数据存储设备执行上述任意方法实施例中的数据存储方法。
[0208]
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的数据存储方法。
[0209]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0210]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0211]
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
[0212]
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0213]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名
称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献