一种报表制作方法及其系统的制作方法

文档序号:6584767阅读:161来源:国知局
专利名称:一种报表制作方法及其系统的制作方法
技术领域
本发明涉及通信领域中的数据处理技术,尤其涉及一种报表制作方法及其系统。
背景技术
作为数据管理维护部门,一个非常重要的日常工作是向其它各数据使用部门提供 各种各样的供分析使用的性能数据报表。考虑到性能指标数据库负载可控、历史报表数据 的保留、报表格式的灵活性等方面问题,数据报表一般都是以Excel方式进行提供,并通过 后台程序定时制作供数据使用部门下载、查看。在报表需求量较小时,通常针对每一种或几种报表编写一个制作程序,并将多个 报表制作程序配置在同一台报表制作服务器上,由一台报表制作服务器承担全部的报表制 作工作。随着时间及业务的发展,数据报表需求数量日益增加,用于制作报表的程序也随 之不断增加,制作报表所需的开销也越来越大,当现有的服务器不能满足报表制作的负载 时,便需要增加一台新的服务器,分担运行部分报表制作程序。随着数据报表需求数量的进 一步增加,就会需要更多的报表制作服务器来完成报表制作工作。图1示出了现有技术中,通过多台报表制作服务器进行报表制作负载分担的示意 图。该示意图示出了 N台报表制作服务器,M个性能指标数据库,1个报表文件服务器,其 中,性能指标数据库是报表的数据来源,报表文件服务器用于保存制作完成的报表文件。每台报表制作服务器制作预先分配给它的一部分报表,并根据报表的数据来源, 预先配置与一个或多个到性能指标数据库的连接。各报表制作服务器之间的关系是独立 的,每台报表服务器只负责完成分配给它的报表的制作。当需要制作新的报表时,需要维护人员根据当前各报表制作服务器负载情况,人 为将新的报表分配给某报表制作服务器制作。同样,当某个报表发生变化时,维护人员要确 定该报表对应的报表制作服务器并进行配置或程序修改。发明人在实现本发明的过程中,发现上述现有技术存在以下缺陷(1)报表制作服务器的负载不可控由于需要人为静态的分配某个报表制作服务器上制作的报表,且制作某个报表所 需的开销很难量化,因此分配给每台报表制作服务器上制作的报表种类和数量只能靠人为 经验进行分配,很难做到服务器性能的合理利用,很容易导致服务器性能不能充分利用或 负载过重的问题。(2)可靠性差,单台报表制作服务器故障会导致部分报表无法制作当某台报表制作服务器出现故障时,分配给该报表制作服务器上制作的报表将全 部无法制作完成。

发明内容
本发明实施例提供了一种报表制作方法及其系统,用以解决现有报表制作技术制作报表的服务器负载可控性差、报表制作的可靠性差的问题。本发明实施例提供的技术方案包括一种报表制作方法,包括报表任务生成服务器根据各报表的配置信息,定时为当前需要制作的报表生成相 应的报表制作任务,并将生成的报表制作任务存储到报表队列;当设置的多个报表制作服务器中有报表制作服务器当前没有报表制作任务可执 行时,该报表制作服务器从所述报表队列获取报表制作任务,并执行获取到的报表制作任务。一种报表制作系统,包括报表任务生成服务器、任务队列单元,以及多个报表制 作服务器,其中报表任务生成服务器,用于根据各报表的配置信息,定时为当前需要制作的报表 生成相应的报表制作任务;任务队列单元,用于存储所述报表任务生成服务器生成的报表制作任务;报表制作服务器,用于在该报表制作服务器当前没有报表制作任务可执行时,从 所述报表队列单元获取报表制作任务,并执行获取到的报表制作任务。本发明的实施例,一方面,通过由报表任务生成服务器统一生成报表制作任务并 存于报表队列,使各个报表制作服务器都可以在空闲时获取报表制作任务并执行,实现了 报表制作服务器的动态负载分担,一定程度上避免了现有技术中某台报表制作服务器性能 没有被充分利用而另外某台报表制作服务器负载过重的问题,从而提高了报表制作的负载 可控性;另一方面,由于每台报表制作服务器上的制作任务都是动态获取的,因此当某台报 表制作服务器出现故障时,任务队列中的报表制作任务仍可以由其它各报表制作服务器分 担完成,一定程度上避免了现有技术中单台报表制作服务器故障便会导致部分报表无法制 作的问题,从而提高了报表制作的可靠性。


