一种网络业务流量的实时检索系统及实时检索方法与流程

文档序号:13739204阅读:270来源:国知局
一种网络业务流量的实时检索系统及实时检索方法与流程

本发明涉及数字信息的传输,例如电报通信的技术领域,特别涉及一种网络业务流量的实时检索系统及实时检索方法。



背景技术:

近年来,随着网络用户数量的指数增长,网络规模的飞速膨胀,使得信息对我们生活造成广泛而深远的影响。

在一个网络环境中,非关键业务的泛滥会导致整个网络带宽资源的紧缺,从而影响其他一些网络关键业务的正常开展,因此,以及时且有效的检索手段来获悉网络中带宽资源在不同业务中所占的比例就显得尤为重要。

现有技术中,检索系统在采集到数据后,一般存储于传统数据库,如mysql,然而,鉴于网络环境的用户以及业务的庞大数据量及指数型的增速,传统数据库在统计、检索速度、实时事务上无法满足现有的网络环境的需求。



技术实现要素:

为了解决现有技术中存在的问题,本发明提供一种优化的网络业务流量的实时检索系统及实时检索方法,能满足统计需求、快速检索且具有实时效应。

本发明所采用的技术方案是,一种网络业务流量的实时检索方法,所述方法包括以下步骤:

步骤1:构建普通索引库;

步骤2:接收用户输入的针对网络业务流量的检索信息;

步骤3:根据用户输入的检索信息,构建包括ip以及要查询的ip的时间段的检索条件,并以检索条件在索引库中获取检索结果;

步骤4:定期删除业务流量记录。

优选地,所述步骤1中,构建普通索引库包括以下步骤:

步骤1.1:对每一条网络业务流量增加上下文信息,建立每一条网络业务流量的实时索引信息;

步骤1.2:每天固定时间,通过索引引擎从数据库中获取前一天的所有网络业务流量的实时索引信息,建立普通索引,并在实时索引信息中将前一天网络业务流量的记录删除;重复步骤1.1。

优选地,所述步骤1.1中,上下文信息包括所述每一条网络业务流量的所属ip、上行流量、下行流量和所述每一条网络业务流量的统计周期的起始时间和结束时间。

优选地,所述上下文信息还包括每一条网络业务流量的唯一id,所述id包含生成时间,并备份于数据库中,为数据库建立以唯一id为关键字的分区。

优选地,所述步骤1.2中,在建立普通索引时,将前一天的记录索引保存在以前一天日期为命名的索引文件中。

优选地,所述步骤3中,检索信息包括时间条件,检索结果为条件时间内不同网络业务类型产生的上行流量和下行流量的总和。

优选地,所述步骤3中,检索信息还包括ip,检索结果为条件时间内所述ip使用不同的网络业务类型产生的上行流量和下行流量。

优选地,所述步骤3中,检索信息还包括业务类型,检索结果为条件时间内不同ip使用当前网络业务类型产生的上行流量和下行流量。

优选地,所述步骤4中,定期删除业务流量记录,删除方式是直接删除以天日期为命名的普通索引文件。

一种采用所述的一种网络业务流量的实时检索方法的实时检索系统,所述实时检索系统包括实时索引构建模块、普通索引更新模块、检索信息接收模块、索引模块和索引清理模块;

所述实时索引构建模块用于对每一条业务流量记录增加该记录的所属ip、上行流量、下行流量和所述每一条网络业务流量的统计周期的起始时间和结束时间,并建立一条实时索引信息;

所述普通索引更新模块用于在固定时间,通过索引引擎从数据库中获取前一天的所有网络业务流量的实时索引信息,建立普通索引,并在实时索引信息中将前一天网络业务流量的记录删除;

所述检索信息接收模块用于接收用户输入的针对业务流量的检索信息;

所述索引模块用于根据用户输入的检索信息,构建包括ip以及要查询的ip的时间段的检索条件,并以检索条件在索引库中获取检索结果;

所述索引清理模块用于定期删除用户业务流量记录,删除方式是直接删除以天日期为命名的普通索引文件。

