一种统计数据的存储和查询方法

文档序号:6524456阅读:293来源:国知局
一种统计数据的存储和查询方法
【专利摘要】本发明公开了一种统计数据的存储方法,所述方法包括:根据不同的时间桶分别建立相应的缓冲层;将低级统时间桶计数据存入低级统计数据缓冲层;将所述低级时间桶统计数据进行数据合并得到高级时间桶统计数据;将所述高级时间桶统计数据进行存储,解决了现有技术中现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题,实现了能够存储较长时间的统计数据,以及查询统计数据需要时间短,效率较高的技术效果。
【专利说明】一种统计数据的存储和查询方法
【技术领域】
[0001]本发明涉及信息技术处理领域,尤其涉及一种统计数据的存储和查询方法。
【背景技术】
[0002]在网络数据分析领域中经常需要对网络中的数据包或数据流进行细致的分析和统计,以获取某个具体时间段内的数据统计情况,例如某个IP在指定时间段内的产生的网络数据信息(发送接收的字节数、数据包数等统计值),或者某个TCP会话在指定时间段内产生的网络数据信息(持续的时长、平均包长、连接响应时间等)、再或者某个物理会话在指定时间段内产生的网络数据信息(发送接收的字节数、广播数据包数,组播数据包数)等。
[0003]在网络数据分析领域中,存在着大量需要统计的数据,并且这些统计的数据很可能每秒都在发生,我们需要将这些每秒都在产生的大量统计数据及时的保存在持久的存储设备上(磁盘等存储设备),而且数据在被保存后可能需要查询一个指定时间段内的统计结果O
[0004]时间段:用一个开始时间戳和一个结束时间戳描述,表示从开始时间开始一直持续到结束时间(不包括结束时间)的这个时间段。时间段是一个左闭右开的区间,例如[1388505601, 1388505700)表示的就是从 2014-01-01 00:00:00 到 2014-01-01 00:01:40这I分钟40秒的时间段。时间桶:持续时长为N秒,并且开始时间戳为N的整数倍的时间段称为时间桶。常用时间桶有I秒桶、I分钟桶、I小时桶、I天桶等。如I秒桶是指任意一个时长为I秒的时间段;1分钟桶是指开始时间戳为60的整数倍,并且时长为60秒的时间段;10分钟桶是指开始时间戳为600的整数倍,并且时长为600秒的时间段;其他时间桶类推。
[0005]在数据分析和挖掘领域中,常常会出现以下情况:原始数据在整个数据分析过程中都可能发生(持续不断的或者间断性的发生),我们需要对每一秒发生的原始数据都进行细致和全面的分析,得到关于原始数据的统计数据。这些统计数据需要被存储下来,并且在事后需要按照给定的时间段对统计结果进行查询。
[0006]如果我们对每一秒的原始数据都进行统计,就可以获得每一秒的统计数据。如果需要统计的信息非常多,那么I秒的统计数据就可能占用不小的存储空间。当I秒的统计数据达到十几兆字节或者更多时,将会在两方面带来很大的压力:
统计数据的存储时长将会变得十分有限。假设I秒钟有16MB的统计数据需要保存,那么对于一个容量为1TB(=1048576MB)的存储空间来说,只能保存1048576MB /16MB =65536秒(18个小时左右)的统计数据。
[0007]统计数据的事后查询将会变得十分缓慢和低效。假设需要查询两个小时的统计数据,那么就需要从存储设备中读取16MB/秒X 7200秒=112.5GB的统计数据,对于磁盘这种低速存储设备,这么大量的数据读取将会是非常耗时的。更近一步,这么大量的统计数据被读取出来之后,还需要进行统计合并操作,这也将是一个非常耗时的运算过程。
[0008]现有的网络数据分析工具一般只分析一个指定时间段内的数据或者一个数据包文件的数据,逐个分析数据包产生统计结果,并产生一个整体的统计结果,分析得到统计数据的过程随着数据量的增加可能会耗时较长。
[0009]本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
在现有技术中,由于现有的统计数据存储和查询方法只分析一个指定时间段内的数据或者一个数据包文件的数据,逐个分析数据包产生统计结果,并产生一个整体的统计结果,所以,现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题。

