性能报表的生成方法及装置的制作方法

文档序号:7688062阅读:247来源:国知局
专利名称:性能报表的生成方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种性能报表的生成方法及装置。
背景技术
性能报表包括了重要的KPI指标信息、异常告警信息以及配置参数信息,能辅助维护人员进行定位分析、制定维护方案、预防网络故障。通过性能报表,减轻了维护人员的工作负担,提高工作效率和故障定位的准确性,令运营商能随时掌握网络的动态变化情况。目前,网管系统提供大量的性能报表,这些报表的信息非常丰富。随着网管系统的容量增大,数据查询的周期变长,指标个数增多,这就造成性能报表的数据量显著增大,达到几十万条记录的规模。因此,当上述这些数据生成报表时,需要消耗大量内存甚至使内存溢出,导致性能报表无法生成,造成网管系统崩溃。

发明内容
针对相关技术中使用大量数据生成报表时需要消耗大量内存甚至使内存溢出的问题而提出本发明,为此,本发明的主要目的在于提供一种性能报表的生成方法及装置,以解决上述问题。为了实现上述目的,根据本发明的一个方面,提供了一种性能报表的生成方法。根据本发明的性能报表的生成方法包括获取用于生成性能报表的数据元素;分批将数据元素写入到可扩展标记语言(Extensible Markup Language,简称为XML)文件; 分批对XML文件进行解析,得到性能报表。优选地,获取用于生成性能报表的数据元素包括获取用于生成性能报表的原始数据;根据原始数据,构造数据元素。优选地,获取用于生成性能报表的原始数据包括解析用于生成性能报表的任务, 得到指标及约束条件;使用指标及约束条件,构造查询参数;使用查询参数查询数据库,得到原始数据。优选地,在存在多个用于生成性能报表的任务的情况下,分批将数据元素写入到 XML文件包括按照该多个任务的顺序,分别将该多个任务对应的数据元素写入到XML文件。 优选地,分批对XML文件进行解析,得到性能报表包括采用SAX技术,分批对XML 文件进行解析,得到Excel格式的性能报表。优选地,采用SAX技术,分批对XML文件进行解析,得到Excel格式的性能报表包括以下至少之一在解析到开始标记import的情况下,继续对XML文件进行逐行解析;在解析到开始标记section的情况下,继续对XML文件进行逐行解析;在解析到XML文件的结尾的情况下,生成Excel格式的性能报表。优选地,分批对XML文件进行解析,得到性能报表包括采用STX技术,按照预先设定的格式,分批对XML文件和图片进行转换,得到HTML格式的性能报表,其中图片是根据数据元素生成的。优选地,通过格式控制文件确定预先设定的格式,其中格式控制文件包括以下之一 ;HTML的整体框架、文字的字体、文字的颜色。为了实现上述目的,根据本发明的另一个方面,提供了一种性能报表的生成装置。根据本发明的性能报表的生成装置包括获取模块,用于获取用于生成性能报表的数据元素;写入模块,用于分批将数据元素写入到XML文件;解析模块,用于分批对XML 文件进行解析,得到性能报表。优选地,获取模块包括获取子模块,用于获取用于生成性能报表的原始数据;构造模块,用于根据原始数据,构造数据元素。本发明通过分批将数据元素写入到XML文件,并分批对该XML文件进行解析,从而无须将整个XML文件读入内存,大大降低了对内存的要求,进而可以保证性能报表的生成。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的性能报表的生成系统的结构框图;图2是根据本发明实施例的性能报表的生成方法的流程图;图3是根据本发明优选实施例的生成XML文件的流程图;图4是根据本发明优选实施例的生成EXCEL格式性能报表的流程图;图5是根据本发明优选实施例的生成HTML格式性能报表的流程图;图6是根据本发明实施例的性能报表的生成装置的结构框图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。图1是根据本发明实施例的性能报表的生成系统的结构框图,如图1所示,包括报表模板模块12,报表生成模块14和界面展示模块16。下面对其结构进行详细描述。报表模板模块12,根据配置文件解析出报表的各种任务及每种任务的指标和限制条件;报表生成模块14,连接至报表模板模块12,根据每个报表任务,逐一分析要查询的指标,查询性能指标生成原始数据,原始数据生成XML文件,最后将其解析转换为EXCEL和 HTML格式的报表;界面展示模块16,连接至报表生成模块14,生成的HTML报表,在界面上以不同方式进行展示;生成的EXCEL报表,可导出在本地查看。图2是根据本发明实施例的性能报表的生成方法的流程图,该性能报表的生成方法主要通过上述报表生成模块14的操作而实现,如图2所示,包括如下的步骤S202至步骤 S206。步骤S202,获取用于生成性能报表的数据元素。步骤S204,分批将数据元素写入到XML文件。步骤S206,分批对XML文件进行解析,得到性能报表。
相关技术中,当使用大量数据生成报表时,需要消耗大量内存甚至使内存溢出。同时,发明人发现一味的增加内存资源并不能解决该问题,进而,发明人发现相关技术中的将 XML文件全部加载到内存中进行解析才是该问题出现的根源。因此,本发明实施例中,通过分批将数据元素写入到XML文件,并分批对该XML文件进行解析,从而无须将整个XML文件读入内存,大大降低了对内存的要求,进而可以保证性能报表的生成。优选地,获取用于生成性能报表的数据元素包括获取用于生成性能报表的原始数据;根据原始数据,构造数据元素。优选地,获取用于生成性能报表的原始数据包括解析用于生成性能报表的任务, 得到指标及约束条件;使用指标及约束条件,构造查询参数;使用查询参数查询数据库,得到原始数据。优选地,在存在多个用于生成性能报表的任务的情况下,分批将数据元素写入到 XML文件包括按照该多个任务的顺序,分别将该多个任务对应的数据元素写入到XML文件。本优选实施例考虑到了存在多个任务的情况。通过区分该多个任务,并按照其顺序分别写入到XML文件,可以生成该多个任务对应的性能报表,并且不会因为该多个任务的数据量过大而消耗大量内存。优选地,分批对XML文件进行解析,得到性能报表包括采用SAX (Simple API for XML)技术,分批对XML文件进行解析,得到Excel格式的性能报表。需要说明的是,本优选实施例中的SAX,其原理是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。这样不用将整个XML加载到内存,特别是对大型(数据量大)文件能够提供更快更有效的解析方法。优选地,采用SAX技术,分批对XML文件进行解析,得到Excel格式的性能报表包括以下至少之一在解析到开始标记import的情况下,继续对XML文件进行逐行解析;在解析到开始标记section的情况下,继续对XML文件进行逐行解析;在解析到XML文件的结尾的情况下,生成Excel格式的性能报表。下面结合实例对本优选实施例中的解析过程进行描述。假设XML文件为<doc><para>Hello, World ! </para></doc>则其解析的过程为1.读到文档开始标识符,触发事件start document ;2.读到元素开始标识符,触发事件start element,解析出元素doc ;3.读到元素开始标识符,触发事件start element,解析出元素para ;4.读到文字开始标识符,解析出文字Hello,World !5.读到元素结束标识符,触发事件end element ;6.读到元素结束标识符,触发事件end element ;7.读到元素结束标识符,触发事件end document ;
8.文档解析完毕。优选地,分批对XML文件进行解析,得到性能报表包括采用STX (Streaming Transformations for XML)技术,按照预先设定的格式,分批对XML文件和图片进行转换, 得到HTML格式的性能报表,其中图片是根据数据元素生成的。需要说明的是,本优选实施例中的STX,其是一种用于XML的语言流转换技术,不需要将整个XML文件加载到内存中,顺序读取解析每行的数据,就可以将XML文件按特定格式转换为EXCEL文件,大大降低了内存的占用。优选地,通过格式控制文件确定预先设定的格式,其中格式控制文件包括以下之一 ;HTML的整体框架、文字的字体、文字的颜色。优选地,在得到性能报表之后,上述方法还包括通过界面展示模块16在浏览器中显示该性能报表或者通过EXCEL导出该性能报表。下面结合图3至图5,分别对本发明实施例的生成XML文件的流程、生成EXCEL格式性能报表的流程以及生成HTML格式性能报表的流程进行详细描述。图3是根据本发明优选实施例的生成XML文件的流程图,如图3所示,包括如下的步骤S302至步骤S316。步骤S302,获取并解析待处理的每个报表任务。步骤S304,检查报表任务是否都执行完毕,如果是则转步骤S314,否则继续进行步骤S306。步骤S306,处理每一个报表任务,解析出每个报表任务的指标集合、指标及约束条件。步骤S308,解析指标是否合法,即指标的网元类型是否正确,指标集合是否包含此指标,如果是则继续进行步骤S310,否则转步骤S306。步骤S310,构造查询参数查询。步骤S312,获取查询结果,根据结果生成指标时间点或时间段内变化趋势的图片, 构造XML的节点和每个报表任务的链接。步骤S314,报表任务执行完毕,创建SAX转换工厂。步骤S316,采用SAX解析事件,顺序写入每个报表任务的数据,生成包含指标数据的 XML。图4是根据本发明优选实施例的生成EXCEL格式性能报表的流程图,如图4所示, 包括如下的步骤S402至步骤S416。步骤S402,创建SAX解析器,为解析XML做准备。步骤S404,解析器对XML进行解析,从头至尾读取每行数据,产生相应的一些事件。步骤S406,判断是否到了文件末尾,如果是则转步骤S416,如果不是则继续进行步骤S408。步骤S408,判断是否遇到开始标记import,如果遇到则是报表的根节点,继续进行步骤S410,否则转步骤S404。步骤S410,处理这个节点元素的数据及子节点。步骤S412,判断是否遇到开始标记section,如果遇到则是报表的每个sheet页,继续进行步骤S414,否则转步骤S408。步骤S414,处理数据,读取报表每个sheet页的数据并写入。步骤S416,解析完XML文件,生成EXCEL格式报表。图5是根据本发明优选实施例的生成HTML格式性能报表的流程图,如图5所示, 包括如下的步骤S502至步骤S508。步骤S502,读取存有指标数据和图片链接的XML文件。步骤S504,读取HTML格式控制xls文件,这个文件里定义了 HTML的整体框架、文
字的字体、颜色等信息。步骤S506,拷贝图片文件和XML文件、格式控制文件到指定目录。步骤S508,数据信息加上格式控制文件转换为HTML格式报表。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明实施例提供了一种性能报表的生成装置,该性能报表的生成装置可以用于实现上述性能报表的生成方法。图6是根据本发明实施例的性能报表的生成装置的结构框图,如图6所示,包括获取模块62、写入模块64和解析模块66。下面对其结构进行详细描述。获取模块62,用于获取用于生成性能报表的数据元素;写入模块64,连接至获取模块62,用于分批将获取模块62获取的数据元素写入到XML文件;解析模块66,连接至写入模块64,用于分批对写入模块64写入数据元素的XML文件进行解析,得到性能报表。相关技术中,当使用大量数据生成报表时,需要消耗大量内存甚至使内存溢出。同时,发明人发现一味的增加内存资源并不能解决该问题,进而,发明人发现相关技术中的将 XML文件全部加载到内存中进行解析才是该问题出现的根源。因此,本发明实施例中,通过写入模块64分批将数据元素写入到XML文件,并通过解析模块66分批对该XML文件进行解析,从而无须将整个XML文件读入内存,大大降低了对内存的要求,进而可以保证性能报表的生成。优选地,获取模块62包括获取子模块622和构造模块624。下面对其结构进行详细描述。获取子模块622,用于获取用于生成性能报表的原始数据;构造模块624,连接至获取子模块622,用于根据获取子模块622获取的原始数据,构造数据元素。需要说明的是,装置实施例中描述的性能报表的生成装置对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。综上所述,根据本发明的上述实施例,提供了一种性能报表的生成方法及装置。本发明通过分批将数据元素写入到XML文件,并分批对该XML文件进行解析,从而无须将整个 XML文件读入内存,大大降低了对内存的要求,进而可以保证性能报表的生成。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种性能报表的生成方法,其特征在于,包括 获取用于生成性能报表的数据元素;分批将所述数据元素写入到可扩展标记语言XML文件; 分批对所述XML文件进行解析,得到所述性能报表。
2.根据权利要求1所述的方法,其特征在于,获取用于生成性能报表的数据元素包括 获取用于生成性能报表的原始数据;根据所述原始数据,构造所述数据元素。
3.根据权利要求2所述的方法,其特征在于,获取用于生成性能报表的原始数据包括 解析用于生成性能报表的任务,得到指标及约束条件;使用所述指标及所述约束条件,构造查询参数; 使用所述查询参数查询数据库,得到所述原始数据。
4.根据权利要求3所述的方法,其特征在于,在存在多个所述用于生成性能报表的任务的情况下,分批将所述数据元素写入到XML文件包括按照该多个任务的顺序,分别将该多个任务对应的数据元素写入到所述XML文件。
5.根据权利要求1至4中任一项所述的方法,其特征在于,分批对所述XML文件进行解析,得到所述性能报表包括采用SAX技术,分批对所述XML文件进行解析,得到Excel格式的性能报表。
6.根据权利要求5所述的方法,其特征在于,采用SAX技术,分批对所述XML文件进行解析,得到Excel格式的性能报表包括以下至少之一在解析到开始标记import的情况下,继续对所述XML文件进行逐行解析; 在解析到开始标记section的情况下,继续对所述XML文件进行逐行解析; 在解析到所述XML文件的结尾的情况下,生成所述Excel格式的性能报表。
7.根据权利要求1至4中任一项所述的方法,其特征在于,分批对所述XML文件进行解析,得到所述性能报表包括采用STX技术,按照预先设定的格式,分批对所述XML文件和图片进行转换,得到HTML格式的性能报表,其中所述图片是根据所述数据元素生成的。
8.根据权利要求7所述的方法,其特征在于,通过格式控制文件确定所述预先设定的格式,其中所述格式控制文件包括以下之一 ;HTML的整体框架、文字的字体、文字的颜色。
9.一种性能报表的生成装置,其特征在于,包括 获取模块,用于获取用于生成性能报表的数据元素;写入模块,用于分批将所述数据元素写入到可扩展标记语言XML文件; 解析模块,用于分批对所述XML文件进行解析,得到所述性能报表。
10.根据权利要求9所述的装置,其特征在于,所述获取模块包括 获取子模块,用于获取用于生成性能报表的原始数据;构造模块,用于根据所述原始数据,构造所述数据元素。
全文摘要
本发明公开了一种性能报表的生成方法及装置,该方法包括获取用于生成性能报表的数据元素;分批将数据元素写入到XML文件;分批对XML文件进行解析,得到性能报表。本发明无须将整个XML文件读入内存,大大降低了对内存的要求,进而可以保证性能报表的生成。
文档编号H04L12/24GK102215126SQ201110152520
公开日2011年10月12日 申请日期2011年6月8日 优先权日2011年6月8日
发明者刘慧莲 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1