图1为现有技术中多台报表制作服务器进行报表制作负载分担的示意图;图2为本发明实施例提供的基于负载分担的报表制作系统的结构示意图;图3为本发明实施例提供的基于负载分担的报表制作流程示意图;图4为本发明实施例提供的报表制作服务器的报表制作流程示意图。
具体实施例方式针对现有技术存在的问题,本发明实施例提供了一种基于负载分担的报表制作方 法及其系统,以提高报表制作系统整体的可靠性和负载分担的可靠性,并减轻报表制作服 务器的维护工作量。下面结合附图对本发明实施例进行详细描述。参见图2,为本发明实施例提供的报表制作系统的结构示意图。如图所示,该报表制作系统包括报表配置数据库201、报表任务生成服务器202、 任务队列(或称任务队列单元)203、报表制作服务器204、性能指标数据库205、报表文件服 务器206,还可以进一步包括故障监测服务器207。其中,报表制作服务器204可以有多个(图中所示为N个);性能指标数据库205作为报表的数据来源,也可以是存储其他数据的 数据库,性能指标数据库205可以有多个(图中所示为M个)。每个报表制作服务器204都可以访问任务队列203,以获取报表制作任务;每个报 表制作服务器204都可以根据报表制作的需要,与相应的性能指标数据库205连接,以获取 制作报表用户的数据;每个报表制作服务器204都可以与报表文件服务器206连接,以上传 制作完成的报表。以上报表制作系统各组成部分是按照功能划分的,在硬件实现上,可以将报表配 置数据库201、任务队列203以及任务队列203集成在一个服务器硬件设备上,每个报表制 作服务器204都可以由独立的服务器硬件设备实现,各性能指标数据库205可以集成在一 个服务器硬件设备上实现。上述报表制作系统中的各组成部分的主要功能,包括报表配置数据库201 该数据库可以集中保存所有报表的配置信息,报表配置信 息可以包括报表的标识、报表的时间粒度(如小时报、日报、周报、月报等,即需要每小时、 每天、每周或每月生成报表)、报表的制作延时(即生成报表用的时间长度)等,这些配置信 息将用于报表任务的生成。报表任务生成服务器202 该服务器可以根据报表配置数据库201中存储的报表 配置信息,定时生成报表制作任务,并将生成的报表制作任务发送到报表任务队列203中。 报表任务生成服务器202只负责生成报表制作任务并发送给任务队列203,不考虑生成的 任务将由哪台报表制作服务器204进行制作。任务队列203 可以存储当前待处理的报表制作任务。任务队列可以有多种具体 的实现方式,如使用各种消息队列中间件,或通过数据库模拟任务队列实现。任务队列中 的每一个报表制作任务对应一个报表的制作,报表制作任务可以包含以下属性报表标识、 报表的时间粒度,报表制作服务器204根据报表制作任务属性可以唯一确定并完成一个报 表的制作工作。每一个报表制作任务还可以具有一个重试次数属性和一个最大重试次数属 性,其中,最大重试次数属性的字段值是预先设置的,表示该报表制作任务执行失败后所允 许再次执行的次数,重试次数属性用来记录该任务已经执行的次数,是执行该任务的报表 制作服务器204在该任务执行失败时记录更新的。报表制作服务器204 用于从任务队列中获取报表制作任务并执行,以进行报表 制作。报表制作服务器204可以有若干台,每台都可以进行各种报表的制作,并且每一台报 表制作服务器204的配置可以完全相同,包括部署的应用、数据库连接配置等。每个报表制 作服务器204可以设置并发任务数,即可以同时执行的报表制作任务。并发任务数可以根 据报表制作服务器204的性能进行设置,并发任务数决定了该报表制作服务器204的最大 负载。性能指标数据库205 该数据库是报表的数据来源,如话务网管性能数据库等。报表文件服务器206 该服务器用于保存报表制作服务器204制作完成的报表文 件。故障监测服务器207 该服务器可以实时监测某一台报表制作服务器204当前是 否活跃(如通过心跳机制判定报表制作程序是否正常运行)及当前正在处理的报表制作任 务,当发现某台报表制作服务器204处于非活跃状态时(如宕机、网络故障等),故障监测服务器207将触发告警事件,并将该报表制作服务器204正在处理的任务放回任务中,以确保 任务不会丢失。基于图2所示的报表制作系统,报表的制作过程可如图3所示,该过程可以包括两 个流程一个是生成报表制作任务的流程(如图3中的步骤301 304),另一个是执行报 表任务以生成报表的流程(如图3中的步骤305 307),这两个流程相对独立。生成报表制作任务的流程可以定时进行,其时间间隔最好不超过报表的最小时间 粒度,例如,如果报表的最小时间粒度是小时,则各个设定的报表制作任务生成时间的时间 间隔可以设置为1小时。考虑到报表的制作延时,可以从期望的报表生成时刻起提前一定 时长(最好不小于报表的制作延时)开始启动报表制作任务的生成,以保证在期望的时刻 达到时生成报表。例如,如果报表的最小时间粒度是小时,期望的报表生成时刻是在每个整 点达到时生成报表,报表的制作时延是1分钟,则可以设定在每个整点时间到达之前的1分 钟(或更早)定时启动生成报表制作任务的流程。当预先设定的报表制作任务的生成时间到达时,执行以下步骤步骤301 302、报表任务生成服务器202查询报表配置数据库201,获取所有报 表的配置信息,包括报表标识、时间粒度、制作延时等;步骤303、报表任务生成服务器202根据报表配置信息,确定当前时间应制作的报 表,生成相应报表的制作任务;该步骤中,报表任务生成服务器202可以根据当前的系统时间和报表的时间粒度 来确定当前时间或者在下一次定时时间(即启动报表制作任务生成流程的时间)到达之前 应制作的报表。例如,如果设定在每个整点之前的5分钟启动报表制作任务的生成流程,报 表的时间粒度包括小时报、日报、周报,则在每个整点之前的5分钟,为所有时间粒度为小 时的报表生成相应的报表制作任务,如果当前系统时间为差5分钟到零点,则为时间粒度 为日的报表生成报表制作任务,如果当前系统时间为星期日且差5分钟到零点,则为时间 粒度为周的报表生成报表制作任务。报表制作任务属性可以包括对应的报表标识,还可以包括重试次数以及为生成的 报表制作任务设置的最大重试次数,还可以包括报表时间粒度等。步骤304、报表任务生成服务器202将生成的报表制作任务发送到任务队列203中 存储。报表队列203可以采用先进先出的机制管理其中的报表制作任务。当报表制作服务器204当前空闲时,执行以下步骤步骤305 306、报表制作服务器204查询任务队列203,如果任务队列203中存 储有报表制作任务,则获取报表制作任务;该步骤中,报表制作服务器204可预先被设置有允许并行执行的报表制作任务数 量,报表制作服务器204可以根据其能够并行执行的报表制作任务数量获取相应数量的报 表制作任务;步骤307、报表制作服务器204执行获取到的报表制作任务,以生成相应的报表, 并可以进一步将生成的报表上传至报表文件服务器207。上述流程中,报表制作服务器204在根据获取到的报表制作任务生成报表时,可 以读取该任务携带的报表标识,根据该报表标识从相应的性能指标数据库205获取数据, 生成报表,并将生成的报表以该报表制作任务中的表报标识属性字段的值进行标识。其中,可以预先设置各报表标识与性能指标数据库205的对应关系(可以是一对一或一对多的关 系),并将该对应关系信息配置到各报表制作服务器204中,以便报表制作服务器204根据 报表标识连接到相应的性能指标数据库205。在本发明的另一实施例中,可以预先设置各报表标识与性能指标数据库205的对 应关系,并将该对应关系信息配置到报表配置数据库201中,报表任务生成服务器202在生 成的报表制作任务中添加有数据库连接属性,其属性值为性能数据库205的标识,表示需 要从这些性能数据库获取数据以生成报表,这样,各报表制作服务器204无需配置报表标 识与性能指标数据库205的对应关系,只要根据报表制作任务中携带的数据库连接属性所 指示出的性能指标数据库标识与对应数据库连接,从对应的性能指标数据库205获取数据 以生成报表。如果报表制作服务器204在生成报表时失败,则可以将对应的报表制作任务返回 给任务队列203,使其能够再次被调用执行。针对每个报表制作服务器204,当报表制作服务器204当前空闲(即没有报表制作 任务可执行)时,执行以下步骤步骤401、查询任务队列;步骤402、判断是否能够获取到报表制作任务,如果获取到任务,则执行步骤404, 如果没有获取到任务,则执行步骤403 ;该步骤中,如果任务队列中有待处理的报表制作任务,通常报表制作服务器204 可以获取到任务;报表制作服务器204还可以根据为其设置的并发任务数,获取相应数量 的报表执行任务;步骤403、延时一定时间后再次返回步骤401查询任务队列;步骤404、根据获取到的报表制作任务制作报表;该步骤中,报表制作服务器204可以根据报表制作任务中的数据库连接属性所指 示的性能指标数据库的相关信息,如数据库名称或标识,与相应的性能指标数据库205建 立连接,以获取制作报表用的数据,然后根据报表制作服务器204上配置的报表制作软件 程序生成报表,并以报表制作任务中的报表标识属性所指示出的标识来标识生成的报表;步骤405、判断报表制作是否成功,如果成功,则执行步骤406,否则执行步骤407 ;步骤406、将制作成功的报表上传至报表文件服务器206中保存;步骤407、对于执行失败的报表制作任务,判断该任务的执行次数是否超过为其设 置的最大重试次数,如果未超过,则执行步骤408 ;如果超过,则执行步骤409 ;该步骤中,针对执行失败的报表制作任务,报表制作服务器204将该任务中的重 试次数属性的字段值与最大重试次数属性的字段值进行比较,以判断是否超过最大重试次 数。步骤408、将执行失败的报表制作任务的重试次数加1 (初始的重试次数可设为 0),如将该执行失败的报表制作任务的重试次数属性的字段值加1,然后将该任务放回到任 务队列中,以便等待被再次调用;步骤409、丢弃该执行失败的任务,并可进一步记录日志,以便后续分析和查找该 报表制作任务执行失败的原因。上述流程中,报表制作服务器204获取任务的机制可以采用任务抢先机制,只有在报表制作服务器204空闲时,才会对任务队列进行轮询获取任务,并且任务队列中的任 务,只会被空闲的报表制作服务器204获得。根据以上描述可以看出,本发明的实施例与现有技术相比,具有以下几方面的优 势一方面,通过由报表任务生成服务器统一生成报表制作任务并存于报表队列,使 各个报表制作服务器都可以在空闲时获取报表制作任务并执行,实现了报表制作服务器 的动态负载分担,使所有的报表制作负载被自动分配到各报表制作服务器,一定程度上避 免了某台报表制作服务器性能没有被充分利用而另外某台报表制作服务器负载过重的问 题;另一方面,由于每台报表制作服务器上的制作任务都是动态获取的,因此当某台 报表制作服务器出现故障时,任务队列中的报表制作任务仍可以由其它各报表制作服务器 分担完成,一定程度上避免了现有方案中单台报表制作服务器故障便会导致部分报表无法 制作的问题;再一方面,现有技术中,由于每个报表制作服务器上负责完成不同的报表制作工 作,因此管理维护人员需记录每台报表制作服务器的报表分配情况,并对每台报表制作服 务器制定维护、监控策略,导致了较大的维护工作量;另外,如果为确保报表制作服务器出 现故障后的尽快恢复,在系统中需要增加备份服务器,也进一步增大了维护的难度和工作 量。而本发明的实施例中,维护人员不用关心每台报表制作服务器上的任务分配的负载,当 报表种类增加或减少时,维护人员只需维护报表配置数据库即可;另外可以通过简单的增 加报表制作服务器,即可以提升系统整体的处理性能。由于每台报表制作服务器上的应用 配置完全相同,因此各报表制作服务器具有相同的维护和监控策略,从而降低了维护的工 作量,提高了系统的可维护性。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种报表制作方法,其特征在于,包括报表任务生成服务器根据各报表的配置信息,定时为当前需要制作的报表生成相应的 报表制作任务,并将生成的报表制作任务存储到报表队列;当设置的多个报表制作服务器中有报表制作服务器当前没有报表制作任务可执行时, 该报表制作服务器从所述报表队列获取报表制作任务,并执行获取到的报表制作任务。
2.如权利要求1所述的方法,其特征在于,如果报表制作服务器执行报表制作任务失 败,则还包括报表制作服务器判断执行失败的报表制作任务的执行次数是否超过该报表制作任务 最大重试次数,如果未超过,将该报表制作任务的执行次数加1后,将该报表制作任务放回 所述报表队列;否则,丢弃该报表制作任务。
3.如权利要求2所述的方法,其特征在于,所述报表任务生成服务器生成的报表制作 任务包括重试次数属性和最大重试次数属性,所述最大重试次数属性的属性值为预设的最 大重试次数;所述报表制作服务器通过将执行失败的报表制作任务的重试次数属性值与最大重试 次数属性值进行比较来判断该报表制作任务的执行次数是否超过最大重试次数,通过将执 行失败的报表制作任务的重试次数属性值加1来将该报表制作任务的执行次数加1。
4.如权利要求1或2所述的方法,其特征在于,报表制作服务器从所述报表队列获取报 表制作任务,具体为报表制作服务器根据为其设置的可以并行执行的报表制作任务数量, 从所述报表队列获取相应数量的报表制作任务。
5.如权利要求1或2所述的方法,其特征在于,每个报表制作服务器中配置有每个报 表的报表标识与数据库标识的对应关系,该数据库标识所对应的数据库是该报表的数据来 源;报表制作服务器执行获取到报表制作任务,具体为根据该报表制作任务对应的报表 标识以及所述对应关系,从与该表报标识对应的数据库中获取数据,根据获取到的数据执 行报表制作任务。
6.如权利要求1或2所述的方法,其特征在于,所述报表任务生成服务器所生成的报表 制作任务中包括数据库连接属性,其属性值为数据库标识,该数据库标识对应的数据库是 该报表制作任务所制作的报表的数据来源;报表制作服务器执行获取到报表制作任务,具体为根据该报表制作任务的数据库连 接属性的属性值,从相应数据库中获取数据,根据获取到的数据执行报表制作任务。
7.如权利要求1或2所述的方法,其特征在于,所述报表的配置信息包括报表的标 识、报表的时间粒度、制作报表所花费的时间长度;根据各报表的配置信息定时为当前需要制作的报表生成相应的报表制作任务,具体为根据最小的时间粒度以及制作报表所花费的时间长度设置定时时间,使两个定时时间 之间的时间间隔不大于该最小的时间粒度,以及设置的定时时间比报表的期望生成时间至 少提前与制作报表所花费的时间长度相同的时间长度;在定时时间达到时根据各报表的时间粒度确定当前需要制作的报表,并为确定出的报 表生成报表制作任务,其中携带相应报表的标识。
8.—种报表制作系统,其特征在于,包括报表任务生成服务器、任务队列单元,以及 多个报表制作服务器,其中报表任务生成服务器,用于根据各报表的配置信息,定时为当前需要制作的报表生成 相应的报表制作任务;任务队列单元,用于存储所述报表任务生成服务器生成的报表制作任务;报表制作服务器,用于在该报表制作服务器当前没有报表制作任务可执行时,从所述 报表队列单元获取报表制作任务,并执行获取到的报表制作任务。
9.如权利要求8所述的系统,其特征在于,所述报表制作服务器还用于在执行报表制 作任务失败时,判断执行失败的报表制作任务的执行次数是否超过该报表制作任务最大重 试次数,如果未超过,将该报表制作任务的执行次数加1后,将该报表制作任务放回所述报 表队列单元;否则,丢弃该报表制作任务。
10.如权利要求9所述的系统,其特征在于,所述报表任务生成服务器生成的报表制作 任务包括重试次数属性和最大重试次数属性,所述最大重试次数属性的属性值为预设的最 大重试次数;所述报表制作服务器具体用于通过将执行失败的报表制作任务的重试次数属性值与 最大重试次数属性值进行比较来判断该报表制作任务的执行次数是否超过最大重试次数, 通过将执行失败的报表制作任务的重试次数属性值加1来将该报表制作任务的执行次数 加1。
11.如权利要求8或9所述的系统,其特征在于,所述报表制作服务器具体用于根据 为其设置的可以并行执行的报表制作任务数量,从所述报表队列获取相应数量的报表制作 任务。
12.如权利要求8或9所述的系统,其特征在于,所述报表制作服务器中配置有每个报 表的报表标识与数据库标识的对应关系,该数据库标识所对应的数据库是该报表的数据来 源;所述报表制作服务器具体用于根据报表制作任务对应的报表标识以及所述对应关 系,从与该表报标识对应的数据库中获取数据,根据获取到的数据执行报表制作任务。
13.如权利要求8或9所述的系统,其特征在于,所述报表任务生成服务器所生成的报 表制作任务中包括数据库连接属性,其属性值为数据库标识,该数据库标识对应的数据库 是该报表制作任务所制作的报表的数据来源;所述报表制作服务器具体用于根据报表制作任务的数据库连接属性的属性值,从相 应数据库中获取数据,根据获取到的数据执行报表制作任务。
14.如权利要求8或9所述的系统,其特征在于,所述报表的配置信息包括报表的标 识、报表的时间粒度、制作报表所花费的时间长度;所述报表任务生成服务器具体用于根据最小的时间粒度以及制作报表所花费的时间 长度设置定时时间,使两个定时时间之间的时间间隔不大于该最小的时间粒度,以及设置 的定时时间比报表的期望生成时间至少提前与制作报表所花费的时间长度相同的时间长 度;以及,在定时时间达到时根据各报表的时间粒度确定当前需要制作的报表,并为确定出 的报表生成报表制作任务,其中携带相应报表的标识。
全文摘要
本发明公开了一种报表制作方法及其系统,该系统包括报表任务生成服务器、任务队列单元,以及多个报表制作服务器,其中报表任务生成服务器,用于根据各报表的配置信息,定时为当前需要制作的报表生成相应的报表制作任务;任务队列单元,用于存储所述报表任务生成服务器生成的报表制作任务;报表制作服务器,用于在该报表制作服务器当前没有报表制作任务可执行时,从所述报表队列单元获取报表制作任务,并执行获取到的报表制作任务。采用本发明,可以提高制作报表的服务器的负载可控性,以及提高报表制作的可靠性。
文档编号G06F9/50GK102081757SQ20091023865
公开日2011年6月1日 申请日期2009年11月30日 优先权日2009年11月30日
发明者李荣盛, 杨芳芳, 柴华, 沈萌, 王晟, 顾斌, 黄堃 申请人:中国移动通信集团天津有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1