一种快速生成电子报表的实现方法转让专利

申请号 : CN201010122301.3

文献号 : CN101777079B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡黎玮严伟强田文吕孙

申请人 : 浙江鸿程计算机系统有限公司

摘要 :

本发明涉及商业智能数据应用领域,尤其涉及一种快速生成电子报表的系统构架及其实现方法,该系统构架,包括数据层、控制层和展示层三层;数据层,包括业务指标配置库和业务指标数据库;控制层,用于周期性的根据指标定义算法、规则,从数据层提取业务数据加载到内存中;用于提供数据结果给展示层;展示层,返回指令结果或按配置格式展现报表。本发明的有益效果:本发明大大提高了响应时间,业务报表响应时间基本控制在500毫秒以内,实现零延时,优于普通报表技术的访问响应时间,提升了用户感知。

权利要求 :

1.一种快速生成电子报表的实现方法,其特征在于包括如下步骤:

1)配置基础指标:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置最基本的、脚本直接生成的指标、同时定义指标的刷新SQL;

2)定义指标组:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置指标组的名称、所属关系和对应作业的脚本程序;

3)配置指标、指标组、指标组内项关系:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置指标与指标组内项的关系,指标组与指标组内项的关系;

4)内存配置:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库中定义内存的最大对象数及对内存调度的LRU算法;

5)控制层按照业务指标配置库中的刷新SQL将业务指标数据库中的数据刷入内存;

6)控制层通过LRU算法,在内存中查询是否有需要清掉的数据并执行指令;

7)控制层将最新的数据对象刷入内存;

8)展示层发出查询SQL时,优先从内存中查询数据;

9)如果内存中没有客户需要的数据,则从业务指标数据库查询数据;

10)将查询结果返回给展示层。

2.根据权利要求1所述的一种快速生成电子报表的实现方法,其特征在于所述步骤1)中的主要配置内容包括指标编号,单位,指标名称,指标刷新SQL,指标刷新周期,指标预警上下限。

3.根据权利要求1所述的一种快速生成电子报表的实现方法,其特征在于所述步骤2)中配置内容包括指标组编号,指标组名称,指标组描述,指标组刷新作业名称。

4.根据权利要求1所述的一种快速生成电子报表的实现方法,其特征在于所述步骤3)中的配置内容包括指标组内项编号,指标组内项名称,指标组内项单位,所属指标组,包含指标,显示标题,排序规则,是否可用。

说明书 :

一种快速生成电子报表的实现方法

技术领域

[0001] 本发明涉及商业智能数据应用领域,尤其涉及一种快速生成电子报表的实现方法。

背景技术

[0002] 传统报表技术实现具有一个特性,在报表打开时,有较大的数据量交互,有较多的IO操作,较长的时间等待,尤其是涉及到大数据量时,将获得更长的等待时间,在表现形式上也分别对应为固定型报表和多维分析型报表(OLAP报表)。
[0003] 报表数据一般直接通过SQL(Structured Query Language)语言从关系型数据库中获取。客户端程序结果通过客户端程序或者Web程序显示。更高级处理方式就是将查询结果按照一定的调度算法放在缓存中,下一次同样的查询语句无需在提交给数据库处理,直接从缓存中获取数据即可;或者数据通过MDX(MultiDimensional EXpressions)语言从多维数据库中获取,这两种技术能获得较好的查询响应性能,而因为缓存大小有限制,决定了报表在处理数据时,也要花费较长的时间。
[0004] 对于商业智能数据应用领域而言,报表也是具有一般报表的所有特性,而且历史数据量更大,一般都报表会存放几年历史数据,记录数都会有上亿条,所以系统需要从这多的数据中,做查询、统计、汇总,查询响应性能可想而知,客户感知差,尤其是关键的业务报表,在开发设计时的重要指标就是就是响应时间,控制在多少时间内是系统交付时的重要条件。

发明内容