【发明内容】

[0010]本申请实施例通过提供一种统计数据的存储和查询方法,解决了现有技术中现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题,实现了能够存储较长时间的统计数据,以及查询统计数据需要时间短,效率较高的技术效果。
[0011]为解决上述技术问题,本申请实施例一方面提供了一种统计数据的存储方法,所述方法包括:
根据不同的时间桶分别建立相应的缓冲层;
将低级时间桶统计数据存入低级统计数据缓冲层;
将所述低级时间桶统计数据进行数据合并得到高级时间桶统计数据;
将所述高级时间桶统计数据进行存储。
[0012]进一步的,所述缓冲层能容纳的时间桶统计数据的容量为:高一级时间桶的时长/本级时间桶的时长。
[0013]进一步的,所述将所述低级时间桶统计数据进行数据合并得到高级时间桶统计数据具体包括:
(1)提交所述低级时间桶统计数据;
(2)判断当前统计数据时间是否超过高一级时间桶边界,若否,则将当前桶统计数据缓存至对应的缓冲层并结束操作;若是,则将当前级时间桶缓存层数据写入磁盘;
(3)在将当前级时间桶缓存层数据写入磁盘之后,将当前级时间桶统计数据合并,获得高一级的时间桶统计数据;
(4)清空当前级时间桶统计数据的缓冲层;
(5)将高一级的时间桶作为当前级时间桶,并将所述高一级的时间桶统计数据提交;
(6)重复步骤(2)- (5)直到获得所述高级时间桶统计数据。
[0014]另一方面,本申请实例还提供一种统计数据的查询方法,所述方法包括:
获得查询时间段,将所述查询时间段进行分解,获得等价的时间桶集合;
读取所述时间桶集合的统计数据,获得各个时间桶的统计数据;
将所述各个时间桶的统计数据合并得到最终的统计数据。
[0015]进一步的,所述将所述各个时间桶的统计数据合并得到最终的统计数据具体包括:
(I)从所述时间桶集合中取出第一个查询时间桶; (2)判断是否成功取出一个查询时间桶,若否,则查询完成将查询缓存中的合并结果统计数据返回,获得所述最终的统计数据,并停止后续步骤;若是,则按照时间桶表示的时间段在缓冲层和磁盘中查询统计数据;
(3)在按照时间桶表示的时间段在缓冲层和磁盘中查询统计数据之后,判断查询缓存中是否已有统计数据;若否,则将统计数据插入所述查询缓存中,然后重复步骤(I) - (3);若是,将统计数据与所述查询缓存中的统计数据合并,然后重复步骤(I) - (3)。
[0016]本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于采用了将存储空间进行合理划分和对每秒统计数据的再处理后存储,以及在查询数据时读取数据量表小的技术手段,所以,有效解决了现有技术中现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题,进而实现了能够存储较长时间的统计数据,以及查询统计数据需要时间短,效率较高的技术效果。
【专利附图】

