一种实时计费系统的制作方法

文档序号:6331277阅读:156来源:国知局
专利名称:一种实时计费系统的制作方法
技术领域
本发明涉及数据处理领域,特别是涉及一种实时计费系统。
背景技术
计费是内容分发网络(Content Delivery Network, CDN)服务提供商的业务与运 营支撑系统(BOSS)的必备的基础功能之一。在CDN领域一般都采用日志计费的方式,即把 加速服务器的访问日志收集起来,然后按造预定方式汇总每条日志访问所产生的流量,再 经过预置的一系列计算,生成当前日志所产生的费用。在生成日志费用的时候一般由数据 库执行,需要将每一条访问日志的域名、时间和产生的流量等信息汇总,并可以通过程序或 者存储过程来汇总。通常的做法可以是每5分钟设置一个采样点,即一个域名在同一个5 分钟之内的访问产生的流量算为一个采样点。目前,流量和带宽之间有如下所示的计算公 式平均带宽(bps)=(总流量(B)*8)/(60(s)*5))。采用现有技术进行计费的方式示例如下假设全网加速的有5000个域名,每个域 名有100台服务器提供服务,每个频道每5分钟的流量数据合并为1条(在进入数据库之前 汇总),那么按照服务器的维度入库时,一天的数据量有5000*100*288 = 144,000,000 (条 记录)。即使不按服务器的维度,按照节点数(中型的CDN提供商大概拥有几十个节点)统 计的数据量也不会降下来,仍然在1亿条以上。这个数据量还是汇总之后的数据量,那么临 时入库前的冗余数据量(即一个时间点多条数据)更是庞大,如果在数据库中保留3个月 的数据,数据量可能会达到百亿条。从上述过程中可以看出,采用传统的方法将信息汇总入库并计算日志费用时,都 集中于数据库进行计算,由于计费的日志信息量非常大,就对数据库造成非常大的压力,降 低了数据库的计算速度和性能。在实际应用中,计费周期通常是按月进行的,因此,由于计 算完之后的数据量依然很大,查询一个月的计费信息也是非常的慢,就导致了查询效率也 很低。进一步的,由于CDN行业激烈的竞争,单一的计费方法早已不能适应业务的发展,由 于多数用户都是存在多域名加速的情况,因此如何合理地对多域名计费是需要考虑的一个 问题。因此,目前需要本领域技术人员迫切解决的一个技术问题就是如何能够提出一 种实时计费方法,主要用以解决现有技术中计费和查询效率过低的技术问题,还能进一步 的适应用户存在多域名加速的应用场景。

发明内容
本发明所要解决的技术问题是提供一种实时计费方法,主要用以解决现有技术中 计费和查询效率过低的技术问题,还能进一步的适应用户存在多域名加速的应用场景。本发明的另一个目的是将上述构思应用于具体的应用环境中,提供一种实时计费 系统,从而保证该方法的实现和应用。为解决上述技术问题,本发明实施例提供了一种实时计费系统,包括
获取数据文件模块,用于获取各个节点的数据文件;生成临时数据模块,用于将所述各个节点的数据文件汇总后直接保存至临时数据 库;多级汇总模块,用于对临时数据库中的数据文件进行多级汇总,以得到满足预置 条数的数据记录并保存至查询数据库中;查询计费模块,用于按照时间段信息从所述查询数据中获取相应的数据记录并进 行计费。优选的,所述获取数据文件模块具体包括分析日志子模块,用于在每个节点上对本节点的计费日志进行分析;生成数据文件子模块,用于删除所述计费日志中的冗余数据,以生成各个节点的 数据文件。优选的,所述多级汇总模块具体包括生成数据子模块,用于将所述数据文件转换为每域名周期性的生成一条数据;合并子模块,用于针对各个域名合并所述生成的多条数据;汇总子模块,用于将所述多条数据按照频道和时间信息进行汇总,以减少数据库 中的数据量。优选的,所述查询计费模块具体包括获取带宽数据子模块,用于依据时间段信息获取业务类型相同的域名的带宽数 据;计费子模块,用于针对所述获取到的带宽数据采用预置的计费算法进行计费。优选的,还包括生成计费账单模块,用于生成满足用户需求的计费账单。与现有技术相比,本发明具有以下优点在本实施例中,首先获取到的是各个节点的数据文件,同时数据库可以分为临时 数据库和查询数据库两个,然后依据需要计费的时间段信息从查询数据库中查询得到目标 数据并进行计费。本发明实施例采用单域名数据采集,以及多域名数据汇总的方式,并且, 数据库也采用多级汇总的方式,并且可以设计出专门的带宽数据查询接口,以降低展示以 及计费之间的耦合性,提高了计费效率。进一步的,还可以适应多用户多域名加速的应用场

