一种时序数据的聚合优化处理方法技术

技术编号:20044581 阅读:43 留言:0更新日期:2019-01-09 04:03
一种时序数据的聚合优化处理方法,包括将时序数据库文件划分为数据块文件和块索引文件;按照计算的起止时间段扫描块索引文件,将符合时间段条件和其他过滤条件的数据块抽出来后,根据每个数据块在数据块文件里的偏移量进行排序;按照排序后的数据块便宜量扫描数据文件,对每个数据块进行指定的计算后,将计算结果汇总,该方法无论是对于单一时间序列数据的读取,还是对于多个时间序列的聚合操作,都只需要打开一次数据文件进行扫描即可完成,大幅提升整体性能。

【技术实现步骤摘要】
一种时序数据的聚合优化处理方法
本专利技术涉及数据处理领域,具体涉及一种时序数据的聚合优化处理方法。
技术介绍
时序数据是指时间序列数据,是一种按照时间顺序记录的数据列,有专门的时序数据库来处理时序数据的存储和查询。现有技术中,通常一个时序数据库里包含有多个时间序列数据,除单一时间序列数据的读取之外,通常需要将多个时间序列数据进行聚合计算操作。通常的做法是将每个时间序列单独处理,得到结果,放在缓存里,然后将结果汇总聚合。然而,相对于每个时间序列都需要扫描一次数据库文件,多个时间序列,就要打开并扫描多次数据库文件,这样导致磁盘IO次数大增,影响系统性能。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种时序数据的聚合优化处理方法,通过这种方法,无论是对于单一时间序列数据的读取,还是对于多个时间序列的聚合操作,都只需要扫描一次数据文件即可完成,这样大幅减少磁盘IO次数,提升整体性能。本专利技术提供了一种时序数据的聚合优化处理方法,其包括如下步骤:将时序数据库文件划分为数据文件和索引文件;按照计算的起止时间段扫描索引文件,将符合时间段条件的所有需要聚合的时间序列的索引块抽出来后,根据索引块里记录的数据文件偏移量进行排序;按照排序后的索引块顺序扫描数据文件,对每个数据块进行指定的读取和计算后,将计算结果汇总。进一步地,索引块排序时,偏移量小的排在前。进一步地,数据文件包含多个时间序列的数据块。进一步地,索引文件记录每个时间序列的数据块的信息。进一步地,索引文件里,每个时间序列,都有一个索引汇总信息块,以及一到多个索引块。索引汇总信息块包含时间序列的ID,数据块的个数。进一步地,每个时间序列有一到多个索引块,每一个数据块有一个对应的索引块,该索引块包含了数据块在数据文件里的偏移量offset,开始时间,结束时间、记录条数和其他信息。进一步地,指定某一或多个时间序列和时间段后,将符合时间段条件的数据块全部抽出的步骤,包括:查找索引文件,找到对应的数据块在数据块文件里的偏移量并按偏移量进行排序;根据排序后的偏移量,从数据块文件里读取数据块;获取数据块里指定时间段的数据。进一步地,将时序数据记录写入数据库时,先将其写入内存。进一步地,当内存的占用达到一定的比例或每隔一定的时间,将内存缓存的时序数据写入磁盘。进一步地,将时序数据写入磁盘的步骤包括:1)每个时间序列的数据在内存里按照时间排序;2)按照数据块大小的设置,对每一个时间序列数据,将内存数据用追加方式写入数据文件,生成一个或多个数据块;3)对每个新的数据块,将包括开始时间、结束时间、记录条数的数据块信息计入一个新的索引块,写入索引文件;4)每一个时间序列的索引汇总信息块与索引块信息连续存放,内存数据每次落盘时重新生成新的块索引文件。本专利技术的时序数据的聚合优化处理方法,可以实现:1)如果一个数据文件仅包含一个时间序列数据,数据文件数目会过多,而且聚合操作时,需要对每个参与聚合的时间序列,至少有一次打开和扫描操作,如果参与聚合的时间序列多,打开和扫描文件次数就多,性能会大幅下降,采用一个数据文件包含多个时间序列数据的方式可有效提高性能;2)数据文件本身存储采集的时序数据,文件会很大,采用追加的方式添加新的数据块;3)设计有索引文件,索引文件里保存一个时间序列的数据块在数据文件里的偏移量,从而可快速高效的进行查询扫描;4)将参与聚合的多个时间序列的数据块按照偏移量进行排序,排序后,只需要扫描一次数据文件,就能得到聚合计算的结果附图说明图1为时序数据库优化设计后的结构示意图。具体实施方式下面详细说明本专利技术的具体实施,有必要在此指出的是,以下实施只是用于本专利技术的进一步说明,不能理解为对本专利技术保护范围的限制,该领域技术熟练人员根据上述本
技术实现思路
对本专利技术做出的一些非本质的改进和调整,仍然属于本专利技术的保护范围。本专利技术提供了一种时序数据的聚合优化处理方法,下面对该方法进行具体的介绍。将一时序数据库文件划分为两个文件,一个是数据块文件,一个是块索引文件,下面进行进一步介绍:(1)数据块文件数据块文件存储采集的时序数据本身,其包含有多个时间序列的数据。为减少随机访问,提高读取速度,数据是按块存储的,每一块数据仅仅属于一个时间序列,但包含多条记录,而且按照时间排序。在读取单一的时间序列数据时,指定时间段,只需要顺序扫描,读取相应的数据块即可完成,性能可以达到最优。为减少磁盘IO操作,内存缓存的数据落盘时,新数据采用追加的方式写入数据块文件,也就是说新的数据永远在文件最后添加,这样就是顺序写,而无需挪动磁头,减少随机读写次数。根据应用场景,数据块的大小可以配置,每个数据文件包含的时间序列的个数可以配置。(2)块索引文件为了快速找到某一时间序列某一时间段的数据块,系统建立有块索引文件。该块索引文件记录了每个时间序列的所有数据块的信息,其结构如图1所示:在索引文件里,文件头之后,每个时间序列占有固定的字节数,其中包含指向时间序列数据块信息的Offset(偏移量)。1)每个时间序列在索引文件里有索引汇总信息块,有如下信息:·时间序列的ID·数据块的个数·其他辅助信息,比如checksum2)索引汇总信息块之后,有一到多个索引块,一个时间序列在数据文件里的一个数据块都有一个对应的索引块。这个索引块包含如下信息:·数据块在数据块文件里的offset(偏移量)·该数据块的开始时间·该数据块的结束时间·该数据块里包含的记录条数·其他辅助信息,比如预聚合的数据每个时间序列都保证了自己的记录是按照时间排序的,但是不同的时间序列的数据块在数据文件里无法保证是按照时间排序的。如果Tij表示时间序列i、数据块j的开始时间,则应该有如下关系:Ti0<Ti1<Ti2<…<Tin另外一个时间序列k虽然也存在如上的关系,但是无法保证两个序列混合在一起存储时,不同序列的块是按照时间排序的。(3)写入操作应用将一条时序数据记录写入数据库时,系统会先写入内存。当内存的占用达到一定的比例或每隔一定的时间,系统根据下面的步骤将内存缓存的时序数据写入磁盘。1)确保每个时间序列的数据在内存里按照时间排序;2)按照数据块大小的设置,对每一个时间序列数据,将内存数据用追加方式写入数据块文件,生成一个或多个数据块。3)对每个新的数据块,将其开始时间、结束时间、记录条数等计入一个索引块,写入块索引文件。4)为减少随机读写,一个时间序列的索引块在索引文件里需要连续存放,因此内存数据每次落盘时,需要重新生成新的块索引文件。但因为块索引文件不大,因此资源消耗不多。(4)单一时间序列数据的读取、计算指定某一时间序列和时间段后,按下面步骤读取数据;1)查找块索引文件,找到对应的数据块在数据块文件里的偏移量;2)根据偏移量,从数据块文件里读取数据块;3)如果要获取的数据仅是一个数据块的一部分,可以按照对半查找,时间间隔比例查找等方法获取指定时间段的数据;4)如果有多个数据块,处理下一个;对于单一时间序列,数据块虽然不是物理上连续的,但是已经按照时间排序,因此访问效率很高。(5)聚合查询、计算通常多个时间序列的聚合简单处理方式是:每个时间序列单独处理,然后将每个序列的结果最后聚合。但这样本文档来自技高网
...