【附图说明】
[0017]图1为本申请实施例中信息处理方法的流程图;
图2为本申请实施例中电子设备的结构图;
图3为本申请实施例电子设备中广播单元的结构图;
图4为本申请实施例电子设备中处理模块的结构图;
图5为本申请实施例电子设备中建立单元的结构图。
【具体实施方式】
[0018]本申请实施例通过提供一种统计数据的存储和查询方法,解决了现有技术中现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题,实现了能够存储较长时间的统计数据,以及查询统计数据需要时间短,效率较高的技术效果。
[0019]本申请实施中的技术方案为解决上述技术问题。总体思路如下:
首先根据不同的时间桶分别建立相应的缓冲层,然后将低级时间桶统计数据存入低级统计数据缓冲层,然后将所述低级时间桶统计数据进行数据合并得到高级时间桶数据,最后将所述高级时间桶数据进行存储的技术方案,即采用了将存储空间进行合理划分和对每秒统计数据的再处理后存储,以及在查询数据时读取数据量表小的技术手段,所以,有效解决了现有技术中现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题,进而实现了能够存储较长时间的统计数据,以及查询统计数据需要时间短,效率较高的技术效果。
[0020]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0021]实施例一
在实施例一中,提供了一种统计数据的存储方法,请参考图1,所述方法包括:
S10,根据不同的时间桶分别建立相应的缓冲层;
S20,将低级时间桶统计数据存入低级统计数据缓冲层; S30,将所述低级时间桶统计数据进行数据合并得到高级时间桶统计数据;
S40,将所述高级时间桶统计数据进行存储。
[0022]其中,在本申请实施例中,所述缓冲层能容纳的时间桶统计数据的容量为:高一级时间桶的时长/本级时间桶的时长。
[0023]在实际应用中,缓冲层能容纳的时间桶统计数据的容量为:高一级时间桶的时长/本级时间桶的时长。例如需要的时间桶分为以下几个:1秒桶、I分钟桶、10分钟桶、I小时桶和I天桶。那么,对于I秒桶,需要建立的缓冲层容量为:60秒/I秒=60,即需要为I秒桶的统计数据建立能容纳60个I秒桶统计数据的缓冲层。对于I分钟桶,需要建立的缓冲层容量为:10分钟/I分钟=10,即需要为I分钟桶建立10个能容纳I分钟桶统计数据的缓冲层。以此类推。
[0024]在实际应用中,一个I分钟桶内的所有I秒桶统计数据都已生成完毕并放入缓冲层后,就是产生一个I分钟桶统计数据的时刻,此时需要读取I分钟桶包含的所有I秒桶统计数据并合并成一个I分钟桶统计数据,然后放入对应的I分钟桶缓冲层。然后将I秒桶缓冲层中对应的统计数据写入磁盘并从缓冲层清除,以接收新的秒级统计数据。
[0025]其中,在本申请实施例中,请参考图2,所述将所述低级时间桶统计数据进行数据合并得到高级时间桶统计数据具体包括:
(1)提交所述低级时间桶统计数据;
(2)判断当前统计数据时间是否超过高一级时间桶边界,若否,则将当前桶统计数据缓存至对应的缓冲层并结束操作;若是,则将当前级时间桶缓存层数据写入磁盘;
(3)在将当前级时间桶缓存层数据写入磁盘之后,将当前级时间桶统计数据合并,获得高一级的时间桶统计数据;
(4)清空当前级时间桶统计数据的缓冲层;
(5)将高一级的时间桶作为当前级时间桶,并将所述高一级的时间桶统计数据提交;
(6)重复步骤(2)- (5)直到获得所述高级时间桶统计数据。
[0026]其中,在实际应用中,当一个比I秒桶更高一级的时间桶(例如I分钟桶)内的所有秒的统计数据已经生成并被保存后,分别读取这些I秒级的统计数据并使用这些统计数据再一次的进行统计,以获得更高一级时间桶的统计数据。然后,将这些更高一级的时间桶统计数据进行记录(缓存在高速存取设备或保存在持久的存储设备中)。以此类推,10分钟时间桶的统计数据在该时间桶内所有的I分钟桶统计数据生成并保存后,分别读取这些I分钟桶的统计数据并再次统计成一个10分钟的时间桶统计数据。采用这种方式,可以获得I小时桶、I天桶等更高级的时间桶统计数据然后进行保存。
[0027]请参考图3,图3为统计数据存储的构架及数据流向示意图。在实际应用中,在进行统计数据存储时需要用到统计模块和存储模块。
[0028]在实际应用中,通过本实施例提供的方法可以将存储空间进行合理的划分。假设存储空间为1TB,每秒统计数据产生量为16MB。我们可以将存储空间做如下划分:1秒级精度的统计数据占用空间:60% (=619245MB),1分钟级精度的统计数据占用空间:20%(=209715MB),10分钟级精度的统计数据占用空间:10% (=104857MB),I小时精度的统计数据占用空间:10%(=104857MB),各个时长精度的设定以及占存储空间的百分比可以根据实际情况做调整,通过合理的划分可以数据占用空间的比例降低。[0029]在实际应用中,当I分钟内的所有I秒级精度统计的统计数据完成后,我们可以进一步将这些I秒级的统计数据进行统计合并操作,这样就可以得到一个I分钟精度的统计数据。以此类推可以获得10分钟、I小时、I天级精度的统计数据,采用这种方式,我们就可以得到各种时长精度的统计数据。由于统计数据的统计合并特点,I分钟精度的统计数据并不是I秒钟精度的统计数据量的60倍,I小时精度的统计数据一般也不会是I秒钟精度统计数据的3600倍。通常根据统计数据的实际情况,I分钟级、10分钟级、I小时级等统计数据的容量,只有I秒级统计数据量的几倍,以网络分析领域为例,针对IP网络数据统计信息,I小时级的IP信息统计数据通常只有I秒级的统计数据的10倍以内。
[0030]在实际应用中,假设I秒级统计数据的数据量为16MB,I分钟级统计数据的数据量为32MB,1分钟级统计数据的数据量为64MB,I小时级统计数据的数据量为128M。那么可以得到ITB存储空间可容纳统计数据的时长:
I秒级统计数据时长:619245MB/16MB x I秒=38702秒(10小时左右);
I分钟级统计数据时长:209715MB/32MB x 60秒=393215秒(109小时左右);
10分钟级统计数据时长:104857MB/64MB x 600秒=983034秒(273小时左右);
I小时级统计数据时长:104857MB/128MB x 3600秒=983034秒(819小时左右)。
[0031]这样,我们就可以用ITB的存储空间,最长得到819小时/24 = 34天左右的精度为I小时级的统计数据,大大增加了统计数据保存的时长。
[0032]上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
由于采用了将存储空间进行合理划分和对每秒统计数据的再处理后存储,以及在查询数据时读取数据量表小的技术手段,所以,有效解决了现有技术中现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题,进而实现了能够存储较长时间的统计数据,以及查询统计数据需要时间短,效率较高的技术效果。
[0033]对应实施例一中的存储方法,实施例一还提供一种统计数据的查询方法,请参考图4,所述方法包括:
M10,获得查询时间段,将所述查询时间段进行分解,获得等价的时间桶集合;
M20,读取所述时间桶集合的统计数据,获得各个时间桶的统计数据;
M30,将所述各个时间桶的统计数据合并得到最终的统计数据。
[0034]其中,在本申请实施例中,请参考图5,所述将所述各个时间桶的统计数据合并得到最终的统计数据具体包括:
(1)从所述时间桶集合中取出第一个查询时间桶;
(2)判断是否成功取出一个查询时间桶,若否,则查询完成将查询缓存中的合并结果统计数据返回,获得所述最终的统计数据并停止后续步骤;若是,则按照时间桶表示的时间段在缓冲层和磁盘中查询统计数据;
(3)在按照时间桶表示的时间段在缓冲层和磁盘中查询统计数据之后,判断查询缓存中是否已有统计数据;若否,则将统计数据插入所述查询缓存中,然后重复步骤(I) - (3);若是,将统计数据与所述查询缓存中的统计数据合并,然后重复步骤(I) - (3)。
[0035]请参考图6,图6为统计数据查询的构架及数据流向示意图。在实际应用中,在进行统计数据查询时需要用到统计模块和存储模块。[0036]在实际应用中,假设现在需要对指定时间段内统计数据进行查询,当统计数据按照不同的时间桶进行保存之后,我们就可以快速的查询一个给定时间段内的统计数据。具体的查询过程如下:
1、查询时间段的分解:
对于一个给定的时间段,首先将该时间段进行分解,以获得一个等价的时间桶集合。例如给定的时间段为2014-01-01 00:00:00至2014-01-01 01:01:01,用时间戳表示这个时间段为[1388505600,1388509261)。这个时间段可以分解成三个时间桶:[1388505600,1388509200)、[1388509200, 1388509260)、[1388509260, 1388509261),分别代表:
I 个 I 小时桶(2014-01-01 00:00:00 至 2014-01-01 01:00:00);
I 个 I 分钟桶(2014-01-01 01:00:00 至 2014-01-01 01:01:00);
I个 I 秒桶(2014-01-01 01:01:00 至 2014-01-01 01:01:01);
2、统计数据的查询:
将给定的查询时间段分解为一个等价的时间桶集合后,就可以按照分解后得到的时间桶分别查询对应的时间桶统计数据。
[0037]3、时间桶统计数据的合并:
各个时间桶统计数据查询完成后,需要进一步对统计数据进行合并,以获得整个查询时间段的统计数据。还是以时间段[1388505600,1388509261)为例:
首先查询得到I小时桶[1388505600,1388509200)的统计数据,作为统计数据的中间结果。
[0038]然后查询I分钟桶[1388509200,1388509260)的统计数据,并将这些统计数据合并进中间结果,此时统计数据的中间结果就是时间段[1388505600,1388509260)的统计数据。
[0039]最后查询I秒桶[1388509260,1388509261)的统计数据,并将这些统计数据合并进中间结果,这时中间结果就是最终的统计数据,也就是时间段2014-01-01 00:00:00至2014-01-01 01:01:01 的统计结果。
[0040]如果需要查询2个小时的统计数据,我们需要从存储设备读取的数据量将不再是16MB/秒X 7200秒=112.5GB,而是可以通过直接读取小时级的统计数据128MB x 2小时=256MB。大大降低了读取数据的量,也就大大提高了统计数据的查询效率。
[0041]上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
由于采用了将存储空间进行合理划分和对每秒统计数据的再处理后存储,以及在查询数据时读取数据量表小的技术手段,所以,有效解决了现有技术中现有的统计数据存储和查询方法存在只能存储较短时间的统计数据,以及查询统计数据需要大量时间,效率较低的技术问题,进而实现了能够存储较长时间的统计数据,以及查询统计数据需要时间短,效率较高的技术效果。
[0042]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0043]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发·明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种统计数据的存储方法,其特征在于,所述方法包括: 根据不同的时间桶分别建立相应的缓冲层; 将低级时间桶统计数据存入低级统计数据缓冲层; 将所述低级时间桶统计数据进行数据合并得到高级时间桶统计数据; 将所述高级时间桶统计数据进行存储。
2.如权利要求1所述的方法,其特征在于,所述缓冲层能容纳的时间桶统计数据的容量为:闻一级时间桶的时长/本级时间桶的时长。
3.如权利要求1所述的方法,其特征在于,所述将所述低级时间桶统计数据进行数据合并得到高级时间桶统计数据具体包括: (1)提交所述低级时间桶统计数据; (2)判断当前统计数据时间是否超过高一级时间桶边界,若否,则将当前桶统计数据缓存至对应的缓冲层并结束操作;若是,则将当前级时间桶缓存层数据写入磁盘; (3)在将当前级时间桶缓存层数据写入磁盘之后,将当前级时间桶统计数据合并,获得高一级的时间桶统计数据; (4)清空当前级时间桶统计数据的缓冲层; (5)将高一级的时间桶作为当前级时间桶,并将所述高一级的时间桶统计数据提交; (6)重复步骤(2)- (5)直到获得所述高级时间桶统计数据。
4.一种统计数据的查询方法,其特征在于,所述方法包括: 获得查询时间段,将所述查询时间段进行分解,获得等价的时间桶集合; 读取所述时间桶集合的统计数据,获得各个时间桶的统计数据; 将所述各个时间桶的统计数据合并得到最终的统计数据。
5.如权利要求4所述的方法,其特征在于,所述将所述各个时间桶的统计数据合并得到最终的统计数据具体包括: (1)从所述时间桶集合中取出第一个查询时间桶; (2)判断是否成功取出一个查询时间桶,若否,则查询完成将查询缓存中的合并结果统计数据返回,获得所述最终的统计数据并停止后续步骤;若是,则按照时间桶表示的时间段在缓冲层和磁盘中查询统计数据; (3)在按照时间桶表示的时间段在缓冲层和磁盘中查询统计数据之后,判断查询缓存中是否已有统计数据;若否,则将统计数据插入所述查询缓存中,然后重复步骤(I)- (3);若是,将统计数据与所述查询缓存中的统计数据合并,然后重复步骤(I) - (3)。
【文档编号】G06F17/30GK103678627SQ201310701529
【公开日】2014年3月26日 申请日期:2013年12月19日 优先权日:2013年12月19日
【发明者】罗鹰, 何祖刚, 林康, 侯勇军, 伍宏宁 申请人:成都科来软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1