本发明提供了一种优化的网络业务流量的实时检索系统及实时检索方法,通过对每一条网络业务流量的记录补全上下文信息,建立实时索引信息,并每天将实时索引信息更替为普通索引,在用户检索时,即能提供完整、实时的检索信息。本发明的有益效果在于,本发明的检索技术在大数据量的情况下能获得更具有实时性的统计结果,耗时短,补全了上下文信息后,检索准确度更高,可以及时帮助用户了解当前网络环境中各种业务流量使用情况,对于网络带宽资源的合理分配以及网络环境中关键业务开展有着重要的意义。

附图说明

图1为本发明的方法流程图。

图2为本发明的实施例索引数据结构图。

图3为本发明的实时检索系统的逻辑结构图。

具体实施方式

本发明中,优先以sphinx作为检索引擎。sphinx是一个基于sql的全文检索引擎,可以结合mysql、postgresql做全文搜索,可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。sphinx特别为一些脚本语言设计搜索api接口,如php、python、perl、ruby等,同时为mysql也设计了存储引擎插件。sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级);sphinx创建索引的速度为创建100万条记录的索引耗时3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

由于sphinx普通索引不具有实时性,生成时需要从数据库提取数据,而实时索引保存在内存中,程序退出会造成数据永久性丢失,故使用sphinx普通索引构建检索引擎,设置两个数据源和两个索引,为那些基本不更新的数据建立主索引,而对于那些新增的数据建立增量索引,主索引的更新频率可以设置的长一些,例如设置在每天的午夜进行,而增量索引的更新频率可以设置的很短,如几分钟,这样在用户搜索的时候,可以同时查询这两个索引的数据。

为了提高检索效率,减少建立索引时不必要的io消耗,提出本发明的技术。

本发明涉及一种网络业务流量的实时检索方法,所述方法包括以下步骤。

步骤1:构建普通索引库。

所述步骤1中,构建普通索引库包括以下步骤。

步骤1.1:对每一条网络业务流量增加上下文信息,建立每一条网络业务流量的实时索引信息。

所述步骤1.1中,上下文信息包括所述每一条网络业务流量的所属ip、上行流量、下行流量和所述每一条网络业务流量的统计周期的起始时间和结束时间。

所述上下文信息还包括每一条网络业务流量的唯一id,所述id包含生成时间,并备份于数据库中,为数据库建立以唯一id为关键字的分区。

本发明中,实时索引信息为sphinx实时索引信息。

步骤1.2:每天固定时间,通过索引引擎从数据库中获取前一天的所有网络业务流量的实时索引信息,建立普通索引,并在实时索引信息中将前一天网络业务流量的记录删除;重复步骤1.1。

所述步骤1.2中,在建立普通索引时,将前一天的记录索引保存在以前一天日期为命名的索引文件中。

本发明中,如图2所示,为某网络环境已经建立好的记录结构。其中,第一条记录的唯一id为20170730115959001,表示2017年7月30日11点59分59秒的某一条记录,经过本步骤,图2的所有记录将会建立成实时索引保存于sphinx引擎中,也会有一份备份于mysql数据库中,且为mysql数据库建立以唯一id为key的分区。

本发明中,当到了一天中网络环境闲暇时间段,如凌晨,通过sphinx引擎从mysql数据库中获取前一天的所有业务流量记录,建立成sphinx普通索引,并在实时索引中将前一天业务流量的记录删除。例如,在时间2017年7月31日1点00分00秒,将所有例图2中的记录从实时索引中删除,再由sphinx普通索引引擎从数据库中提取数据重新建立索引,并将此索引文件命名为20170730,即当天日期,而实时索引只会保存当天的业务流量信息。本发明中,具体的操作时间可参考不同的网络环境配置。

步骤2:接收用户输入的针对网络业务流量的检索信息。

本发明中,接收的检索信息包括用户通过界面,选择想要呈现并查询的业务流量统计。如用户需要查询2017年7月30日11点58分到11点59分的业务流量按不同ip的总流量top3。

