一种海量网络流数据的存储方法及装置制造方法

文档序号:6620930阅读:248来源:国知局
一种海量网络流数据的存储方法及装置制造方法【专利摘要】本发明涉及一种海量网络流数据的存储方法及装置,包括以下步骤:采集任一时段内用户提交的数据查询请求,根据数据查询请求得到查询条件;分析查询条件中的时间属性及特征属性,选择超出预设出现频率的阈值的特征属性作为聚簇属性;为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件;采集机接收网络流数据并转发给文件服务器,文件服务器按照配置文件存储接收到的网络流数据。本发明使查询条件直接映射到相应的空间划分中,直接进行数据的写入或查询,在最大程度上降低加载和存储的开销的同时,保证查询性能。【专利说明】一种海量网络流数据的存储方法及装置【
技术领域
】[0001]本发明涉及海量流数据存储和查询领域,特别涉及一种海量网络流数据的存储方法及装置。【
背景技术
】[0002]NetFlow是由Cisco公司于1996年发布,用来收集和监控网络流数据的一种网络协议。由于它能为应用提供一些关键服务,包括网络数据采集、网络流量统计、拒绝服务监控、入侵检测等,因而具有很高的应用价值和实际意义。[0003]关系数据库作为NetFlow流数据管理的传统解决方案得到了广泛的应用。得益于成熟的索引以及查询机制,数据库在数据查询处理方面的优势非常明显。但是随着数据规模的不断扩大,数据库方案在可扩展性、数据存储等方面遇到严重的挑战。首先,NetFlow流数据到来的速度快,关系型数据库加载速度不能满足要求。关系型数据库中严格的一致性保证和事物操作牺牲了加载的性能。而NetFlow流数据采用实时传输并以追加的方式进行存储,数据存储之后不再进行修改,并不需要上述严格的要求。其次虽然索引技术对于查询速度的提升效果明显,但NetFlow流数据数据条数非常大,对其建立索引的时间和空间开销是不容忽视的,因而数据库的索引机制也影响了数据加载能力。因而,传统的关系型数据库并不适用于海量NetFlow流数据的存储。[0004]SILk作为面向NetFlow流数据的专用存储系统,是由CERTNetSA开发并应用于大型网络的安全分析工具。它提供对网络流数据的收集、存储以及分析。相比于关系数据库,SILk的存储格式简练,数据的加载性能优越,能够满足较大的流量加载性能要求。它的缺点也很明显,由于只能在时间维度上对数据进行过滤,因而只能采用全扫描的方式对数据进行进一步筛选,造成冗余数据的扫描,影响了查询性能。[0005]Hbase作为GoogleBigtable的一个开源实现,以其良好的扩展性和快速查询能力,被广泛应用于结构化数据的存储。但在面对NetFlow流数据时,存储和加载性能均存在问题。首先,是数据膨胀问题,由于Hbase采用列存储,原始数据加载到Hbase时会有很多关于列和列簇的信息加入,会造成严重的数据膨胀,直接导致存储开销成倍增长。其次Hbase的单点加载能力一般为单条记录毫秒级,由于NetFlow流数据到来的速度非常快,Hbase现有的加载速度完全不能满足实际环境的要求。最后,现有的Hbase只针对包含主键列的查询拥有,而类似Hive+Hadoop这种数据仓库通用的解决方式,其实质还是强行扫描数据,其查询性能不能满足实时性的要求。[0006]综上所述,现有关于NetFlow流数据存储方面的研究成果在管理TB及以上级别的数据规模时,均存在问题,因而需要研究面向海量NetFlow数据存储与管理的新型体系结构。【
发明内容】[0007]本发明所要解决的技术问题是提供一种使查询条件直接映射到相应的空间划分中,进而直接进行数据的写入或查询扫描的海量网络流数据的存储方法及装置。[0008]本发明解决上述技术问题的技术方案如下:一种海量网络流数据的存储方法,包括以下步骤:[0009]步骤1:采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;[0010]步骤2:分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;[0011]步骤3:根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;[0012]步骤4:采集机接收网络流数据,并将网络流数据转发给文件服务器,文件服务器上的接收进程接收转发来的网络流数据;[0013]步骤5:文件服务器读取配置文件,按照配置文件存储接收到的网络流数据。[0014]本发明的有益效果是:本发明通过建立多维属性聚簇模型,使查询条件直接映射到相应的空间划分中,进而直接进行数据的写入或查询扫描,在最大程度上降低额外的加载和存储的开销的同时,保证了所需的查询性能。[0015]在上述技术方案的基础上,本发明还可以做如下改进。[0016]进一步,还包括步骤6:客户端向文件服务器发送查询请求,文件服务器解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,文件服务器将查找结果发送给客户端。[0017]进一步,所述步骤4中当网络正常、文件服务器正常且采集机上无暂存数据时,采集机将网络流数据转发给文件服务器上的数据接收进程;[0018]数据接收进程将接收到的网络流数据存储于文件服务器中的数据仓库中。[0019]进一步,所述步骤4中当网络出现故障或者文件服务器发生故障时,采集机将网络流数据保存在采集机的本地暂存目录中。[0020]进一步,所述步骤4中当网络及文件服务器在故障修复后恢复正常的一段时间内:[0021]在采集机的本地暂存目录中存储有网络流数据时,采集机上的数据补发进程将存储于本地暂存目录中的网络流数据转发给文件服务器上的数据接收进程,与此同时,采集机上的数据转发进程将正常的网络流数据转发给文件服务器上的数据接收进程;[0022]直到采集机的本地暂存目录中的网络流数据全部转发完毕时,采集机恢复到正常的数据转发流程,由采集机上的数据转发进程将网络流数据转发给文件服务器上的数据接收进程采集机上的数据转发进程将网络流数据转发给文件服务器上的数据接收进程。[0023]进一步,所述步骤5中数据存储过程具体包括以下步骤:[0024]步骤5.1:文件服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;[0025]步骤5.2:每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;[0026]步骤5.3:将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。[0027]进一步,一种海量网络流数据的存储装置,包括采集机和文件服务器;[0028]所述采集机,用于接收网络流数据,并将网络流数据转发给文件服务器;[0029]所述文件服务器,用于采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并存储配置文件;接收网络流数据;读取配置文件,按照配置文件存储接收到的网络流数据。[0030]进一步,还包括客户端,所述客户端用于向文件服务器发送查询请求,接收文件服务器发送的查询结果;[0031]文件服务器还用于解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,将查询结果发送给客户端。[0032]进一步,所述文件服务器上设置有数据接收进程和数据存储进程;[0033]所述数据接收进程用于将网络流数据转发给数据存储进程;[0034]所述数据存储进程用于按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。【专利附图】【附图说明】[0035]图1为本发明方法步骤流程图;[0036]图2为本发明装置结构图;[0037]图3为本发明三维空间聚簇存储逻辑示意图;[0038]图4为本发明采集机正常转发流程时数据传递示意图;[0039]图5为本发明采集机暂存流程时数据传递示意图;[0040]图6为本发明采集机补发流程时数据传递示意图。[0041]附图中,各标号所代表的部件列表如下:[0042]1、采集机,2、文件服务器,3、客户端。【具体实施方式】[0043]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。[0044]如图1所示,为本发明方法步骤流程图;图2为本发明装置结构图;图3为本发明三维空间聚簇存储逻辑示意图;图4为本发明采集机正常转发流程时数据传递示意图;图5为本发明采集机暂存流程时数据传递示意图;图6为本发明采集机补发流程时数据传递示意图。[0045]实施例1[0046]-种海量网络流数据的存储方法,包括以下步骤:[0047]步骤1:采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;[0048]查询请求是真实环境中一段时间内用户提交的查询语句;[0049]Sql语句都是类似这样的语句:Selectafromtablelwherea=2;后面的where语句是查询的条件;[0050]Where语句的提取是直接硬解析,直接拿到查询语句,每个词分析,到了where直接截取后面跟着的条件;[0051]步骤2:分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;[0052]步骤3:根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;[0053]步骤4:采集机接收网络流数据,并将网络流数据转发给文件服务器,文件服务器上的接收进程接收转发来的网络流数据;[0054]步骤5:文件服务器读取配置文件,按照配置文件存储接收到的网络流数据。[0055]还包括步骤6:客户端向文件服务器发送查询请求,文件服务器解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,文件服务器将查找结果发送给客户端。[0056]所述步骤4中当网络正常、文件服务器正常且采集机上无暂存数据时,采集机将网络流数据转发给文件服务器上的数据接收进程;[0057]数据接收进程将接收到的网络流数据存储于文件服务器中的数据仓库中。[0058]所述步骤4中当网络出现故障或者文件服务器发生故障时,采集机将网络流数据保存在采集机的本地暂存目录中。[0059]所述步骤4中当网络及文件服务器在故障修复后恢复正常的一段时间内:[0060]在采集机的本地暂存目录中存储有网络流数据时,采集机上的数据补发进程将存储于本地暂存目录中的网络流数据转发给文件服务器上的数据接收进程,与此同时,采集机上的数据转发进程将正常的网络流数据转发给文件服务器上的数据接收进程;[0061]直到采集机的本地暂存目录中的网络流数据全部转发完毕时,采集机恢复到正常的数据转发流程,由采集机上的数据转发进程将网络流数据转发给文件服务器上的数据接收进程。[0062]所述步骤5中数据存储过程具体包括以下步骤:[0063]步骤5.1:文件服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;[0064]步骤5.2:每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;[0065]步骤5.3:将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。[0066]写入磁盘的方式,作用是保证文件的顺序性,抑制文件内碎片的产生。现有的本地文件系统,只能保证单文件写的过程是连续的,在进行多文件并发写的过程中,并不能保证数据的顺序写,这就使得读取数据的过程中,大量随机读的存在,这在很大程度上影响了最终的性能,因而采用大块缓存追加写的方式,尽可能的保证文件的顺序写入。经测试,采用上述方式的进行数据的写入最大程度上避免了数据的随机写入,最大程度上降低的文件的碎片化。[0067]一种海量网络流数据的存储装置,包括采集机1和文件服务器2;[0068]所述采集机1,用于接收网络流数据,并将网络流数据转发给文件服务器;[0069]所述文件服务器2,用于采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并存储配置文件;接收网络流数据;读取配置文件,按照配置文件存储接收到的网络流数据。[0070]还包括客户端3,所述客户端3用于向文件服务器2发送查询请求,接收文件服务器2发送的查询结果;[0071]文件服务器2还用于解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据查找和分析,得到查询结果,将查询结果发送给客户端。[0072]所述文件服务器2上设置有数据接收进程和数据存储进程;[0073]所述数据接收进程用于将网络流数据转发给数据存储进程;[0074]所述数据存储进程用于按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。[0075]如图3所示按照三个维度作为划分属性,对流数据做出了划分。对于任意一条网络流记录按照上述三维属性的值,都可以在此空间内找到唯一的一块空间与之对应。在真实的环境下,随着流数据不断的到来,依据定义的各个属性的划分,会逐渐填充相应的空间,直至该时间段结束。在整个的模型所针对的属性中,时间作为固有属性,天然的将数据进行分割,其他属性则作为附属属性将该时间片中的数据按照划分规则划分为不同的空间分片。而在查询的过程中,依据查询条件也可找到与空间分片的映射,从而只需扫描分片中的数据即可拿到所需的结果。[0076]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。【权利要求】1.一种海量网络流数据的存储方法,其特征在于,包括以下步骤:步骤1:采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;步骤2:分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;步骤3:根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;步骤4:采集机接收网络流数据,并将网络流数据转发给文件服务器,文件服务器上的接收进程接收转发来的网络流数据;步骤5:文件服务器读取配置文件,按照配置文件存储接收到的网络流数据。2.根据权利要求1所述的存储方法,其特征在于,还包括步骤6:客户端向文件服务器发送查询请求,文件服务器解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,文件服务器将查找结果发送给客户端。3.根据权利要求1所述的存储方法,其特征在于:所述步骤4中当网络正常、文件服务器正常且采集机上无暂存数据时,采集机将网络流数据转发给文件服务器上的数据接收进程;数据接收进程将接收到的网络流数据存储于文件服务器中的数据仓库中。4.根据权利要求1所述的存储方法,其特征在于:所述步骤4中当网络出现故障或者文件服务器发生故障时,采集机将网络流数据保存在采集机的本地暂存目录中。5.根据权利要求1所述的存储方法,其特征在于:所述步骤4中当网络及文件服务器在故障修复后恢复正常的一段时间内:在采集机的本地暂存目录中存储有网络流数据时,采集机上的数据补发进程将存储于本地暂存目录中的网络流数据转发给文件服务器上的数据接收进程,与此同时,采集机上的数据转发进程将正常的网络流数据转发给文件服务器上的数据接收进程;直到采集机的本地暂存目录中的网络流数据全部转发完毕时,采集机恢复到正常的数据转发流程,由采集机上的数据转发进程将网络流数据转发给文件服务器上的数据接收进程。6.根据权利要求1所述的存储方法,其特征在于:所述步骤5中数据存储过程具体包括以下步骤:步骤5.1:文件服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;步骤5.2:每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;步骤5.3:将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。7.-种海量网络流数据的存储装置,其特征在于:包括采集机(1)和文件服务器(2);所述采集机(1),用于接收网络流数据,并将网络流数据转发给文件服务器;所述文件服务器(2),用于采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并存储配置文件;接收网络流数据;读取配置文件,按照配置文件存储接收到的网络流数据。8.根据权利要求7所述的存储装置,其特征在于:还包括客户端(3),所述客户端(3)用于向文件服务器(2)发送查询请求,接收文件服务器(2)发送的查询结果;文件服务器(2)还用于解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,将查询结果发送给客户端。9.根据权利要求7所述的存储装置,其特征在于:所述文件服务器(2)上设置有数据接收进程和数据存储进程;所述数据接收进程用于将网络流数据转发给数据存储进程;所述数据存储进程用于按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。【文档编号】G06F17/30GK104156400SQ201410350005【公开日】2014年11月19日申请日期:2014年7月22日优先权日:2014年7月22日【发明者】陈重韬,王伟平,孟丹,胡斌,崔甲申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1