一种面向分布式数据库的报表处理方法及装置与流程

文档序号:17548506发布日期:2019-04-30 18:02阅读:229来源:国知局
一种面向分布式数据库的报表处理方法及装置与流程

本发明涉及一种报表引擎执行方法及装置,尤其是指一种面向分布式数据库的报表引擎执行方法及装置。



背景技术:

对实时交易类系统,业务管理人员,经常需要实时监控交易数据,报表能够直观的呈现业务动态状况,以便于管理人员进行市场行为分析和决策。随着业务量增长,单个数据库已经很难存储业务增长的数据,并且oracle等商业数据库由于使用成本高,应用逐步向开源、轻量级数据库转移,而开源数据库,如mysql在等同系统资源条件下,很难达到商业数据库的性能,一般构建分布式数据库集群存储海量业务数据。

因此,有必要解决分布式数据库的大数据量数据计算的问题。



技术实现要素:

本发明所要解决的技术问题是:提供一种面向分布式数据库的报表处理方法及装置。

为了解决上述技术问题,本发明采用的技术方案为:一种面向分布式数据库的报表处理方法,包括步骤,

s10、接收前端发起的报表处理请求,根据报表处理请求生成相应的报表任务;

s20、读取预设的报表任务拆分规则的配置文件,根据报表任务拆分规则将报表任务动态拆分为报表子任务;

s30、读取预设的计算规则的配置文件,根据计算规则对报表子任务进行计算处理,得到报表子任务的处理结果;

s40、汇聚每个报表子任务的处理结果,得到报表任务处理结果。

进一步的,所述步骤s20,具体包括,

读取预设的报表任务拆分规则的配置文件;

当读取到的报表任务拆分规则为按报表统计时间进行拆分,则通过报表传入参数中的统计时间段,以预设的报表任务拆分时间间隔,对报表任务进行拆分;

当读取到的报表任务拆分规则为按系统资源空闲情况进行拆分,则动态计算出系统最多能处理的任务数量,以对报表任务进行拆分;

当读取到的报表任务拆分规则为按照报表任务对应数据所在物理节点进行拆分,则将存储于同一个物理节点的报表任务划分在同一个报表子任务。

进一步的,所述系统资源空闲情况包括cpu、内存、线程池空闲情况。

进一步的,所述步骤s30,具体包括,

读取预设的计算规则的配置文件;

当读取到的计算规则为独立运算规则,则根据动态生成的查询条件,从数据库中获取需要统计的字段值;

当读取到的计算规则为递归计算规则,则根据预设置的子节点和父节点的关联关系统计子孙节点的数据;

当读取到的计算规则为嵌套规则链,则根据嵌套规则链的预设条件来统计报表任务的数据。

为了解决上述技术问题,本发明采用的另一个技术方案为:一种面向分布式数据库的报表处理装置,包括,

报表任务生成模块,用于接收前端发起的报表处理请求,根据报表处理请求生成相应的报表任务;

报表任务拆分模块,用于读取预设的报表任务拆分规则的配置文件,根据报表任务拆分规则将报表任务动态拆分为报表子任务;

报表子任务计算模块,用于读取预设的计算规则的配置文件,根据计算规则对报表子任务进行计算处理,得到报表子任务的处理结果;

数据汇聚模块,用于汇聚每个报表子任务的处理结果,得到报表任务处理结果。

进一步的,所述报表任务拆分模块,具体包括,

拆分规则读取单元,用于读取预设的报表任务拆分规则的配置文件;

第一拆分单元,用于当读取到的报表任务拆分规则为按报表统计时间进行拆分,则通过报表传入参数中的统计时间段,以预设的报表任务拆分时间间隔,对报表任务进行拆分;

第二拆分单元,用于当读取到的报表任务拆分规则为按系统资源空闲情况进行拆分,则动态计算出系统最多能处理的任务数量,以对报表任务进行拆分;

