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

时序数据的存储方法、计算设备及存储介质与流程

2022-06-29 17:53:40 来源:中国专利 TAG:


1.本技术涉及数据存储领域,尤其涉及一种时序数据的存储方法、计算设备及存储介质。


背景技术:

2.时序数据是指一串按时间维度索引的数据。通过对时序数据的采集、处理和分析能够实现实时监测生产与经营过程。然而在大规模时序数据长时存储的需求下,需要提供一种低成本的长时存储方案,同时需要能够满足实时查询的需求背景下。


技术实现要素:

3.本技术的多个方面提供一种时序数据的存储方法、计算设备及存储介质,能够满足实时查询需求的情况下,降低了存储成本。
4.本技术实施例提供一种时序数据的存储方法,从时序数据库中获取时序数据对应的目标文件集合,所述目标文件集合在预置时间内没有数据写入;将所述目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是根据顺序排序的,以使对应的索引是按照顺序排序的;将所述目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,所述索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含是按照顺序排序的第二字段,所述第一字段与所述第二字段对应。
5.本技术实施例还提供一种计算设备,包括:存储器、处理器;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:从时序数据库中获取时序数据对应的目标文件集合,所述目标文件集合在预置时间内没有数据写入;将所述目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;将所述目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,所述索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含按照顺序排序的第二字段,所述第一字段与所述第二字段对应。
6.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
7.在本技术实施例中,从时序数据库中获取时序数据对应的目标文件集合,目标文件集合在预置时间内没有数据写入;将目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;将目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合
并后的文件对应的索引元信息,索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含按照顺序排序的第二字段,第一字段与第二字段对应。
8.其中,将目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含按照顺序排序的第二字段。以使得通过对象存储能够实现冷数据长存的功能,同时成本比较低,且能够满足实时查询的需求(秒级响应)。
附图说明
9.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
10.图1为本技术一示例性实施例的时序数据的存储方法的流程示意图;
11.图2为本技术一示例性实施例的时序数据的存储系统的结构示意图;
12.图3为本技术一示例性实施例提供的时序数据的存储装置的结构示意图;
13.图4为本技术一示例性实施例提供的计算设备的结构示意图。
具体实施方式
14.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
15.根据前文可知,在大规模时序数据长时存储的需求下,需要提供一种低成本的长时存储方案,同时需要能够满足实时查询的需求背景下。
16.针对上述问题,本技术实施例提供了一种时序数据的存储方法、计算设备及存储介质,能够满足实时查询需求的情况下,降低了存储成本。
17.下面结合方法实施例,针对时序数据的存储过程进行详细说明。
18.图1为本技术一示例性实施例的一种时序数据的存储方法的流程示意图。本技术实施例提供的该方法100由时序数据库执行,具体的可以是时序数据库中的引擎,即tsdb(time series database时序数据库)引擎。该方法100包括以下步骤:
19.101:从时序数据库中获取时序数据对应的目标文件集合。
20.其中,目标文件集合在预置时间内没有数据写入。
21.102:将目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的。
22.103:将目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含按照顺序排序的第二字段。
23.其中,第一字段与所述第二字段对应。
24.以下针对上述步骤进行详细地阐述:
25.101:从时序数据库中获取时序数据对应的目标文件集合。
26.其中,目标文件集合在预置时间内没有数据写入。如一个月时间内没有数据点写入到该文件集合中,则该文件集合可以作为目标文件集合。
27.文件集合可以是指由多个文件组成的集合,该集合可以为时序数据库中的shard集合,在该shard中具有多个文件。
28.其中,文件包括多个数据以及多个数据对应的多个索引,索引中具有对应的第一字段,文件具有合并次数的标识。如,该文件可以是时序数据中底层存储文件,可以由series block data块数据和series key index第一字段索引(即索引,索引中包含第一字段),这两大部分组成。该文件可以是tsm文件(其是指以tsm为格式的文件)。在shard中tsm文件可以具有对应的合并次数,也可以称为generation代。以下是shard的结构:
29.…………
30.├──
[2.0g]000009571-000000002.tsm
[0031]
├──
[2.0g]000009571-000000003.tsm
[0032]
├──
[2.0g]000009571-000000004.tsm
[0033]
├──
[2.0g]000009572-000000005.tsm
[0034]
├──
[2.0g]000009572-000000006.tsm
[0035]
├──
[2.0g]000009572-000000007.tsm
[0036]
├──
[2.0g]000009573-000000008.tsm
[0037]
├──
[2.0g]000009573-000000009.tsm
[0038]
├──
[2.0g]000009574-000000010.tsm
[0039]
├──
[918m]000009574-000000011.tsm
[0040]
…………
[0041]
其中,单个tsm的大小上限为2g(千兆)大小文件,tsm文件命名格式generation_seq.tsm,其中,seq为序号标识,如序列号。由此可以确定一个shard中,文件000009571-000000002.tsm中的合并次数为000009571。
[0042]
由此,引擎可以从时序数据库中获取到多个shard,选择预置时间内没有数据写入的shard,作为冷shard,即目标文件集合。
[0043]
102:将目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是按照顺序(如字典顺序)排序的,以使对应的索引是按照顺序(如字典顺序)排序的。
[0044]
其中,根据前文可知,当合并次数generation越大,代表合并次数越多,压缩程度越大。文件的合并方式可以通过压缩的方式进行合并的。
[0045]
例如,根据前文所述,引擎可以获取到冷shard后,将冷shard中相同generation进行合并,如000009571-000000002.tsm和000009571-000000003.tsm进行合并。合并后的tsm文件内series_key按照字典排序,且该冷shard内各个文件的series_key也按照字典排序。
[0046]
具体地,将目标文件集合中的多个文件进行合并,生成多个合并后的文件,包括:
将目标文件集合中具有相同合并次数的文件进行合并,生成合并后的文件,且合并后的文件的合并次数增加一次,以使目标文件集合中最终合并后的文件的合并次数相同;根据顺序排序合并后的文件内对应的第一字段,根据顺序(如字典顺序)排序多个合并后的文件对应的第一字段,以使具有对应第一字段的索引是按照顺序(如字典顺序)排序的。
[0047]
例如,根据前文所述,引擎可以通过full compactor全局合并压实器。对冷shard做的一次全局compactor最终达到合并终态,将冷shard里相同代的tsm文件进行合并,生成下一代,即合并次数加一,如将000009571-000000002.tsm和000009571-000000003.tsm进行合并,代数由000009571增加到000009572,从而使得合并终态都属于同一个代,cold shard的最终形态可以如下:
[0048]
……
[0049]
├──
[2.0g]000009571-000000002.tsm
[0050]
├──
[2.0g]000009571-000000003.tsm
[0051]
├──
[2.0g]000009571-000000004.tsm
[0052]
├──
[2.0g]000009571-000000005.tsm
[0053]
├──
[2.0g]000009571-000000006.tsm
[0054]
├──
[2.0g]000009571-000000007.tsm
[0055]
├──
[2.0g]000009571-000000008.tsm
[0056]
├──
[2.0g]000009571-000000009.tsm
[0057]
├──
[2.0g]000009571-000000010.tsm
[0058]
├──
[918m]000009571-000000011.tsm
[0059]
……
[0060]
由此可知,最终形态里的文件都属于000009571代。
[0061]
根据上述可知,文件合并后,每个文件页具有对应的序号,如000009571-000000009.tsm文件中的序号为000000009。
[0062]
具体的,该方法100还包括:文件在具有相同合并次数的情况下,根据文件对应的序号标识进行排序;根据序号标识,确定对应的第一字段的序号标识。
[0063]
根据前文所述,可以通过seq,表示文件的排序顺序。其中,seq排序顺序也是目标文件集合中series_key第一字段的字典排序,且单个tsm文件内部index索引也是按字典排序。其中,可以通过最小堆算法来进行字典排序,即可以按照顺序排序。
[0064]
需要说明的是,根据前文可知,generation,表示每次文件合并compactor生成下一代tsm文件,每触发合并compactor一次,generation递增加1。
[0065]
可以通过定时的方式来获取目标文件集合,也可以主动去获取目标文件集合,以保证在文件失效前进行数据的转存。
[0066]
具体的,该方法100还包括:从时序数据库中获取时序数据对应的文件集合,将文件集合中的多个文件进行合并,生成多个合并后的文件,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;当文件集合在预置时间内没有数据写入,则执行步骤从时序数据库中获取时序数据对应的目标文件集合的步骤。
[0067]
例如,根据前文所述,引擎可以从时序数据库中获取多个shard,然后根据前文所述的方式进行文件合并。合并后的文件对应的第一字段根据顺序排序,以使对应的索引根
据顺序排序,就不再赘述了。然后引擎在shard过期删除淘汰前,需要获取到冷shard。再对冷shard进行一次本地full compactor,保证series keys在tsm文件内和文件间都是字典排序。就不再赘述了。
[0068]
103:将目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含按照顺序排序的第二字段。
[0069]
其中,对象存储oss是指(object storage service)是一款海量、安全、低成本、高可靠的云存储服务。通过把历史冷数据冷shard转存到通过oss对象归档存储,解决了冷数据长存的功能,同时成本比较低,且能够满足实时查询的需求(秒级响应)。
[0070]
第一字段与第二字段对应。例如,根据前文所述,引擎得到上述full compactor后的shard后,将shard转存储通过对象存储进行该shard的存储。存储后,在对象存储的组织结构下,具有对应的索引元信息:meta文件,其描述了index文件列表的基本元信息,用于快速二分查询,查询的series key位于哪个index文件中。其中,meta文件按顺序行存储minkey,maxkey,tag键值对,mintime和maxtime等辅助信息。meta文件属于blockmeta块元信息(index meta)。其中,minkey(最小字段,即属于第二字段)对应切片内的最小字典顺序series key(即属于第一字段),maxkey(最大字段,即属于第二字段)对应切片内的最大字典序series key(即属于第一字段),mintime(最小时间)对应切片内的最小时间和maxtime(最大时间)对应切片内的最大时间。由此,可以进行数据查询。
[0071]
其中,meta文件中的信息是按照顺序进行排序的。其格式可以如下:
[0072]
{"min_t":xxx,"max_t":yyy,"min_key":"aaa","max_key":bbb","block_size":ccc,"seq":1}
[0073]
{"min_t":xxx,"max_t":yyy,"min_key":"ddd","max_key":"eee","block_size":fff,"seq":2}
[0074]
为了便于存储,可以通过切片的方式进行上传。
[0075]
具体的,该方法100还包括:根据目标文件集合中合并后的文件对应的第一字段以及对应的索引条目,确定合并后的文件的切割粒度;根据切割粒度,以及目标文件集合中合并后的文件对应的序列标识,传输合并后的文件以进行存储。
[0076]
例如,根据前文所述,引擎在上传上述shard的时候,可以根据顺序上传文件,如按seq序号上传,按需切片上传,切割最小粒度是series key block(第一字段块)和series key index entry(包含第一字段的索引条目)。即可以通过以block块为单位,由多个第一字段series key组成作为最小粒度的第一字段。以及对应的索引条目作为最小粒度的索引,进行文件的切割,得到切片。然后,根据序列号对应的顺序上传对应的切片。
[0077]
具体的,根据切割粒度,以及目标文件集合中合并后的文件对应的序列标识,传输合并后的文件以进行存储,包括:根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的数据通过对象存储进行数据存储;根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的索引通过对象存储进行索引存储,且数据所在存储文件与索引所在存储文件是对应的。
[0078]
例如,引擎在上传的过程中,根据上述最小粒度,进行切片上传。且将合并后的tsm
文件的block和index分开对象存储,一个对象object存储block data,另一个对象object存储index。即一个block data文件和一个index文件,两者一一对应。
[0079]
具体的,将目标文件集合中的合并后的文件通过对象存储进行文件存储,包括:根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的数据通过对象存储进行数据存储;根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的索引通过对象存储进行索引存储,且数据所在存储文件与索引所在存储文件是对应的。
[0080]
由于前文已经阐述过了,此处就不再赘述。
[0081]
需要说明的是,在切片上传的过程中,可以设置切片对象object的生存时间值ttl(time to live),利用oss的tag淘汰策略,设置object过期时间。
[0082]
存储后的oss文件组织结构如下:
[0083]
bucket(划分集群和区域)
[0084]
‑‑‑
db(租户或用户)
[0085]
‑‑
shard time(shard时间)
[0086]
‑‑
hash slot(分布式集群槽slot)
[0087]
‑‑‑‑
blockdata(block data数据)
[0088]
‑‑‑‑‑
1.block
[0089]
‑‑‑‑‑
2.block
[0090]
‑‑‑‑
blockindex(index data索引)
[0091]
‑‑‑‑‑
1.idx
[0092]
‑‑‑‑‑
2.idx
[0093]
‑‑‑‑‑
blockmeta(index meta索引元信息)
[0094]
‑‑‑‑‑
meta(索引元信息)
[0095]
在存储完成过后,可以对数据进行查询。
[0096]
具体的,该方法100还包括:接收待查询第一字段,根据所述待查询第一字段以及索引元信息中的第二字段,确定对应的索引元信息,并确定对应的索引;根据对应的索引,确定对应的数据;根据对应的数据所在的逻辑位置,获取对应的时序数据。
[0097]
例如,根据前文所述,引擎可以接收到查询请求,该查询请求可以携带待查询的series_key。该请求可以是用户通过电脑发送来的查询请求,用于查询某个时序数据。引擎通过已知待查询的series_key从上述meta中的minkey和maxkey中确定对应的key第二字段,然后确定对应的索引index,并通过该索引查询到的对应的块block文件或数据。就定位到了待查询的series key位于block文件的哪个offset开始和结束,就可以通过getrange函数的拉取方式拉取需要的时序压缩块,减少了其他不必要的下载带宽成本。
[0098]
由此,可以解决通过已知的series key,快速定位tsm文件的index的描述文件,确定index,并最终定位block文件。
[0099]
需要说明的是,在转存阶段,对tsm文件按上述方式切片,并可以通过二级索引的方式,支持实时查询的需求。
[0100]
本实施例也可以通过本地盘或者云盘类存储方式存储在本地,但这种方式存储容量有上限,且不利用扩容且存储成本比较高。
[0101]
经过测试,通过拉取相同数据大小和时间跨度tsar命令监测数据确定本技术实施
例oss冷存方式已经满足最终的需求在冷数据大幅降本的基础之上,查询在秒级响应。
[0102]
图2为本技术一示例性实施例提供的一种时序数据的存储系统的结构示意图。如图2所示,该系统200可以包括:第一设备201,以及第二设备202。该系统200还可以包括第三设备203。
[0103]
其中,第一设备201是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据转存的设备。在物理实现上,第一设备201可以是任何能够提供计算服务,响应服务请求,并进行二进制文件的相似度确定的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第一设备201的构成主要包括处理器、内存、硬盘、系统总线等,和通用的计算机架构类似。
[0104]
第二设备202与第一设备201的实现形态相似,就不再赘述了。
[0105]
第三设备203是指智能终端,如电脑,用户可以通过该智能终端访问第二设备202。
[0106]
具体的,第一设备201,从时序数据库中获取时序数据对应的目标文件集合,目标文件集合在预置时间内没有数据写入;将目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;将目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含按照顺序排序的第二字段,第一字段与第二字段对应。
[0107]
其中,第一设备201,通过第二设备202实现对象存储。
[0108]
其中,文件包括多个数据以及多个数据对应的多个索引,索引中具有对应的第一字段,文件具有合并次数的标识。
[0109]
具体的,第一设备201,将目标文件集合中具有相同合并次数的文件进行合并,生成合并后的文件,且合并后的文件的合并次数增加一次,以使目标文件集合中最终合并后的文件的合并次数相同;根据顺序排序合并后的文件内对应的第一字段,根据顺序排序多个合并后的文件对应的第一字段,以使具有对应第一字段的索引是按照顺序排序的。
[0110]
此外,第一设备201,文件在具有相同合并次数的情况下,根据文件对应的序号标识进行排序;根据序号标识,确定对应的第一字段的序号标识。
[0111]
此外,第一设备201,从时序数据库中获取时序数据对应的文件集合,将文件集合中的多个文件进行合并,生成多个合并后的文件,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;当文件集合在预置时间内没有数据写入,则执行步骤从时序数据库中获取时序数据对应的目标文件集合的步骤。
[0112]
此外,第一设备201,根据目标文件集合中合并后的文件对应的第一字段以及对应的索引条目,确定合并后的文件的切割粒度;根据切割粒度,以及目标文件集合中合并后的文件对应的序列标识,传输合并后的文件以进行存储。
[0113]
具体的,第一设备201,根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的数据通过对象存储进行数据存储;根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的索引通过对象存储进行索引存储,且数据所在存储文件与索引所在存储文件是对应的。
[0114]
此外,第一设备201,接收第三设备203待查询第一字段,根据待查询第一字段以及索引元信息中的第二字段,确定对应的索引元信息,并确定对应的索引;根据对应的索引,确定对应的数据;根据对应的数据所在的逻辑位置,获取对应的时序数据。
[0115]
未能详尽的内容请参考前文所述,就不再赘述了。
[0116]
在时序数据的转存的场景中,第一设备201,如时序数据,其中的引擎可以从时序数据库中获取到多个shard,选择预置时间内没有数据写入的shard,作为冷shard,即目标文件集合。
[0117]
引擎可以通过full compactor全局合并压实器。对冷shard做的一次全局compactor最终达到合并终态,将冷shard里相同代的tsm文件进行合并,生成下一代,即合并次数加一,如将000009571-000000002.tsm和000009571-000000003.tsm进行合并,代数由000009571增加到000009572,从而使得合并终态都属于同一个代,cold shard的最终形态可以如下:
[0118]
……
[0119]
├──
[2.0g]000009571-000000002.tsm
[0120]
├──
[2.0g]000009571-000000003.tsm
[0121]
├──
[2.0g]000009571-000000004.tsm
[0122]
├──
[2.0g]000009571-000000005.tsm
[0123]
├──
[2.0g]000009571-000000006.tsm
[0124]
├──
[2.0g]000009571-000000007.tsm
[0125]
├──
[2.0g]000009571-000000008.tsm
[0126]
├──
[2.0g]000009571-000000009.tsm
[0127]
├──
[2.0g]000009571-000000010.tsm
[0128]
├──
[918m]000009571-000000011.tsm
[0129]
……
[0130]
引擎得到上述full compactor后的shard后,将shard转存储通过对象存储进行该shard的存储。即执行步骤211:存储合并后的文件。存储后,在对象存储的组织结构下,具有对应的索引元信息:meta文件,其描述了index文件列表的基本元信息,用于快速二分查询,查询的series key位于哪个index文件中。其中,meta文件按顺序行存储minkey,maxkey,tag键值对,mintime和maxtime等辅助信息。meta文件属于blockmeta块元信息(index meta)。其中,minkey(最小字段,即属于第二字段)对应切片内的最小字典顺序series key(即属于第一字段),maxkey(最大字段,即属于第二字段)对应切片内的最大字典序series key(即属于第一字段),mintime(最小时间)对应切片内的最小时间和maxtime(最大时间)对应切片内的最大时间。由此,可以进行数据查询。
[0131]
引擎在上传上述shard的时候,可以根据顺序上传文件,如按seq序号上传,按需切片上传,切割最小粒度是series key block(第一字段块)和series key index entry(包含第一字段的索引条目)。即可以通过以block块为单位,由多个第一字段series key组成作为最小粒度的第一字段。以及对应的索引条目作为最小粒度的索引,进行文件的切割,得到切片。然后,根据序列号对应的顺序上传对应的切片。
[0132]
引擎可以接收到第三设备203如电脑发送的查询请求,该查询请求可以携带待查
询的series_key。即执行步骤212:发送查询请求。该请求可以是用户通过电脑发送来的查询请求,用于查询某个时序数据。引擎通过已知待查询的series_key进行查询,即执行步骤213:查询对应的数据,引擎从上述meta中的minkey和maxkey中确定对应的key第二字段,然后确定对应的索引index,并通过该索引查询到的对应的块block文件或数据。就定位到了待查询的series key位于block文件的哪个offset开始和结束,就可以通过getrange函数的拉取方式拉取需要的时序压缩块,即执行步骤214:返回对应的数据,减少了其他不必要的下载带宽成本。最后,将对应的数据返回至电脑,即执行步骤215:发送查找到的数据。
[0133]
此处未详细记载的内容可以参考前文所述的内容,就不再赘述。
[0134]
在上述本实施例中,第一设备201与第二设备202、第三设备203进行网络连接。第一设备201与第二设备202、第三设备203是通信连接,该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g (lte )、wimax、5g等中的任意一种。
[0135]
第一设备201和第二设备202可以通过集群实现。
[0136]
图3为本技术一示例性实施例提供的一种时序数据的存储装置的结构框架示意图。该装置300可以应用于大数据处理系统中的处理节点,具体的可以是服务器。该装置300包括:获取模块301、合并模块302以及存储模块303;以下针对各个模块的功能进行详细的阐述:
[0137]
获取模块301,用于从时序数据库中获取时序数据对应的目标文件集合。
[0138]
其中,目标文件集合在预置时间内没有数据写入。
[0139]
合并模块302,用于将目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的。
[0140]
存储模块303,用于将目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序的,且对应索引的描述信息中包含按照顺序排序的第二字段,第一字段与第二字段对应。
[0141]
其中,文件包括多个数据以及多个数据对应的多个索引,索引中具有对应的第一字段,文件具有合并次数的标识。
[0142]
具体的,合并模块302,包括:合并单元,用于将目标文件集合中具有相同合并次数的文件进行合并,生成合并后的文件,且合并后的文件的合并次数增加一次,以使目标文件集合中最终合并后的文件的合并次数相同;排序单元,用于根据顺序排序合并后的文件内对应的第一字段,根据顺序排序多个合并后的文件对应的第一字段,以使具有对应第一字段的索引是按照顺序排序的。
[0143]
此外,该装置300还包括:排序模块,用于文件在具有相同合并次数的情况下,根据文件对应的序号标识进行排序;确定模块,用于根据序号标识,确定对应的第一字段的序号标识。
[0144]
此外,合并模块302,还用于:从时序数据库中获取时序数据对应的文件集合,将文件集合中的多个文件进行合并,生成多个合并后的文件,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;当文件集合在预置时间内没有数据
写入,则执行步骤从时序数据库中获取时序数据对应的目标文件集合的步骤。
[0145]
此外,确定模块,还用于根据目标文件集合中合并后的文件对应的第一字段以及对应的索引条目,确定合并后的文件的切割粒度;存储模块303,还用于根据切割粒度,以及目标文件集合中合并后的文件对应的序列标识,传输合并后的文件以进行存储。
[0146]
此外,存储模块303,包括:存储单元,用于根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的数据通过对象存储进行数据存储;存储单元,用于根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的索引通过对象存储进行索引存储,且数据所在存储文件与索引所在存储文件是对应的。
[0147]
此外,该装置300还包括:接收模块,用于接收待查询第一字段,根据待查询第一字段以及索引元信息中的第二字段,确定对应的索引元信息,并确定对应的索引;确定模块,还用于根据对应的索引,确定对应的数据;获取模块301,还用于根据对应的数据所在的逻辑位置,获取对应的时序数据。
[0148]
本装置300中未能详尽的内容请参考前文所述,就不再赘述。
[0149]
以上描述了图3所示的装置300的内部功能和结构,在一个可能的设计中,图3所示的装置300的结构可实现为服务器。如图4所示,该设备400可以包括:存储器401、处理器402;
[0150]
存储器401,用于存储计算机程序。
[0151]
处理器402,用于执行计算机程序,以用于:从时序数据库中获取时序数据对应的目标文件集合,目标文件集合在预置时间内没有数据写入;将目标文件集合中的多个文件进行合并,生成多个合并后的文件,多个合并后的文件具有相同的合并次数,以指示合并后的文件的压缩程度相同,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;将目标文件集合中的合并后的文件通过对象存储进行文件存储,以使通过对象存储记录合并后的文件对应的索引元信息,索引元信息记录了对应索引的描述信息,对应索引的描述信息是按照顺序排序,且对应索引的描述信息中包含按照顺序排序的第二字段,第一字段与第二字段对应。
[0152]
其中,文件包括多个数据以及多个数据对应的多个索引,索引中具有对应的第一字段,文件具有合并次数的标识。
[0153]
具体的,处理器402,具体用于将目标文件集合中具有相同合并次数的文件进行合并,生成合并后的文件,且合并后的文件的合并次数增加一次,以使目标文件集合中最终合并后的文件的合并次数相同;根据顺序排序合并后的文件内对应的第一字段,根据顺序排序多个合并后的文件对应的第一字段,以使具有对应第一字段的索引是按照顺序排序。
[0154]
此外,处理器402,还用于文件在具有相同合并次数的情况下,根据文件对应的序号标识进行排序;根据序号标识,确定对应的第一字段的序号标识。
[0155]
此外,处理器402,还用于从时序数据库中获取时序数据对应的文件集合,将所述文件集合中的多个文件进行合并,生成多个合并后的文件,合并后的文件对应的第一字段是按照顺序排序的,以使对应的索引是按照顺序排序的;当文件集合在预置时间内没有数据写入,则执行步骤从时序数据库中获取时序数据对应的目标文件集合的步骤。
[0156]
此外,处理器402,还用于根据目标文件集合中合并后的文件对应的第一字段以及对应的索引条目,确定合并后的文件的切割粒度;根据切割粒度,以及目标文件集合中合并
后的文件对应的序列标识,传输合并后的文件以进行存储。
[0157]
具体的,处理器402,具体用于根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的数据通过对象存储进行数据存储;根据序号标识,将目标文件集合中合并后的文件根据切割粒度,将对应的索引通过对象存储进行索引存储,且数据所在存储文件与索引所在存储文件是对应的。
[0158]
此外,处理器402,还用于接收待查询第一字段,根据所述待查询第一字段以及索引元信息中的第二字段,确定对应的索引元信息,并确定对应的索引;根据对应的索引,确定对应的数据;根据对应的数据所在的逻辑位置,获取对应的时序数据。
[0159]
本设备400中未能详尽的内容请参考前文所述,就不再赘述。
[0160]
本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1方法实施例中一种时序数据的存储方法的步骤。就不再过多赘述了。
[0161]
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102、103等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0162]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0163]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0164]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0165]
这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个
方框或多个方框中指定的功能。
[0166]
这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0167]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0168]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0169]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0170]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献