一种用于多级存储数据的即时应用方法
【专利说明】一种用于多级存储数据的即时应用方法
[0001]
技术领域
[0002]本发明涉及一种即时应用方法,具体涉及一种用于多级存储数据的即时应用方法。
【背景技术】
[0003]随着电力企业业务信息系统应用的逐步深入,业务数据量将逐渐庞大,各个网省的业务数据都是分散存储于本地业务系统,目前无法将所有分散的数据统一展现应用,给用户的使用和体验带来不便。
[0004]数据仓库和OLAP技术已经成为多维分析研究的热点,各个厂商都提供了自己的数据仓库解决方案以及自己决策分析工具,如微软的Analysis Manager和OLAP Service、BO公司的Business Object Explorer以及国内的一些产品等。然而这些技术只针对数据仓库集中式存储进行分析展现。
[0005]在数据多维分析领域,常见的分析方法利用数据立方体(Cube)进行聚合运算,但不能分析处理分散存储于各个业务系统库中的数据。在内存计算领域,常见的分析方法是利用内存数据库,内存数据库通过内存计算技术以及软硬件结合的一体机技术,实现高性能的数据查询与分析,满足用户对大数据处理的实时性需求。然而,内存计算平台基于全新架构,在与已有数据库系统软件改造方面迀移工作量巨大。
【发明内容】
[0006]为了解决上述技术问题,本发明提供了一种用于多级存储数据的即时应用方法。
[0007]为了达到上述目的,本发明所采用的技术方案是:
一种用于多级存储数据的即时应用方法,包括以下步骤,
步骤一,业务对象建模;
按照业务逻辑关系创建两种对象模型,一种是针对业务数据的数据对象模型,一种是针对业务任务的任务对象模型;
步骤二,分布式对象缓存;
报表引擎服务启动初始化,加载对象模型、路由及公共维度数据;
步骤三,启动分布式数据请求;
当客户端发起请求报表展现时,从历史快照中根据请求过期时间范围查找,如果存在就直接返回,否则继续向报表引擎请求,报表引擎根据请求对象的指标、维度和条件构造生成计算请求对象;
步骤四,动态路由;
报表引擎从路由表中查找各个地区的请求地址,通过Hessain异步发送计算请求对象; 步骤五,代理计算;
每个计算代理节点在初始化时,将业务数据预加载,当收到报表引擎的计算请求时,先判断所请求资源是否已被缓存,如果被缓存,计算代理从缓存中取资源数据,通过聚合计算、编码转换、日期聚合转换,将计算得出中间结果集发送给主站消息队列;
步骤六,汇总和聚合计算;
报表引擎将消息队列中的中间结果集汇总,插入到一张临时表的内存数据库来计算,报表引擎为每个生成的计算单元格执行内存表达式计算,每个单元格由其约束条件生成一条SQL语句,将内存数据库的临时表汇总查询值填充到每个计算单元格,最终将报表单元格集合返回给请求的客户端。
[0008]按逻辑关系,对象分为单对象和对象集,单对象之间没有逻辑关系,对象集中的对象之间存在逻辑关系。
[0009]计算代理采用内存计算数据库进行计算。
[0010]本发明所达到的有益效果:本发明相比于现有技术,具有扩展性能好,任务实时性能高,多维度多角度数据分析查询灵活,为OMS系统报表展现提供实时数据抽取,避免了分散数据人工填报工作量,能快速变更报表维度及查询条件,比较友好地拖拽式构建查询报表。
【附图说明】
[0011]图1为本发明流程图。
[0012]图2为系统架构图。
【具体实施方式】
[0013]下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0014]如图1所示,一种用于多级存储数据的即时应用方法,包括以下步骤,
步骤一,业务对象建模。
[0015]按照业务逻辑关系创建两种对象模型,一种是针对业务数据的数据对象模型,一种是针对业务任务的任务对象模型。按逻辑关系,对象分为单对象和对象集,单对象耦合度低,单对象之间没有逻辑关系,可以完成某一类任务,对象集耦合度高,对象集中的对象之间存在逻辑关系,多个对象一起才能完成某一类任务。
[0016]步骤二,分布式对象缓存。
[0017]报表引擎服务启动初始化,加载对象模型、路由及公共维度数据。
[0018]步骤三,启动分布式数据请求。
[0019]当客户端发起请求报表展现时,从历史快照中根据请求过期时间范围查找,如果存在就直接返回,否则继续向报表引擎请求,报表引擎根据请求对象的指标、维度和条件构造生成计算请求对象。
[0020]步骤四,动态路由。
[0021]报表引擎从路由表中查找各个地区的请求地址,通过Hessain异步发送计算请求对象。
[0022]步骤五,代理计算。
[0023]每个计算代理节点在初始化时,将业务数据预加载,当收到报表引擎的计算请求时,先判断所请求资源是否已被缓存,如果被缓存,计算代理从缓存中取资源数据,通过聚合计算、编码转换、日期聚合转换,将计算得出中间结果集发送给主站消息队列。
[0024]计算代理采用内存计算数据库进行计算,它把数据存放在服务器的内存中,可以直接在代理节点对数据进行分析查询操作,不需要把代理节点的数据下载下来,减少了数据传输的时间。
[0025]步骤六,汇总和聚合计算;
报表引擎将消息队列中的中间结果集汇总,插入到一张临时表的内存数据库来计算,报表引擎为每个生成的计算单元格执行内存表达式计算,每个单元格由其约束条件生成一条SQL语句,将内存数据库的临时表汇总查询值填充到每个计算单元格,最终将报表单元格集合返回给请求的客户端。
[0026]上述方法主要由客户端浏览器、报表引擎、和分布式计算代理三部分相互协作完成。
[0027]客户端浏览器:
浏览器主要功能有报表发布、应用管理、统一存储及分析模型配置和报表展现。其中包括报表模型建模,创建业务对象模型,数据源、维度和指标集;基于业务对象生成维度、指标和报表;屏蔽底层不同数据源存储方式的差异,完成内存对象数据的持久化,通过一套模型获取不同地区业务系统的数据。
[0028]报表引擎:
报表引擎由数据服务、模型解析、模型缓存、任务调度、智能路由、维度管理和聚合计算组成。其中模型解析基于模型描述规范构建与解析,并缓存于H2内存管理组件,维度管理主要分两种私有维度和公共维度,维度值数据由分布式方式汇总得到的。聚合计算实现了对聚集表的管理,主要针对OLAP缓存的管理,其缓存了各个计算代理的查询结果,即单元格数据集合,如果计算模块所需的数据不在缓存中,从相应的代理节点进行查询获取数据并缓存。
[0029]分布式计算代理:
分布式计算代理组件由路由监听、请求解析、数据获取、聚合计算组件和计算单元格对象组成,负责接收主站发送的计算请求,将系统业务数据加载到内存中进行预计算,包括聚合计算、编码转换、日期聚合转换,得出中间结果集,异步发送给主站系统的消息队列。
[0030]在计算代理中采用数据同步与缓存机制,缓存存放的数据一般是对存储在数据库的数据对其处理数据的拷贝,就可以读写缓存中的数据,提升读取性能。计算代理每次回答主站的计算请求时,要在底层关系数据库中执行很多SQL语句来构建多维查询结果,因此应该尽可能利用已查询到的结果集,已节省物理数据库的访问时间。由于用户查询遵循一定规则,下一次查询经常会用到最近的查询结果,因此将缓存机制引入的计算代理中是提尚性能的有效方法。
[0031]上述方法相比于现有技术,具有扩展性能好,任务实时性能高,多维度多角度数据分析查询灵活。
[0032]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
【主权项】
1.一种用于多级存储数据的即时应用方法,其特征在于:包括以下步骤, 步骤一,业务对象建模; 按照业务逻辑关系创建两种对象模型,一种是针对业务数据的数据对象模型,一种是针对业务任务的任务对象模型; 步骤二,分布式对象缓存; 报表引擎服务启动初始化,加载对象模型、路由及公共维度数据; 步骤三,启动分布式数据请求; 当客户端发起请求报表展现时,从历史快照中根据请求过期时间范围查找,如果存在就直接返回,否则继续向报表引擎请求,报表引擎根据请求对象的指标、维度和条件构造生成计算请求对象; 步骤四,动态路由; 报表引擎从路由表中查找各个地区的请求地址,通过Hessain异步发送计算请求对象; 步骤五,代理计算; 每个计算代理节点在初始化时,将业务数据预加载,当收到报表引擎的计算请求时,先判断所请求资源是否已被缓存,如果被缓存,计算代理从缓存中取资源数据,通过聚合计算、编码转换、日期聚合转换,将计算得出中间结果集发送给主站消息队列; 步骤六,汇总和聚合计算; 报表引擎将消息队列中的中间结果集汇总,插入到一张临时表的内存数据库来计算,报表引擎为每个生成的计算单元格执行内存表达式计算,每个单元格由其约束条件生成一条SQL语句,将内存数据库的临时表汇总查询值填充到每个计算单元格,最终将报表单元格集合返回给请求的客户端。2.根据权利要求1所述的一种用于多级存储数据的即时应用方法,其特征在于:按逻辑关系,对象分为单对象和对象集,单对象之间没有逻辑关系,对象集中的对象之间存在逻辑关系。3.根据权利要求1所述的一种用于多级存储数据的即时应用方法,其特征在于:计算代理采用内存计算数据库进行计算。
【专利摘要】本发明公开了一种用于多级存储数据的即时应用方法,包括以下步骤,步骤一,业务对象建模;步骤二,分布式对象缓存;步骤三,启动分布式数据请求;步骤四,动态路由;步骤五,代理计算;步骤六,汇总和聚合计算。本发明相比于现有技术,具有扩展性能好,任务实时性能高,多维度多角度数据分析查询灵活,为OMS系统报表展现提供实时数据抽取,避免了分散数据人工填报工作量,能快速变更报表维度及查询条件,比较友好地拖拽式构建查询报表。
【IPC分类】G06F17/30
【公开号】CN105138686
【申请号】CN201510592013
【发明人】项玉良, 任开银, 刘士进, 何翔, 张明明, 黄高攀
【申请人】国家电网公司, 南京南瑞集团公司, 南京南瑞信息通信科技有限公司, 江苏省电力公司信息通信分公司
【公开日】2015年12月9日
【申请日】2015年9月17日