具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参考图1,示出了本发明的一种实时计费方法实施例1的流程图,可以包括以下步骤:
步骤101:获取各个节点的数据文件。
在本实施例中,可以采用分布式的计费信息计算方式,即在每个节点上就将本节点的计费日志先分析一遍,去掉冗余数据就可以生成数据文件,以便于后续传输到中心再保存至数据库,采用这种方式可以减少数据库临时冗余数据量,并可以减轻数据临时数据库计算的开销。
步骤102:将所述各个节点的数据文件汇总后直接保存至临时数据库。
在本发明实施例中,在数据库方面进行了分级,采用了一个临时数据库和一个正式的查询数据库来实现。临时数据库主要是各节点汇总之后的数据直接入库,多节点之间不进行合并,目的是加快入库速度,入库只进行插入(insert)数据操作而不进行更新(update)和删除(delete)的操作。虽然单节点内已经没有冗余数据了,但是多节点之间以及延时之后的数据可能出现冗余,因此临时数据库保存的数据还是有冗余,但在经过本步骤中的节点汇总之后冗余会大大减少。
步骤103:对临时数据库中的数据文件进行多级汇总,以得到满足预置条数的数据记录并保存至查询数据库中。
需要说明的是,在各个而节点的数据文件保存至临时数据库之后,可以采用“多级汇总”的方式,由临时表首先通过存储过程去掉冗余,变成每域名、每5分钟一条数据,第一级汇总采用合并(merge)的方式,因为各节点数据在时间上有先后顺序,因此不可能一次性全部算出最终的数据,必然要进行多次反复的合并操作,在一定时间以后就会变成最终的数据。而二级汇总主要是针对已经不会再变化的数据做的,例如,假设一个星期以后的流量数据将不再变化,那么汇总则会针对一个星期以前的数据进行。汇总之后得到满足预置条数的数据记录可以保存至查询数据库中,供前台用户查询使用。需要说明的是,汇总之后,数据的记录条数会变少很多,这样就提高了用户从查询数据库中获取数据记录的效率。
步骤104:按照时间段信息从所述查询数据中获取相应的数据记录并进行计费。
按照用户设置的时间段信息,例如一个月,从查询数据库中获取到相应的数据记录,查询到一组业务相同域名的带宽数据之后,按一个月30天来算,一共有288*30=8640个取样点,则可以依据这么多取样点的数据记录,可以采用各种计费方式进行计费。例如,95带宽计费法、第N峰值计费法、忙时N小时计费法等等。
在不同的实施例中,在步骤104之后,本发明还可以包括:
步骤105:生成满足用户需求的计费账单。
将计费数据再根据用户需求生成计费账单,可以供用户更方便的查看。可以看出,在本实施例中,采用单域名数据采集,以及多域名数据汇总的方式,并且,数据库也采用多级汇总的方式,并且可以设计出专门的带宽数据查询接口,以降低展示以及计费之间的耦合性,提高了计费效率。进一步的,还可以适应多用户多域名加速的应用场景。
参考图2,示出了本发明的一种实时计费方法实施例2的流程图,本实施例可以包括以下步骤:
步骤201:在每个节点上对本节点的计费日志进行分析。
本步骤即是在每个节点都首先分析该节点的计费日志,以得到初步的已经分析过的计费日志。
步骤202:删除所述计费日志中的冗余数据,以生成各个节点的数据文件。
同时删除计费日志中的冗余数据,针对每个节点都得到已经去掉冗余的数据文件。
步骤203:将所述各个节点的数据文件汇总后直接保存至临时数据库。
得到各个节点的数据文件之后,可以进行汇总并保存至临时数据库中。
步骤204:将所述数据文件转换为每域名周期性的生成一条数据。
在本步骤,需要按照域名将各个节点的数据文件进行合并,比如每五分钟生成一条数据。
步骤205:针对各个域名合并所述生成的多条数据。
将生成的多条数据按照域名进行合并,即是各个域名的数据记录都合并到一起。
步骤206:将所述多条数据按照频道和时间信息进行汇总,以减少数据库中的数据量。
本步骤可以认为是二级汇总的过程,主要是采用了行转列的“增维减量”的方法,即原来每个频道的带宽数据是5分钟一条,所以一天288条,那么现在增加表的列数,以便把288条记录的流量带宽数据汇总到一条记录上。
步骤207:将汇总后的满足预置条数的数据记录保存至查询数据库中。
在进行步骤205的汇总后,数据记录的条数将大大减少,例如,原来3个月的数据可能是百亿条,那么现在汇总之后数据量将减少为几千万条,满足在汇总时的预置条数。本实施例的这种方式虽然增加了汇总的时间复杂度,但是数据库的总体数据表量会大大降低。加上适当的分区和索引的建立,可以使得后续查询数据记录将便得非常快,那么相应的计费效率也就很高。
计算得到用于计费的带宽数据库之后,可以存储在查询数据库中,后续该查询数据库中的数据可以作为计费出账单的依据。同时还可以设计数据查询接口,那么在Web上展示和计费账单都可以通过调用此接口获得数据。
步骤208:依据时间段信息获取业务类型相同的域名的带宽数据。
虽然计算得到了单域名的实时带宽数据,但是实际应用中一个用户往往是将一组域名进行加速,因此可以合并计费。可以对每一个域名给出一个业务类型,只要符合相同业务类型的域名,就可以进行合并计费,因为相同的业务意味着成本是一致的。例如,在按月计费的时候,通过实时带宽数据查询接口,可以将一组业务相同域名的带宽数据查出来,一个月按30天算的话,一共有288*30=8640个取样点的数据。
步骤209:针对所述获取到的带宽数据采用预置的计费算法进行计费。
那么针对所获取到的带宽数据,就可以采用预置的计费算法进行计费。例如:抛点计费法,即从大到小排列带宽值,抛去若干点之后的最大带宽值作为上月带宽。95带宽计费法,即从大到小排列带宽值,去掉5%的带宽值之后作为上月带宽,相当于抛点计费抛去(8640*5%)个点的计费方法。95带宽计费法是最常见的一种计费方法。第N峰值计费法,每天找出一个最大峰值,一个月30个,那么从大到小用第N个峰值作为上月带宽,常见第4峰值计费。忙时N小时计费法,即计算一组连续N个小时中出现的最小的峰值,那么该月中最大的这个值作为该月的带宽值。
在实际应用中还可以将各种计费的方法都实现成不同的计费模块,调用实时带宽查询接口查出一个月的计费带宽数据之后,就可以调用不同的计费模块计算出“计费带宽”来。同时在后台可以同时用各种不同的方法算出一组“计费带宽”值来,多个结果同时出来之后就便于比较不同的算法之间的差异,以便于后续进行成本分析以及营销决策分析等等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参考图3,示出了本发明的一种实时计费系统实施例1的结构框图,可以包括以下模块:
获取数据文件模块301,用于获取各个节点的数据文件。
生成临时数据模块302,用于将所述各个节点的数据文件汇总后直接保存至临时数据库。
多级汇总模块303,用于对临时数据库中的数据文件进行多级汇总,以得到满足预置条数的数据记录并保存至查询数据库中。
查询计费模块304,用于按照时间段信息从所述查询数据中获取相应的数据记录并进行计费。
生成计费账单模块305,用于生成满足用户需求的计费账单。
在本实施例中,在数据库方面进行了分级,采用了一个临时数据库和一个正式的查询数据库来实现。临时数据库主要是各节点汇总之后的数据直接入库,多节点之间不进行合并,目的是加快入库速度。同时本实施例中采用单域名数据采集,以及多域名数据汇总的方式,并且,数据库也采用多级汇总的方式,并且可以设计出专门的带宽数据查询接口,以降低展示以及计费之间的耦合性,提高了计费效率。进一步的,还可以适应多用户多域名加速的应用场景。
参考图4,示出了本发明的一种实时计费系统实施例2的结构框图,可以包括以下模块:
分析日志子模块401,用于在每个节点上对本节点的计费日志进行分析。
生成数据文件子模块402,用于删除所述计费日志中的冗余数据,以生成各个节点的数据文件。
生成临时数据模块302,用于将所述各个节点的数据文件汇总后直接保存至临时数据库。
生成数据子模块403,用于将所述数据文件转换为每域名周期性的生成一条数据。
合并子模块404,用于针对各个域名合并所述生成的多条数据。
汇总子模块405,用于将所述多条数据按照频道和时间信息进行汇总,以减少数据库中的数据量。
获取带宽数据子模块406,用于依据时间段信息获取业务类型相同的域名的带宽数据。
计费子模块407,用于针对所述获取到的带宽数据采用预置的计费算法进行计费。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种实时计费方法及实时计费系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。