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

技术编号:10671203 阅读:197 留言:0更新日期:2014-11-20 15:50
本发明专利技术涉及一种海量网络流数据的存储方法及装置,包括以下步骤:采集任一时段内用户提交的数据查询请求,根据数据查询请求得到查询条件;分析查询条件中的时间属性及特征属性,选择超出预设出现频率的阈值的特征属性作为聚簇属性;为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件;采集机接收网络流数据并转发给文件服务器,文件服务器按照配置文件存储接收到的网络流数据。本发明专利技术使查询条件直接映射到相应的空间划分中,直接进行数据的写入或查询,在最大程度上降低加载和存储的开销的同时,保证查询性能。

【技术实现步骤摘要】
一种海量网络流数据的存储方法及装置
本专利技术涉及海量流数据存储和查询领域,特别涉及一种海量网络流数据的存储方法及装置。
技术介绍
NetFlow是由Cisco公司于1996年发布,用来收集和监控网络流数据的一种网络协议。由于它能为应用提供一些关键服务,包括网络数据采集、网络流量统计、拒绝服务监控、入侵检测等,因而具有很高的应用价值和实际意义。关系数据库作为NetFlow流数据管理的传统解决方案得到了广泛的应用。得益于成熟的索引以及查询机制,数据库在数据查询处理方面的优势非常明显。但是随着数据规模的不断扩大,数据库方案在可扩展性、数据存储等方面遇到严重的挑战。首先,NetFlow流数据到来的速度快,关系型数据库加载速度不能满足要求。关系型数据库中严格的一致性保证和事物操作牺牲了加载的性能。而NetFlow流数据采用实时传输并以追加的方式进行存储,数据存储之后不再进行修改,并不需要上述严格的要求。其次虽然索引技术对于查询速度的提升效果明显,但NetFlow流数据数据条数非常大,对其建立索引的时间和空间开销是不容忽视的,因而数据库的索引机制也影响了数据加载能力。因而,传统的关系型数据库并不适用于海量NetFlow流数据的存储。SILk作为面向NetFlow流数据的专用存储系统,是由CERTNetSA开发并应用于大型网络的安全分析工具。它提供对网络流数据的收集、存储以及分析。相比于关系数据库,SILk的存储格式简练,数据的加载性能优越,能够满足较大的流量加载性能要求。它的缺点也很明显,由于只能在时间维度上对数据进行过滤,因而只能采用全扫描的方式对数据进行进一步筛选,造成冗余数据的扫描,影响了查询性能。Hbase作为GoogleBigtable的一个开源实现,以其良好的扩展性和快速查询能力,被广泛应用于结构化数据的存储。但在面对NetFlow流数据时,存储和加载性能均存在问题。首先,是数据膨胀问题,由于Hbase采用列存储,原始数据加载到Hbase时会有很多关于列和列簇的信息加入,会造成严重的数据膨胀,直接导致存储开销成倍增长。其次Hbase的单点加载能力一般为单条记录毫秒级,由于NetFlow流数据到来的速度非常快,Hbase现有的加载速度完全不能满足实际环境的要求。综上所述,现有关于NetFlow流数据存储方面的研究成果在管理TB及以上级别的数据规模时,均存在问题,因而需要研究面向海量NetFlow数据存储与管理的新型体系结构。
技术实现思路
本专利技术所要解决的技术问题是提供一种使查询条件直接映射到相应的空间划分中,进而直接进行数据的写入或查询扫描的海量网络流数据的存储方法及装置。本专利技术解决上述技术问题的技术方案如下:一种海量网络流数据的存储方法,包括以下步骤:步骤1:采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;步骤2:分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;步骤3:根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;步骤4:采集机接收网络流数据,并将网络流数据转发给文件服务器,文件服务器上的接收进程接收转发来的网络流数据;步骤5:文件服务器读取配置文件,按照配置文件存储接收到的网络流数据。本专利技术的有益效果是:本专利技术通过建立多维属性聚簇模型,使查询条件直接映射到相应的空间划分中,进而直接进行数据的写入或查询扫描,在最大程度上降低额外的加载和存储的开销的同时,保证了所需的查询性能。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,还包括步骤6:客户端向文件服务器发送查询请求,文件服务器解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,文件服务器将查找结果发送给客户端。进一步,所述步骤4中当网络正常、文件服务器正常且采集机上无暂存数据时,采集机将网络流数据转发给文件服务器上的数据接收进程;数据接收进程将接收到的网络流数据存储于文件服务器中的数据仓库中。进一步,所述步骤4中当网络出现故障或者文件服务器发生故障时,采集机将网络流数据保存在采集机的本地暂存目录中。进一步,所述步骤4中当网络及文件服务器在故障修复后恢复正常的一段时间内:在采集机的本地暂存目录中存储有网络流数据时,采集机上的数据补发进程将存储于本地暂存目录中的网络流数据转发给文件服务器上的数据接收进程,与此同时,采集机上的数据转发进程将正常的网络流数据转发给文件服务器上的数据接收进程;直到采集机的本地暂存目录中的网络流数据全部转发完毕时,采集机恢复到正常的数据转发流程,由采集机上的数据转发进程将网络流数据转发给文件服务器上的数据接收进程采集机上的数据转发进程将网络流数据转发给文件服务器上的数据接收进程。进一步,所述步骤5中数据存储过程具体包括以下步骤:步骤5.1:文件服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;步骤5.2:每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;步骤5.3:将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。进一步,一种海量网络流数据的存储装置,包括采集机和文件服务器;所述采集机,用于接收网络流数据,并将网络流数据转发给文件服务器;所述文件服务器,用于采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并存储配置文件;接收网络流数据;读取配置文件,按照配置文件存储接收到的网络流数据。进一步,还包括客户端,所述客户端用于向文件服务器发送查询请求,接收文件服务器发送的查询结果;文件服务器还用于解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,将查询结果发送给客户端。进一步,所述文件服务器上设置有数据接收进程和数据存储进程;所述数据接收进程用于将网络流数据转发给数据存储进程;所述数据存储进程用于按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。附图说明图1为本专利技术方法步骤流程图;图2为本专利技术装置结构图本文档来自技高网
...
一种海量网络流数据的存储方法及装置