第三拆分单元,用于当读取到的报表任务拆分规则为按照报表任务对应数据所在物理节点进行拆分,则将存储于同一个物理节点的报表任务划分在同一个报表子任务。

进一步的,所述系统资源空闲情况包括cpu、内存、线程池空闲情况。

进一步的,所述报表子任务计算模块,具体包括,

计算规则读取单元,用于读取预设的计算规则的配置文件;

第一计算单元,用于当读取到的计算规则为独立运算规则,则根据动态生成的查询条件,从数据库中获取需要统计的字段值;

第二计算单元,用于当读取到的计算规则为递归计算规则,则根据预设置的子节点和父节点的关联关系统计子孙节点的数据;

第三计算单元,用于当读取到的计算规则为嵌套规则链,则根据嵌套规则链的预设条件来统计报表任务的数据。

本技术方案接收前端发起报表请求后,生成报表任务,并根据预设的拆分规则,动态拆分为统计报表小任务,每个子任务根据计算规则统计报表数据,将报表子任务的数据汇聚得到报表任务处理结果,提高了从分布式数据库中获取数据的速率,实现了分布式数据库报表数据的快速采集。

附图说明

下面结合附图详述本发明的具体结构。

图1为本发明的面向分布式数据库的报表处理方法流程图;

图2为本发明的面向分布式数据库的报表处理装置框图。

具体实施方式

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。

参阅图1,一种面向分布式数据库的报表处理方法,包括步骤,

s10、接收前端发起的报表处理请求,根据报表处理请求生成相应的报表任务;

s20、读取预设的报表任务拆分规则的配置文件,根据报表任务拆分规则将报表任务动态拆分为报表子任务;

s30、读取预设的计算规则的配置文件,根据计算规则对报表子任务进行计算处理,得到报表子任务的处理结果;

s40、汇聚每个报表子任务的处理结果,得到报表任务处理结果。

本技术方案中,任务拆分的主要思想是分治,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并,能够提高数据处理速度,实现报表数据的快速采集。

实施例一

在一具体实施例中,所述步骤s20,具体包括,

读取预设的报表任务拆分规则的配置文件;

当读取到的报表任务拆分规则为按报表统计时间进行拆分,则通过报表传入参数中的统计时间段,以预设的报表任务拆分时间间隔,对报表任务进行拆分;

当读取到的报表任务拆分规则为按系统资源空闲情况进行拆分,则动态计算出系统最多能处理的任务数量,以对报表任务进行拆分;

当读取到的报表任务拆分规则为按照报表任务对应数据所在物理节点进行拆分,则将存储于同一个物理节点的报表任务划分在同一个报表子任务。

优选的,所述系统资源空闲情况包括cpu、内存、线程池空闲情况。

本实施例中,用户在设置配置文件时,统计的数据为一个月或者年的数据,预设的报表任务拆分时间间隔则可以设为天或者月,以此来对报表进行划分处理,能够提高数据获取的速率;按照系统资源情况进行拆分,主要是根据cpu、内存、线程池空闲情况,动态计算出最大能拆分的任务数量,再根据任务数量和任务统计参数实例化需要并发统计的任务;按照分布式数据分布规则和具体的业务数据存储相关,需要明确知道分布式数据哪个物理数据库节点,再根据物理数据库节点动态生成统计任务。

三种拆分规则可以根据报表要求相互结合使用,按照统计时间跨度拆分规则适用于数据生成时间上较为均匀的报表数据计算;按照系统资源情况拆分规则,主要面向目标数据的处理。在实际应用中,报表源数据获取相对简单,复杂的目标数据计算耗费大量的系统计算,按照系统资源情况拆分规则配合其他两种规则同时使用,先从时间或者分布式数据分布规则上对数据进行划分,然后再依据系统资源处理能力,拆分多个子任务进行目标数据计算,以获取报表数据计算结果性能最大化。

实施例二