【技术保护点】
1.一种时序数据的聚合优化处理方法,其特征在于,包括如下步骤:将时序数据库文件划分为数据文件和索引文件;按照计算的起止时间段扫描索引文件,将符合时间段条件的所有需要聚合的时间序列的索引块抽出来后,根据索引块里记录的数据文件偏移量进行排序;按照排序后的索引块顺序扫描数据文件,对每个数据块进行指定的读取和计算后,将计算结果汇总。

【技术特征摘要】
1.一种时序数据的聚合优化处理方法,其特征在于,包括如下步骤:将时序数据库文件划分为数据文件和索引文件;按照计算的起止时间段扫描索引文件,将符合时间段条件的所有需要聚合的时间序列的索引块抽出来后,根据索引块里记录的数据文件偏移量进行排序;按照排序后的索引块顺序扫描数据文件,对每个数据块进行指定的读取和计算后,将计算结果汇总。2.如权利要求1所述的方法,其特征在于:索引块排序时,偏移量小的排在前。3.如权利要求1所述的方法,其特征在于:数据文件包含多个时间序列的数据块。4.如权利要求1-3任一项所述的方法,其特征在于:索引文件记录每个时间序列的数据块的信息。5.如权利要求4所述的方法,其特征在于:索引文件里,每个时间序列,都有一个索引汇总信息块,以及一到多个索引块。索引汇总信息块包含时间序列的ID,数据块的个数。6.如权利要求3或5所述的方法,其特征在于:每个时间序列有一到多个索引块,每一个数据块有一个对应的索引块,该索引块包含了数据块在数据文件里的偏移量,开始时间、结束时间、记录...

【专利技术属性】
技术研发人员:廖浩均关胜亮程洪泽陶建辉
申请(专利权)人:北京涛思数据科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1