【技术保护点】
一种海量网络流数据的存储方法,其特征在于,包括以下步骤:步骤1:采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;步骤2:分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;步骤3:根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;步骤4:采集机接收网络流数据,并将网络流数据转发给文件服务器,文件服务器上的接收进程接收转发来的网络流数据;步骤5:文件服务器读取配置文件,按照配置文件存储接收到的网络流数据。

【技术特征摘要】
1.一种海量网络流数据的存储方法,其特征在于,包括以下步骤:步骤1:采集任一时段内用户提交的数据查询请求,并根据数据查询请求得到查询条件,所述数据查询请求用于查询待查询数据;步骤2:分析查询条件中的时间属性及特征属性,统计时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性作为聚簇属性;步骤3:根据聚簇属性及时间跨度为待查询数据选定分段的数量和分段的端点,根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小,根据聚簇属性、待查询数据中分段的数量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;步骤4:采集机接收网络流数据,并将网络流数据转发给文件服务器,文件服务器上的接收进程接收转发来的网络流数据;步骤5:文件服务器读取配置文件,按照配置文件存储接收到的网络流数据。2.根据权利要求1所述的存储方法,其特征在于,还包括步骤6:客户端向文件服务器发送查询请求,文件服务器解析查询请求得到查询信息,根据查询信息及配置文件对待查询的网络流数据进行查找和分析,得到查询结果,文件服务器将查找结果发送给客户端。3.根据权利要求1所述的存储方法,其特征在于:所述步骤4中当网络正常、文件服务器正常且采集机上无暂存数据时,采集机将网络流数据转发给文件服务器上的数据接收进程;数据接收进程将接收到的网络流数据存储于文件服务器中的数据仓库中。4.根据权利要求1所述的存储方法,其特征在于:所述步骤4中当网络出现故障或者文件服务器发生故障时,采集机将网络流数据保存在采集机的本地暂存目录中。5.根据权利要求1所述的存储方法,其特征在于:所述步骤4中当网络及文件服务器在故障修复后恢复正常的一段时间内:在采集机的本地暂存目录中存储有网络流数据时,采集机上的数据补发进程将存储于本地暂存目录中的网络流数据转发给文件服务器上的数据接收进程,与此同时,采集机上的数据转发进程将正常的网络流数据转发给文件服务器上的数据接收进程;直到采集机的本地暂存目录中的网络流数据全部转发完毕时,采集机恢复到正常的数据转发流程,由采集机上的数据转发进程将网络流数据转发给文件服务器上的数据接收进程。6.根据权利要求...

【专利技术属性】
技术研发人员:陈重韬王伟平孟丹胡斌崔甲
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

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

1