具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参考图1,示出了本发明的一种带宽数据的动态查询方法实施例1的流程图,可以包括以下步骤:
步骤101:接收用户输入的针对带宽数据的查询条件。
在本发明实施例中,用户输入的针对带宽数据的查询条件具体可以包括:时间参数信息或/和频道信息,所述时间参数信息具体可以包括:天、周、月或时间段信息,所述频道信息具体可以包括:单个频道或者全部频道信息。例如,用户的查询可以按天、按频道进行查询,也可以按周、按频道进行查询,也可以按月、按频道进行查询,当然,也可以按时间段、按频道进行查询。
步骤102:依据所述查询条件从预置的数据库中匹配得到目标数据,所述预置的数据库用于存储带宽数据。
接收到用户输入的不同的查询条件时,就需要依据该查询条件限定的内容从预置的数据库中匹配得到目标数据,该预置的数据库用于存储带宽数据,需要说明的是,这里的带宽数据需要遵循一定的格式定义才能被用户查询得到。
更具体的,考虑到用户的不同查询方式,当按天、按频道进行查询时,因为现有的日志报表系统,每五分钟获取一个计费取样点,每频道一天会有288取样点,每取样点根据时间进行区分,即采用年月日时分形式(例如201006250000代表2010年06月25日00点00分)。由于采用每五分钟一个取样点,因此,时间以0或5结尾。在本发明实施例中,用户可以查询单个频道或全部频道。所述全部频道的含义即是,在某用户名下所有频道的带宽数据的汇总结果,需要将相同时间上的取样点对应的相应数据进行合并计算,合并后全部取样点仍为288个。
当用户按周、按频道进行查询时,需查询一周内该频道所有取样点的数据,一共为288*7=2016个,全部频道取样,也应对其进行累加。当用户按月、按频道进行查询时,需要查询一个月内该频道涉及到的所有取样点,一共约为288*30=8640个取样点,全部频道取样,也应对其进行累加。当用户按时间段,按频道进行查询时,查询数据可为一个自然月内,也可跨自然月,这种情况下涉及的取样点可能会比较多,而且全部频道取样,也应对其进行累加。因为是按照时间段进行查询,因此查询可能也会涉及跨月及跨年的问题,而且也可能涉及取样点较多的问题,此时也可以考虑效率问题。
在本实施例中对目前要支持的查询方法进行了详细的介绍,而且,用户在查询页面时页面的响应效率也较高,即页面生成图片时间较短,就可以提升用户的使用系统的满意度及用户体验。同时,本发明实施例可以在数据库中实现,衔接了后台程序和前台查询系统,后台程序通过分析统计,将得到的符合要求的数据插入数据库中,前台查询系统会根据查询条件从数据库中获取用户要查询的数据。
参考图2所示,所述预置的数据库可以通过以下方式建立:
步骤201:对接收到的来自边缘节点的原始带宽信息数据实时进行汇总。
在本步骤进行临时数据接收,接收到的临时数据可以保存至TEMP_*表中,该表是一个临时数据接收表,用于接收来自边缘节点的、已经过初步处理的原始带宽信息数据。需要说明的是,在该表中,数据会实时进行汇总,然后可删除已使用过的数据,等待下次数据的收集,以便后续可以将初步汇总后的数据放入BILLING_*表中。本步骤的执行过程是实时且不间断的进行的,即后台会定时运行,一旦发现可入库数据,即第一时间将获取数据插入该表中,以确保建立的数据库数据的准确性及实时性。
步骤202:依据数据类型和/或用户信息对汇总后的带宽信息数据进行分类。
本步骤中需要对TEMP_*表中的数据进行规整合并,并根据数据类型及用户信息(即是用户关心程度)对原始带宽信息数据进行归类划分,以便于尽可能将数据的数量级降为最低级别,并分别按照每五分钟一个取样点及每天一个取样点,对统计分析数据进行归类,分类后的数据保存至BILLING_*表中,该表是由一组表组成的。
需要说明的是,BILLING_*表中的数据具有实时性,为了保证用户能够第一时间看到统计分析结果,BILLING_*表中的数据会实时的从TEMP_*表汇总得到,可以预先设定为每五分钟进行一次汇总,以确保其展现的数据延迟性较少,一般情况下,数据延时不得超过半小时。
可以理解的是,由于BILLING_*中的数据可能会不断更新,因此对于近一周的数据,一般认为是不够准确的,有可能后期会不断的进行更新,即对于这一周内的数据结果是动态可变的,该动态可变的数据存放于BILLING_*表中,而对于一周之后的数据,一般不会再发生任何变化,将后续自动汇总到REPORT_*表中。因此,对于近一周内数据的查询,可以由BILLING_*表作为查询依据。
步骤203:对分类后的带宽信息数据再按照用户域名信息进行分区划分,并根据取样点设置带宽信息数据的字段个数。
本步骤即是保存所有客户的带宽信息数据,为了提高前台查询数据的效率,还可以按照用户域名信息进行分区划分,并保存至数据表REPORT_*。REPORT_*表中的数据会作为用户带宽信息的最终数据进行保存,该保存期可以设置为至少一年。该数据除了作为用户查询带宽流量等统计分析结果的依据之外,还作为用户计费依据。用户可以通过天、周、月或时间段等查询条件查询相应域名及其全部域名的数据,该数据主要是通过查询REPORT_*表中的信息获得。
需要说明的是,还可以将数据表根据取样点划分288个字段,即T0000~T2355。这样每域名每天只有一条记录,当用户查询数据时,可根据用户域名进行信息汇总或者仅查询一条数据,这就能极大地提高前台查询页面的数据响应速度。
步骤204:将分区划分之后的带宽信息数据保存至预先建立的数据库中。
从上述内容中可以看出,在建立数据库时数据流向是通过TEMP_*至BILLING_*,再到REPORT_*,逐步地将数据进行汇总、归类,最后,将最终数据汇总并归类到REPORT_*这组数据表中,并保存至预先建立的数据库作为前台的报表系统的查询依据。
在介绍完建立预置的数据库的具体方式之后,在方法实施例1中,所述步骤102之后还可以继续包括:
步骤103:对所述预置的数据库中的带宽数据进行备份。
需要说明的是,数据库中的数据例如REPORT_*中的最终数据,还可以定时进行备份,这样就可以确保一旦数据库等出现异常问题,能够以最快速度的对数据库中的数据进行恢复,不会影响到用户的查询及计费。同时对于用户跨月、跨年进行查询的情况,预置的数据库中的数据表结构也具有很好的兼容性,能够保证查询数据量不会过大,进而最大限度地保证用户查询效率。
步骤104:当数据库发生异常时,按照备份数据对数据库中的数据进行恢复。
在本发明实施例中的查询方式是动态的,即是可以根据用户的不同查询方式,动态的生成用户所需要的数据及图表。本发明实施例可以解决现有技术导致的服务器运行负载不均衡和性能较低的技术问题,进一步的,还能解决现有技术中统计到的带宽数据不够准确的技术问题。
参考图3,示出了本发明的一种带宽数据的动态查询方法实施例2的流程图,本实施例可以包括以下步骤:
步骤301:接收用户输入的针对带宽数据的查询条件。
本步骤的实现过程在上述实施例中已经详细描述,在此不再赘述。
步骤302:依据所述查询条件从预置的数据库中匹配得到目标数据,所述预置的数据库用于存储带宽数据。
所述预置的数据库的建立方式,以及本步骤的实现过程在前述实施例中已经详细描述,在此不再赘述。
步骤303:针对匹配得到的目标数据,采用预置算法对取样点进行换算。
当用户查询得到目标数据之后,还可以将查询数据生成流量带宽图展现给用户。但是在进行图形绘制的过程中,受图形本身像素点的限制,在用户按周、按频道进行查询时,需将2016个取样点换算为288个,因此需要采用相应算法进行再次取样,以获取较接近的流量带宽图。同时,在用户按月、按频道进行查询时,需将8640个取样点换算为288个,同样的需要采用相应算法进行再次取样,以获取较接近的流量带宽图。
步骤304:按照换算之后的取样点绘制目标数据的流量带宽图。
在取样点进行换算之后,可以快速通过绘图程序将获取到的数据绘制成图形展现在用户面前。
需要说明的是,在本发明实施例中,多用户的动态的日志分析报表系统主要是以域名和时间点作为唯一取样点,通过分析每台加速服务器上的日志,来获取每域名的带宽数据,因此,能够更加灵活的获取用户数据,可实现一台加速服务器上加速多个域名,而不会因为后期计费问题得到限制,能够最大限度地发挥加速服务器的性能。而且,通过域名计费能够很灵活的合并多个节点上该域名的带宽数据,也能够分节点进行汇总,从而最大限度地满足用户及运维工作人员对数据统计结果的查询要求。
由于本发明实施例中每取样点上的数据均是通过分析日志得到的,因此,可以说该带宽数据统计是完全的用户访问流量,而没有统计多余的请求所消耗的资源情况,可以说这样的带宽数据是十分准确的。而且,通过报表系统对获取到的取样点数据进行再次合并汇总存储,并按照用户对数据表进行分区管理,将数据存储为特定的数据格式,能够满足前台用户的查询效率要求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参考图4,示出了本发明的一种带宽数据的动态查询系统实施例1的结构框图,可以包括以下模块:
接收模块401,用于接收用户输入的针对带宽数据的查询条件。
所述查询条件具体包括:时间参数信息或/和频道信息,所述时间参数信息包括:天、周、月或时间段信息,所述频道信息包括:单个频道或者全部频道信息。
查询模块402,用于依据所述查询条件从预置的数据库中匹配得到目标数据,所述预置的数据库用于存储带宽数据。
备份数据模块403,用于对所述预置的数据库中的带宽数据进行备份。
数据恢复模块404,用于当数据库发生异常时,按照备份数据对数据库中的数据进行恢复。
在本发明实施例中的查询方式是动态的,即是可以根据用户的不同查询方式,动态的生成用户所需要的数据及图表。本发明实施例可以解决现有技术导致的服务器运行负载不均衡和性能较低的技术问题,进一步的,还能解决现有技术中统计到的带宽数据不够准确的技术问题。
其中,所述实施例中预置的数据库通过以下方式建立:
步骤A1:对接收到的来自边缘节点的原始带宽信息数据实时进行汇总。
步骤A2:依据数据类型和/或用户信息对汇总后的带宽信息数据进行分类。
步骤A3:对分类后的带宽信息数据再按照用户域名信息进行分区划分,并根据取样点设置带宽信息数据的字段个数。
步骤A4:将分区划分之后的带宽信息数据保存至预先建立的数据库中。
参考图5,示出了本发明的一种带宽数据的动态查询系统实施例2的结构框图,可以包括以下模块:
接收模块401,用于接收用户输入的针对带宽数据的查询条件;
查询模块402,用于依据所述查询条件从预置的数据库中匹配得到目标数据,所述预置的数据库用于存储带宽数据。
换算模块501,用于针对匹配得到的目标数据,采用预置算法对取样点进行换算。
绘制图形模决502,用于按照换算之后的取样点绘制目标数据的流量带宽图。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种带宽数据的动态查询方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。