ο


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1是本发明的一种实时计费方法实施例1的流程图;图2是本发明的一种实时计费方法实施例2的流程图;图3是本发明的一种实时计费系统实施例1的结构示意图;图4是本发明的一种实时计费系统实施例2的结构示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。本发明可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务 器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备 的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。参考图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的结构框图,可以包括以下
7模块分析日志子模块401,用于在每个节点上对本节点的计费日志进行分析。生成数据文件子模块402,用于删除所述计费日志中的冗余数据,以生成各个节点 的数据文件。生成临时数据模块302,用于将所述各个节点的数据文件汇总后直接保存至临时 数据库。生成数据子模块403,用于将所述数据文件转换为每域名周期性的生成一条数据。合并子模块404,用于针对各个域名合并所述生成的多条数据。汇总子模块405,用于将所述多条数据按照频道和时间信息进行汇总,以减少数据 库中的数据量。获取带宽数据子模块406,用于依据时间段信息获取业务类型相同的域名的带宽 数据。计费子模块407,用于针对所述获取到的带宽数据采用预置的计费算法进行计费。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重 点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。 对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参 见方法实施例的部分说明即可。需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包 含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括 没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括一个......,,限定的要素,并不排除在包括所述要
素的过程、方法、物品或者设备中还存在另外的相同要素。以上对本发明所提供的一种实时计费方法及实时计费系统进行了详细介绍,本文 中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮 助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思 想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对 本发明的限制。
权利要求
一种实时计费系统,其特征在于,包括获取数据文件模块,用于获取各个节点的数据文件;生成临时数据模块,用于将所述各个节点的数据文件汇总后直接保存至临时数据库;多级汇总模块,用于对临时数据库中的数据文件进行多级汇总,以得到满足预置条数的数据记录并保存至查询数据库中;查询计费模块,用于按照时间段信息从所述查询数据中获取相应的数据记录并进行计费。
2.如权利要求1所述的系统,其特征在于,所述获取数据文件模块具体包括 分析日志子模块,用于在每个节点上对本节点的计费日志进行分析;生成数据文件子模块,用于删除所述计费日志中的冗余数据,以生成各个节点的数据 文件。
3.如权利要求2所述的系统,其特征在于,所述多级汇总模块具体包括生成数据子模块,用于将所述数据文件转换为每域名周期性的生成一条数据; 合并子模块,用于针对各个域名合并所述生成的多条数据;汇总子模块,用于将所述多条数据按照频道和时间信息进行汇总,以减少数据库中的数据量。
4.如权利要求1所述的系统,其特征在于,所述查询计费模块具体包括获取带宽数据子模块,用于依据时间段信息获取业务类型相同的域名的带宽数据; 计费子模块,用于针对所述获取到的带宽数据采用预置的计费算法进行计费。
5.如权利要求1所述的系统,其特征在于,还包括生成计费账单模块,用于生成满足用户需求的计费账单。
全文摘要
本发明提供了一种实时计费系统,所述系统包括获取数据文件模块,用于获取各个节点的数据文件;生成临时数据模块,用于将所述各个节点的数据文件汇总后直接保存至临时数据库;多级汇总模块,用于对临时数据库中的数据文件进行多级汇总,以得到满足预置条数的数据记录并保存至查询数据库中;查询计费模块,用于按照时间段信息从所述查询数据中获取相应的数据记录并进行计费。本发明实施例可以解决现有技术中计费和查询效率过低的技术问题,还能进一步的适应用户存在多域名加速的应用场景。
文档编号G06F17/30GK101924638SQ20101026956
公开日2010年12月22日 申请日期2010年8月31日 优先权日2010年8月31日
发明者井卫军, 姚永壮, 杨利军, 蒋建平, 郜时红 申请人:北京云快线软件服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1