[0005] 本发明为克服现有技术中存在的不足之处,目的在于提供一种快速生成电子报表的方法,该方法采用内存报表技术,在报表系统初始化时,将所有关键业务数据从数据库预读到内存中,用户在访问报表时,系统根据登录用户的角色和权限直接从内存中读取对应的报表数据,避免了数据从硬盘读取到内存带来的耗时,解决了现有技术中存在常规报表延时高、响应慢引致客户端感知非常差等一些列问题。
[0006] 本发明是通过以下技术方案达到上述目的:一种快速生成电子报表的系统,包括数据层、控制层和展示层三层;
[0007] 数据层,包括用于定义和存放数据模型结构和内存报表结构信息的业务指标配置库和用于存放业务数据的业务指标数据库;
[0008] 控制层,用于周期性的根据指标定义算法、规则,从数据层提取业务数据加载到内存中;用于提供数据结果给展示层;
[0009] 展示层,位于面向系统管理人员和报表用户的最前端,用于负责提交系统管理人员和用户的指令、查询要求和参数,等待控制层处理完成后,返回指令结果或按配置格式展现报表。
[0010] 所述的控制层中有用Java语言编写的缓存系统形成的缓存机制,以用于在内存中存储数据。
[0011] 作为优选,控制层中使用lru算法,当内存缓存区域满时,首先删除最近最少使用的缓存数据。
[0012] 作为优选,业务指标配置库包括指标定义,指标刷新SQL定义,指标组定义及指标与组的关系定义,在客户端需要展现业务内容的配置和定义。
[0013] 一种快速生成电子报表的实现方法,包括如下步骤:
[0014] 1)配置基础指标:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置最基本的、脚本直接生成的指标、同时定义指标的刷新SQL;
[0015] 2)定义指标组:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置指标组的名称、所属关系和对应作业的脚本程序;
[0016] 3)配置指标、指标组、指标组内项关系:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置指标与指标组内项的关系,指标组与指标组内项的关系;
[0017] 4)内存配置:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库中定义内存的最大对象数及对内存调度的LRU算法;
[0018] 5)控制层按照业务指标库中的刷新SQL将业务指标数据库中的数据刷入内存;
[0019] 6)控制层通过LRU算法,在内存中查询是否有需要清掉的数据并执行指令;
[0020] 7)控制层将最新的数据对象刷入内存;
[0021] 8)展示层发出查询SQL时,优先从内存中查询数据;
[0022] 9)如果内存中没有客户需要的数据,则从业务指标数据库查询数据;
[0023] 10)将查询结果返回给展示层。
[0024] 作为优选,所述步骤1)中的主要配置内容包括指标编号,单位,指标名称,指标刷新SQL,指标刷新周期,指标预警上下限。
[0025] 作为优选,所述步骤2)中配置内容包括指标组编号,指标组名称,指标组描述,指标组刷新作业名称。
[0026] 作为优选,所述步骤3)中的配置内容包括指标组内项编号,指标组内项名称,指标组内项单位,所属指标组,包含指标,显示标题,排序规则,是否可用。
[0027] 本发明的有益效果:本发明在控制层增设了内存,用Java语言编写的缓存系统形成的缓存机制,以用于在内存中存储数据;系统根据登录用户的角色和权限直接从内存中读取对应的报表数据,避免了数据从模型层的硬盘读取到内存带来的耗时,大大提高了响应时间,业务报表响应时间基本控制在500毫秒以内,实现零延时,优于普通报表技术的访问响应时间,提升了用户感知,解决了现有技术中存在常规报表延时高、响应慢引致客户端感知非常差等一些列问题。

附图说明

[0028] 图1是本发明的系统构架示意图。

具体实施方式

