一种快速完成大数据处理的方法和报表系统的制作方法

文档序号:6610652阅读:255来源:国知局

专利名称::一种快速完成大数据处理的方法和报表系统的制作方法
技术领域
:本发明涉及一种无线通信
技术领域
的大数据处理系统和方法,尤其涉及各通讯网管系统中各类业务(性能,告警,报表等)大数据呈现的系统和方法。
背景技术
:在现有技术的电信网络管理中通常存在大数据量的处理,以网管系统中报表管理为例来说明,报表管理为系统管理员提供了对网管系统重要信息的统一报表输出功能。利用报表管理功能,系统管理员能定制报表任务,输出报表数据,从而方便监控网管系统的运行。为了更好地利用报表数据分析系统的运行情况,常需要快速统计大量性能、告警、配置等的数据,以便维护人员快速对系统运行情况做出评估。报表所需的各列数据最初来自数据库,一种可以直接对应到数据库表字段上;另一种是指标,通常是在存储过程脚本中完成对指标的处理,存储过程的写法和数据库技术紧密相关,该方法不通用,存在大量冗余脚本,比较耗费工作量。而在现有系统中,当报表各列数据含有指标时,网管系统会先从数据库中查询原始数据,再在内存中进行分組和统计运算,例如求平均、求和、求最大、求最小、及其它自定义的统计方式;以及格式的填充,这样既耗内存,速度又很慢,随着报表数据越来越多地参与综合分析系统运行情况,统计的原始数据量呈数量级地增长,每次查询报表数据会很耗时,同时终端呈现时也会很耗内存。如果把报表格式和查询报表数据二者分开,尽可能利用数据库的分组和过滤技术查询出参与呈现报表数据各列的原始统计值,再进行指标的复合统计,就可大大提高速度且降低内存。为了解决上述现有技术中所遇到的问题,需要提供一种有效、便捷的方法来实现大数据报表的呈现。本发明中涉及的几个名词解释如下报表模板描述报表需要呈现的数据格式信息,如数据名称,各数据区域格式信息(颜色,字体,排列方式等)。指标一种是由多个数据库表字段经过四则混合运算或特殊处理(比如除零保护,边界异常值保护等)的复合字段。分组将同类数据区别开,方便进行汇总,类似数据库的group技术。排序将数据按某个字段或指标按升序或降序排列,类似数据库的orderby技术。过滤将不符合条件的数据筛选掉,类似数据库的where技术。格式化将数据按数据类型作格式化输出,如数字类型的可以显示为科学记数法,也可以显示为带千位分隔符的,如12356.789,可以格式化为1.2357E4,也可以才各式化为12,356.789。JavaCC:JavaCompilerCompiler,词法分才斤生成器。
发明内容本发明的目的在于提供一种快速完成大数据处理的方法和报表系统,用于查询大数据,并快速呈现,以提高终端响应速度,同时减轻系统负荷。本发明的技术方案包括一种快速完成大凄t据处理的方法,其包括以下步骤A、选择报表模板,并设置报表查询的参数;B、一预编译处理模块根据所选择的报表模板和参数信息,形成预编译数据结构;C、一数据处理;f莫块从数据库中查询原始结果集,并根据过滤表达式过滤所述原始结果集;D、所述数据处理纟莫块对过滤后的所述结果集进行排序和分组,并根据模板信息进行格式化处理,将格式化信息和结果集封装为报表结果结构;E、所述数据处理模块将报表结果结构封装为查询结果集,并返回给客户端进4亍呈现。所述的方法,其中,所述步骤D还包括如果在所述报表模板中设置排序,则对所有数据进行排序,得到排序后的结果集;如果在报表模板中既设置排序又设置分组,则不做排序,在分组处理过程中进行排序。所述的方法,其中,所述步骤D还包括如果对所述报表模板设置分组,根据排序后的结果集如果分组字段发生变化即表示新分组产生,并对报表数据进行分组并计算小计;如果在报表模板中即设置排序又设置分组,则对每组数据进行排序,输出数据集。所述的方法,其中,所述步骤C还包括如果所述报表模板中含公式的指标,则计算所有指标值,得到公式计算后的结果集。一种快速完成大数据处理的报表系统,其中,其包括一表结构管理模块、数据预编译模块、数据处理模块,以及与所述数据处理模块相连接的终端界面模块,在该数据处理模块中设置有控制单元;所述表结构管理模块连接有多个应用数据库;所述数据预编译模块连接有多个报表模板;所述数据处理模块用于将报表从数据库查询出的原始结果集进行再次分析处理,并封装为适合呈现的数据结构;所述控制单元用于分析来自所述数据预编译模块的编译数据结构。所述的报表系统,其中,所述表结构管理模块用于存储和管理各属性和系统指标的信息。所述的报表系统,其中,所述数据预编译模块用于将报表模板信息结合所述编译数据结构,所述编译数据结构包括数据库查询基础数据语句、各指标统计运算公式、过滤表达式、排序表达式信息,和,按照所使用的语法分析器规则来生成的各类公式信息组织形式。所述的报表系统,其中,所述属性的信息包括各自的表名、字段名、数据类型、格式化串、统计运算方式;所述系统指标的信息包括运算统计方式、边界异常处理方式、条件运算替换值信息。所述的报表系统,其中,所述控制单元的处理主要包括公式指标计算,公式指标条件过滤,排序,分组,格式化五方面的处理。所述的报表系统,其中,所述公式指标条件过滤包括等于、大于等于、不等于、IN、Notln、为空、不为空的单一或复合条件过滤。本发明提供了一种快速完成大数据处理的方法和报表系统,由于采用格式与数据完全剥离的方式用于实现高速的数据生成,客户端收到数据后,可以直接使用,不需要进行数据解析,提高了客户端与服务器之间数据传输的效率,极大提高了报表查询大量数据的速度,减少了服务端数据占用内存,减轻了系统负荷。图l是本发明的报表系统数据生成的模块组成示意图2是本发明的报表数据生成的流程图3是根据本发明的报表数据生成的另一流程图。具体实施例下面结合附图,以电信网络管理领域的性能报表数据生成为例,对本发明的技术方案作进一步的详细描述。本发明的基本设计思想就是采用语法分析结合数据库技术,将业务数据呈现时的^^备式和数据查询隔离开,先利用数据库自身的分组、过滤、排序技术将数据作初次分析处理,而把和指标相关的统计运算、过滤、排序放到内存中,然后和业务数据呈现时需要的^"式信息一起封装为最终的结果数据,其中指标运算可以采用中缀表达式、前缀表达式、后缀表达式等语法解析器,本发明用的是中缀表达式语法解析器javacc。本发明以报表数据处理为例来说明技术实现细节。如图1描述了本发明报表数据生成的系统结构,本发明快速完成大数据处理的报表系统包括一表结构管理模块108、数据预编译模块106、数据处理模块104,以及与所述数据处理模块104相连接的OMC-界面模块102,在该数据处理模块104中设置有控制单元,用于分析来自数据预编译模块的编译数据结构和控制整个流程的走向;所述表结构管理模块108连接有多个应用数据库l~n;所述数据预编译模块106连接有多个报表模板l~n。其中所述表结构管理才莫块108负责存储和管理各属性和系统指标的信息,属性的相关数据库信息包括各自的表名、字段名、数据类型、格式化串、统计运算方式等,系统指标相关信息包括运算统计方式、边界异常处理方式、条件运算替换值等信息。所述数据预编译模块106负责将报表模板信息结合所述表结构管理模块108转化为所述数据处理模块104所述需要的编译数据结构,主要包含两部分数据库查询基础数据语句、各指标统计运算公式、过滤表达式、排序表达式等信息,和,按照所使用的语法分析器规则来生成的各类公式信息组织形式。所述数据处理模块104负责将报表从数据库查询出的原始结果集进行再次分析处理,最后封装为适合呈现的数据结构,其中的控制单元负责分析来自所述数据预编译才莫块106的编译数据结构,控制整个流程的走向;实际的处理主要包括公式指标计算,公式指标条件过滤(包括等于、大于等于、不等于、IN、Notln、为空、不为空等单一或复合条件过滤),排序,分组,格式化等五方面的处理;最后送给终端的OMC-界面模块102呈现。如图2所示,本发明的报表数据生成方法包括以下步骤步骤S1002,选择模板,设置参数操作人员选择某一模板,输入相应的条件参数,进行报表数据的查询。对于告警,性能、配置等其他应用,模板信息可能包含数据查询的基本信息。也可以提前预定义参数,供定时任务来自动调度生成才咏数据。步骤S1004,预编译处理结果系统根据模板和参数信息,形成预编译结构,主要包含数据库查询语句,相关的指标公式,统计运算公式,过滤,分组,排序,格式化等信息。步骤S1006,从数据库中查询原始结果集系统由模板信息得到相关数据库名,用户名,口令等基本信息,再根据步骤S1004中的数据库查询语句查询出原始结果集。步骤S1008,根据过滤表达式过滤结果集如果当过滤条件中有公式,或者参数参与了IN、Notln,系统进行过滤运算,得到过滤后的结果集。如果当过滤条件中有公式,或者参数参与了IN、Notln,则做过滤运算,对传入的结果集中每一行的数据做过滤表达式的运算,如果结果为真则保留该行数据;如果为假则删除该数据,最后得到处理后的结果集。步骤S1010,公式计算如果报表列有含公式的指标,计算所有指标值,得到公式计算后的结果集。步骤S1012,排序如果报表模板设置了排序,则对所有数据进行排序,得到排序后的结果集;如果在模板中既设置了排序又设置了分组,此时不做排序,在分组处理过程中进行排序。步骤S1014,分组如果报表模板设置了分组,根据排序后的结果集,如果当分组字段发生变化即表示新分组产生,则对报表数据进行分组并计算小计;如果设置了总计,还需要计算出总计。如果在模板中即设置了排序又设置了分组,还需要对每组数据进行排序,输出数据集。步骤S1016,设置格式化信息系统根据模板信息进行格式化处理,并将格式化信息和数据集封装为报表结果结构。步骤S1018,封装为查询结果集封装为查询结果集,并返回给客户端进行呈现。把报表查询结果通知界面客户端(OMC),并将报表查询过程中异常消息传送给客户端,在客户端显示给操作人员。如图3所示是本发明方法的报表数据生成的时序流程图,其中首先通过终端选择4莫板输入相应的参数条件后发起4艮表数据查看请求,由所述数据处理模块向报表模板发送索取报表模板信息的请求;所述报表模板向所述数据处理模块返回报表模板信息。其次,系统根据模板信息结合参数信息生成编译后的数据结构,由所述数据处理模块控制向数据预编译模块发送索取预编译数据结构的请求,所述数据预编译模块从对应的数据库和报表模板获得编译资源1和编译资源2,并据以返回预编译数据结构。第三,系统从数据库查询出原始数据结果集所述数据处理模块向所述数据库发送原始数据查询请求,并由所述数据库返回原始数据结果集。第四,系统根据编译后的数据结构对原始数据结果集进行过滤,分组,排序,格式化处理,最终形成报表数据结果集。第五,系统将报表数据结果集传送返回给客户端,并呈现给终端。流程结束。本发明系统和方法中的报表模板相关信息如下表格:<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>假设模板信息为显示釆集时间和值转化示例,且以采集时间分组,按采集时间和值转化示例排序(皆为升序),过滤值转化示例为50%到80%间的合法数据,其中50%和80%可由操作控制在查报表数据时按需改变。本发明方法和系统中数据预编译构造的数据库查询语句示例如下selectaO.coll—datetimeasa000004,sum(a0.conter一succ一a)asA000005,sum(a0.conter一succ一b)asA000008fromt—conter—abaOwhere(aO.bss—id—int>=$P{FP—A000010—0—1})groupbyaO.coll—datetimeorderbyaO.coll一datetimeASC过滤表达式in(I000003_2,FP—1000003—0—3)排序表达式1000001—2ASC格式化信息采集时间(年-月-日时分秒)值转换示例(百分比)公式信息1000001—2~sum(A000005)/sum(A000008)~l~0.0条件公式iff(I000001,0.5,0.8)边界公式bound(表达式,minValue,maxValue),表示该表达式的有效值控制在minValue,maxValue,不在此范围内的采取就近赋值原则。以上的公式函数都支持嵌套。如果指标的计算函数系统目前没提供的,可以方便扩展的函数库来支持。需要说明的是,表示IOOOOOl的统计公式及分母为0的保护表示整体为0,其值有效范围为0.5~1.0。综上所述,从本发明方法及系统的数据库里只查询出能计算出指标的相关原始属性信息,而把和指标的公式运算、统计运算、异常保护等通过后缀表达式如javacc在内存中进行处理;同时本发明系统4艮据编译数据结构进行查询数据库、处理公式、封装报表呈现数据结构的处理。与现有技术相比,本发明系统和方法的方案极大提高了报表查询大量数据的速度,减少了服务端和客户端数据占用的内存,減轻了系统负荷;同时采用格式与数据完全剥离,可以更方便地对数据进行再次渲染。如下表所示,是现有技术报表查询速度与本发明方法和系统的报表查询速度的对比表l:现有报表查询速度<table>tableseeoriginaldocumentpage12</column></row><table>表2:本方案报表查询速度<table>tableseeoriginaldocumentpage13</column></row><table>由此可见,本发明方法和系统确实加快了报表的查询速度。应当理解的是,上述针对本发明较佳实施例的描述较为具体,并不能因此而认为是对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。权利要求1、一种快速完成大数据处理的方法,其包括以下步骤A、选择报表模板,并设置报表查询的参数;B、一预编译处理模块根据所选择的报表模板和参数信息,形成预编译数据结构;C、一数据处理模块从数据库中查询原始结果集,并根据过滤表达式过滤所述原始结果集;D、所述数据处理模块对过滤后的所述结果集进行排序和分组,并根据模板信息进行格式化处理,将格式化信息和结果集封装为报表结果结构;E、所述数据处理模块将报表结果结构封装为查询结果集,并返回给客户端进行呈现。2、根据权利要求1所述的方法,其特征在于,所述步骤D还包括如果在所述报表模板中设置排序,则对所有数据进行排序,得到排序后的结果集;如果在报表模板中既设置排序又设置分组,则不做排序,在分组处理过程中进行排序。3、根据权利要求2所述的方法,其特征在于,所述步骤D还包括如果对所述报表模板设置分组,根据排序后的结果集如果分组字段发生变化即表示新分组产生,并对报表数据进行分组并计算小计;如果在报表模板中即设置排序又设置分组,则对每组数据进行排序,输出数据集。4、根据权利要求1所述的方法,其特征在于,所述步骤C还包括如果所述报表模板中含公式的指标,则计算所有指标值,得到公式计算后的结果集。5、一种快速完成大数据处理的报表系统,其特征在于,其包括一表结构管理模块、数据预编译模块、数据处理模块,以及与所述数据处理模块相连接的终端界面模块,在该数据处理模块中设置有控制单元;所述表结构管理模块连接有多个应用数据库;所述数据预编译模块连接有多个报表模板;所述数据处理模块用于将报表从数据库查询出的原始结果集进行再次分析处理,并封装为适合呈现的数据结构;所述控制单元用于分析来自所述数据预编译模块的编译数据结构。6、根据权利要求5所述的报表系统,其特征在于,所述表结构管理模块用于存储和管理各属性和系统指标的信息。7、根据权利要求6所述的报表系统,其特征在于,所述数据预编译模块用于将报表模板信息结合所述编译数据结构,所述编译数据结构包括数据库查询基础数据语句、各指标统计运算公式、过滤表达式、排序表达式信息,和,按照所使用的语法分析器规则来生成的各类公式信息组织形式。8、根据权利要求6所述的报表系统,其特征在于,所述属性的信息包括各自的表名、字段名、数据类型、格式化串、统计运算方式;所述系统指标的信息包括运算统计方式、边界异常处理方式、条件运算替换值信息。9、根据权利要求7或8所述的报表系统,其特征在于,所述控制单元的处理主要包括公式指标计算,公式指标条件过滤,排序,分组,格式化五方面的处理。10、根据权利要求9所述的报表系统,其特征在于,所述公式指标条件过滤包括等于、大于等于、不等于、IN、Notln、为空、不为空的单一或复合条件过滤。全文摘要本发明公开了一种快速完成大数据处理的报表系统和方法,其方法包括选择报表模板,并设置报表查询的参数;根据所选择的报表模板和参数信息,形成预编译数据结构;从数据库中查询原始结果集,并根据过滤表达式过滤所述原始结果集;数据处理模块对过滤后的所述结果集进行排序和分组,并根据模板信息进行格式化处理;所述数据处理模块将报表结果结构封装为查询结果集,并返回给客户端进行呈现。本发明系统和方法由于采用格式与数据完全剥离的方式用于实现高速的数据生成,客户端收到数据后,不需要进行数据解析,提高了客户端与服务器之间数据传输的效率,极大提高了报表查询大量数据的速度,减少了服务端数据占用内存,减轻了系统负荷。文档编号G06F17/30GK101183371SQ200710125079公开日2008年5月21日申请日期2007年12月12日优先权日2007年12月12日发明者王洪玲申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1