步骤3:根据用户输入的检索信息,构建包括ip以及要查询的ip的时间段的检索条件,并以检索条件在索引库中获取检索结果。

所述步骤3中,检索信息包括时间条件,检索结果为条件时间内不同网络业务类型产生的上行流量和下行流量的总和。

所述步骤3中,检索信息还包括ip,检索结果为条件时间内所述ip使用不同的网络业务类型产生的上行流量和下行流量。

所述步骤3中,检索信息还包括业务类型,检索结果为条件时间内不同ip使用当前网络业务类型产生的上行流量和下行流量。

本发明中,以ip-时间-业务类型为条件组为例。根据检索信息,构建返回检索条件,即从实时索引中和所有普通索引文件中提取源数据,如192.168.1.100(ip)-20170630到20170631(时间)-xunlei(业务类型),根据该组将相同的ip-时间-业务类型组的上下行流量各自相加,最后相加后的上下行流量再相加获得总流量,再以总流量将ip-时间-业务类型组按照一定顺序排序,如降序,并返回前三名。

本发明中,此过程使用sphinx引擎提供的mysql接口实现。

本发明中,条件组还可以为ip-时间条件或ip-业务类型等,即可以由ip,时间,业务类型三个条件单个使用并查询,也可以两两组合查询,也可以三个同时查询。

本发明中,源数据是同时从sphinx普通索引和sphinx实时索引中提取的。

步骤4:定期删除业务流量记录。

所述步骤4中,定期删除业务流量记录,删除方式是直接删除以天日期为命名的普通索引文件。

本发明中,定期删除sphinx普通索引文件,如以一个月为限,如今天是2017年07月30日,那么将2017年06月30日之前的所有普通索引文件按照文件名删除,可以简单的将一个月前的业务流量记录从索引中删除。

一种采用所述的一种网络业务流量的实时检索方法的实时检索系统,所述实时检索系统包括实时索引构建模块、普通索引更新模块、检索信息接收模块、索引模块和索引清理模块;

所述实时索引构建模块用于对每一条业务流量记录增加该记录的所属ip、上行流量、下行流量和所述每一条网络业务流量的统计周期的起始时间和结束时间,并建立一条实时索引信息;

所述普通索引更新模块用于在固定时间,通过索引引擎从数据库中获取前一天的所有网络业务流量的实时索引信息,建立普通索引,并在实时索引信息中将前一天网络业务流量的记录删除;

所述检索信息接收模块用于接收用户输入的针对业务流量的检索信息;

所述索引模块用于根据用户输入的检索信息,构建包括ip以及要查询的ip的时间段的检索条件,并以检索条件在索引库中获取检索结果;

所述索引清理模块用于定期删除用户业务流量记录,即删除以天日期为命名的普通索引文件。

本发明中,实时索引构建模块为每一条业务流量记录进一步增加包含生成时间的唯一id,并也将该记录备份到mysql数据库中,为mysql数据库建立以唯一id为key的分区,普通索引更新模块删除前一天实时索引时按唯一id上的时间来删除。

本发明中,实时索引构建模块为mysql数据库建立以唯一id为key的分区,普通索引更新模块在建立sphinx普通索引时,将前一天的记录索引保存在以前一天日期为命名的索引文件中,索引清理模块中定期删除业务流量记录时,直接删除mysql分区日期文件和sphinx日期普通索引文件。

本发明通过对每一条网络业务流量的记录补全上下文信息,建立实时索引信息,并每天将实时索引信息更替为普通索引,在用户检索时,即能提供完整、实时的检索信息。本发明的有益效果在于,本发明的检索技术在大数据量的情况下能获得更具有实时性的统计结果,耗时短,补全了上下文信息后,检索准确度更高,可以及时帮助用户了解当前网络环境中各种业务流量使用情况,对于网络带宽资源的合理分配以及网络环境中关键业务开展有着重要的意义。

最后,需要注意的是,以上列举的仅是本发明的较佳实施示例,并不用以限制本发明,本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1