[0029] 实施例1:下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:
[0030] 如图1所示:一种快速生成电子报表的系统,包括数据层、控制层和展示层三层;数据层,包括用于定义和存放数据模型结构和内存报表结构信息的业务指标配置库和用于存放业务数据业务指标数据库;业务指标配置库包括指标定义,指标刷新SQL定义,指标组定义及指标与组的关系定义,在客户端需要展现业务内容的配置和定义。
[0031] 控制层,用于周期性的根据指标定义算法、规则,从数据层提取业务数据加载到内存中;用于提供数据结果给展示层;所述的控制层中有用Java语言编写的缓存系统形成的缓存机制,以用于在内存中存储数据。控制层中使用lru算法,当内存缓存区域满时,首先删除最近最少使用的缓存数据。
[0032] 展示层,位于面向系统管理人员和报表用户的最前端,用于负责提交系统管理人员和用户的指令、查询要求和参数,等待控制层处理完成后,返回指令结果或按配置格式展现报表。
[0033] 一种快速生成电子报表的实现方法,按如下步骤:
[0034] 1)配置基础指标:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置最基本的、脚本直接生成的指标、同时定义基础指标的刷新SQL等相关信息;主要配置内容包括指标编号,单位,指标名称,指标刷新SQL,指标刷新周期,指标预警上下限。
[0035] 2)定义指标组:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置指标组的名称、所属关系和对应作业的脚本程序;配置内容包括指标组编号,指标组名称,指标组描述,指标组刷新作业名称。
[0036] 3)配置指标、指标组、指标组内项关系:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库配置指标与指标组内项的关系,指标组与指标组内项的关系;配置内容包括指标组内项编号,指标组内项名称,指标组内项单位,所属指标组,包含指标,显示标题,排序规则,是否可用。
[0037] 4)内存配置:位于展示层的管理人员根据报表展现的需要,向控制层发出指令,在数据层的业务指标配置库中定义内存的最大对象数及对内存调度的LRU算法;
[0038] 5)控制层按照业务指标库中的刷新SQL将业务指标数据库中的数据刷入内存;
[0039] 6)控制层通过LRU算法,在内存中查询是否有需要清掉的数据并执行指令;
[0040] 7)控制层将最新的数据对象刷入内存;
[0041] 8)展示层发出查询SQL时,优先从内存中查询数据;
[0042] 9)如果内在中没有客户需要的数据,则从业务指标数据库查询数据;
[0043] 10)将查询结果返回给展示层。
[0044] 下面以某报表中“宽带计费用户数”指标组内项生成过程为例,对发明提供报表生成方法的具体实施方式和过程进行详细阐述
[0045] 指标定义
[0046]
[0047] 指标定义,“宽带计费用户数”所属“用户发展”组
[0048]指标组编号 指标组名称 指标组描述 对应作业
1004 用户发展 用户发展 MOL901_KPI_DAILY_0500Z
[0049] 指标、指标组、指标组内项关系
[0050]
[0051] 这里要说明的是“包含指标”配置字段,它是有一个若干个指标合成,格式如下所示:“200501:3;200502:3;200501:6;200502:6;200503:3”,每个指标具有一定的格式,AAAAA:BB,AAAAAA表示指标ID,BB表示指标的计算方式,如3代表基础指标,6代表环比等,这样WEB持续在读取这些格式时,自动解析对应的指标值。实际应用过程中,200501指标代表CDMA发展量,200502代表固定电话发展量,200503代表有点宽带发展量,3代表当日值,6代表环比增长率,所以对“200501:3;200502:3;200501:6;200502:6;200503:3”就解析为一组指标:“CDMA当日发展量;固定电话当日发展量;CDMA当日发展量环比增长率;固定电话当日发展量环比增长率;宽带当日发展量”;
[0052] 内存配置
[0053] 配置cache.ccf文件,定义最大对象数,内存调度算法(LRU算法)定义
[0054] cacheattributes.MaxObjects=1000
[0055] cacheattributes.MemoryCacheName=memory.lru.LRUMemoryCache
[0056] 刷新到内存
[0057] 通过LRU方法,在缓存区域中(一个组织起来的命名空间用于容纳一组缓存对象,需要在配置文件中定义缓存区域来实现在一块单独的内存空间中存储数据,管理缓存数据的有效期限)查询是否有需要清掉的数据对象,如果有则通过cleanBlog方法从内存中清除一个指定的数据对象,然后通过setBlog方法将数据对象放在缓存中,该方法使用传入的信息创建一个新的数据对象,然后将这个对象数据放在内存中。
[0058] 结果返回
[0059] 在内存中查询数据与在数据库中查询数据一样,直接查询内存中的数据对像,通过IoadCacheObject()来重载缓存中的对象,返回给客户端。
[0060] 以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。