在一具体实施例中,所述步骤s30,具体包括,

读取预设的计算规则的配置文件;

当读取到的计算规则为独立运算规则,则根据动态生成的查询条件,从数据库中获取需要统计的字段值;

当读取到的计算规则为递归计算规则,则根据预设置的子节点和父节点的关联关系统计子孙节点的数据;

当读取到的计算规则为嵌套规则链,则根据嵌套规则链的预设条件来统计报表任务的数据。

本实施例中,独立运算规则为数据查询的条件为单个,即通过单个字段获取跟这个字段相对应的数据;递归计算规则为对在同一个物理节点的数据进行统计;嵌套规则链为一组有关联关系的规则集合,通过业务分析,事先排列组合,推到出报表任务中一个参数的结果,组合方式如:a->b->c;从a数据,通过规则1运算得到结果b,然后再通过规则2运算得到结果c,c是最终需要获取的结果;或者a和b->c->d;从a数据和b数据,通过规则1运算得到结果c,然后再通过规则2运算得到结果d。

参阅图2,一种面向分布式数据库的报表处理装置,包括,

报表任务生成模块,用于接收前端发起的报表处理请求,根据报表处理请求生成相应的报表任务;

报表任务拆分模块,用于读取预设的报表任务拆分规则的配置文件,根据报表任务拆分规则将报表任务动态拆分为报表子任务;

报表子任务计算模块,用于读取预设的计算规则的配置文件,根据计算规则对报表子任务进行计算处理,得到报表子任务的处理结果;

数据汇聚模块,用于汇聚每个报表子任务的处理结果,得到报表任务处理结果。

实施例三

在一具体实施例中,所述报表任务拆分模块,具体包括,

拆分规则读取单元,用于读取预设的报表任务拆分规则的配置文件;

第一拆分单元,用于当读取到的报表任务拆分规则为按报表统计时间进行拆分,则通过报表传入参数中的统计时间段,以预设的报表任务拆分时间间隔,对报表任务进行拆分;

第二拆分单元,用于当读取到的报表任务拆分规则为按系统资源空闲情况进行拆分,则动态计算出系统最多能处理的任务数量,以对报表任务进行拆分;

第三拆分单元,用于当读取到的报表任务拆分规则为按照报表任务对应数据所在物理节点进行拆分,则将存储于同一个物理节点的报表任务划分在同一个报表子任务。

优选的,所述系统资源空闲情况包括cpu、内存、线程池空闲情况。

实施例四

在一具体实施例中,所述报表子任务计算模块,具体包括,

计算规则读取单元,用于读取预设的计算规则的配置文件;

第一计算单元,用于当读取到的计算规则为独立运算规则,则根据动态生成的查询条件,从数据库中获取需要统计的字段值;

第二计算单元,用于当读取到的计算规则为递归计算规则,则根据预设置的子节点和父节点的关联关系统计子孙节点的数据;

第三计算单元,用于当读取到的计算规则为嵌套规则链,则根据嵌套规则链的预设条件来统计报表任务的数据。

本技术方案接收前端发起报表请求后,生成报表任务,并根据预设的拆分规则,动态拆分为统计报表小任务,每个子任务根据计算规则统计报表数据,将报表子任务的数据汇聚得到报表任务处理结果,实现了分布式数据库报表数据的快速采集。

本发明的装置实施例与方法实施例一一对应,包括方法实施例的全部内容,具有与方法实施例相同的技术效果,因此不再赘述。

综上所述,本发明针对分布式关系数据库集群下,将各种业务相关数据存储在不同的数据库集群中,通过规则配置,根据当时环境的系统资源情况,动态拆分报表任务数据,并行计算汇聚数据,实现报表数据快速采集。

此处第一、第二……只代表其名称的区分,不代表它们的重要程度和位置有什么不同。

此处,上、下、左、右、前、后只代表其相对位置而不表示其绝对位置。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1