一种报表计算方法、装置、设备及介质与流程

文档序号:26361052发布日期:2021-08-20 20:37阅读:72来源:国知局
本说明书涉及大数据
技术领域
:,尤其涉及一种报表计算方法、装置、设备及介质。
背景技术
::数据库按照查询类型可以分为两类,一类是基于sql(structuredquerylanguage,结构化查询语言)查询的关系型数据库,另一类是基于key-value(键-值,简称k-v)查询的非关系型数据库,或者称为键值对数据库。关系型数据库常用于复杂业务关系的数据存储与查询,优点是可以对各种数据进行聚合处理;非关系型数据库常用于简单查询,优点是速度快,常见的非关系型数据库如hbase、redis。其中,redis最大特点在于使用内存进行数据的存取,极大提升了数据的读写速度,同时分布式的设计使得redis能够利用计算机集群的性能,解决单机内存容量可能不足的问题。一般进行报表计算时,需要从关系型数据库中查询报表格式等信息,且多个用户同时计算时,会出现当前节点与后续节点使用的报表数据有部分重复的情形。此时往往出现通过sql语句,重复向关系型数据库中调取数据,导致应用服务器的内存占用较高,容易造成报表计算性能下降的问题。技术实现要素:本说明书一个或多个实施例提供了一种报表计算方法、装置、设备及介质,用于解决如下技术问题:需要一种减少关系数据库的请求次数,降低服务器内存占用的报表计算方法。本说明书一个或多个实施例采用下述技术方案:本说明书一个或多个实施例提供一种报表计算方法,该方法包括:在进行报表计算时,确定出当前节点的标识;若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算;若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。可选地,本说明书中一个或多个实施例中,所述在进行报表计算时,确定出当前节点的标识之前,所述方法还包括:通过应用服务器,预先设置所述键值对数据库的配置文件;其中,所述键值对数据库预置于数据库服务器中;根据所述配置文件对数据库服务器中预先部署的键值对数据库进行实例编号,并为所述键值对数据库所在的服务器设置ip地址及端口号;通过所述配置文件的缓存设置机制选择是否启用所述键值对数据库,并对键值对数据库设置缓存有效时间;若超过所述有效时间,则从清空所述键值对数据库中缓存的报表数据,并基于所述关系型数据库重新获取所述计算节点需要的数据信息。可选地,本说明书中一个或多个实施例中,所述获取所述第一报表数据之前,所述方法还包括:根据所述报表计算的历史数据,确定所述键值对数据库是否需要缓存所述当前节点的报表数据;若确定出所述报表数据需要被所述键值对数据库缓存,则缓存附带有时间戳的报表数据;其中,所述时间戳记载有所述报表数据的存入时间及有效时间,以便更新删除所述报表数据;若确定出所述报表数据不需要被所述键值对数据库缓存,则推迟将所述报表数据存入所述键值对数据库的时间点。可选地,本说明书一个或多个实施例中,所述通过预先部署的关系数据库获取对应的所述第二报表数据之前,所述方法包括:向所述关系数据库发送数据查询请求和sql查询语句,以便当前节点可以获取到第二报表数据;其中,所述数据查询请求包括所述当前节点的标识;通过将所述第二报表数据转换为与所述键值对数据库存储相对应的数据类型,获得所述第二报表数据的具体对象;将所述第二报表数据缓存到所述键值对数据库中。可选地,本说明书一个或多个实施例中,所述将所述第二报表数据缓存到所述键值对数据库中之前,还包括:基于判断机制,确定待存入的所述第二报表数据的大小与所述键值对数据库中已缓存报表数据的大小之和,是否超过所述键值对数据库的预设限值;若超过所述预设限值,则根据缓存替换算法确定所述已缓存报表数据的最近最少使用次数,并结合所述报表数据的重用距离,划分所述已缓存数据的权重值;根据所述权重值依次删除所述已缓存数据,直到不超过所述键值对数据库的预设限值,以保证所述报表计算的正常进程。可选地,在本说明书一个或多个实施例中,所述根据缓存替换算法确定所述已缓存报表数据的最近最少使用次数,并结合所述报表数据的重用距离,划分所述已缓存数据的权重值,具体包括:基于预过滤的替换算法对所述已缓存报表数据进行分析,以获得所述键值对数据库中最近最少使用的报表数据;根据分支预测技术定位报表计算过程中报表数据的获取指令,进而对所述报表数据的重用距离进行预测;基于所述最近最少使用的报表数据和所述重用距离得到所述键值对数据库中所述已缓存报表数据的权重值。可选地,本说明书一个或多个实施例中,所述方法还包括:若所述报表的格式信息发生变化或主动触发清空所述键值对数据库的记录功能,则调用清空接口清空所述键值对数据库的数据信息,并根据所述报表的格式信息,更新所述键值对数据库的数据信息。本说明书实施例一个或多个实施例提供一种报表计算装置,所述装置包括:标识确定单元,用于在进行报表计算时,确定出当前节点的标识;第一报表数据获取单元,用于若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算;第二报表数据获取单元,用于若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。可选地,本说明书一个或多个实施例中,所述装置还包括:文件配置单元,用于通过应用服务器,预先设置所述键值对数据库的配置文件;其中,所述键值对数据库预置于数据库服务器中;根据所述配置文件对数据库服务器中预先部署的键值对数据库进行实例编号,并为所述键值对数据库所在的服务器设置ip地址及端口号;通过所述配置文件的缓存设置机制选择是否启用所述键值对数据库,并对键值对数据库设置缓存有效时间;若超过所述有效时间,则从清空所述键值对数据库中缓存的报表数据,并基于所述关系型数据库重新获取所述计算节点需要的数据信息。可选地,本说明书一个或多个实施例中,所述装置还包括:数据缓存单元,用于根据所述报表计算的历史数据,确定所述键值对数据库是否需要缓存所述当前节点的报表数据;若确定出所述报表数据需要被所述键值对数据库缓存,则缓存附带有时间戳的报表数据;其中,所述时间戳记载有所述报表数据的存入时间及有效时间,以便更新删除所述报表数据;若确定出所述报表数据不需要被所述键值对数据库缓存,则推迟将所述报表数据存入所述键值对数据库的时间点。可选地,本说明书一个或多个实施例中,所述装置还包括:数据获取单元,用于向所述关系数据库发送数据查询请求和sql查询语句,以便当前节点可以获取到第二报表数据;其中,所述数据查询请求包括所述当前节点的标识;通过将所述第二报表数据转换为与所述键值对数据库存储相对应的数据类型,获得所述第二报表数据的具体对象;将所述第二报表数据缓存到所述键值对数据库中。可选地,在本说明书一个或多个实施例中,所述装置还包括:缓存替换单元,用于基于判断机制,确定待存入的所述第二报表数据的大小与所述键值对数据库中已缓存报表数据的大小之和,是否超过所述键值对数据库的预设限值;若超过所述预设限值,则根据缓存替换算法确定所述已缓存报表数据的最近最少使用次数,并结合所述报表数据的重用距离,划分所述已缓存报表数据的权重值;根据所述权重值依次删除所述已缓存报表数据,直到不超过所述键值对数据库的预设限值,以保证所述报表计算的正常进程。可选地,本说明书一个或多个实施例中,所述装置还包括:权重设定单元,用于基于预过滤的替换算法对所述已缓存报表数据进行分析,以获得所述键值对数据库中最近最少使用的报表数据;根据分支预测技术定位报表计算过程中报表数据的获取指令,进而对所述报表数据的重用距离进行预测;基于所述最近最少使用的报表数据和所述重用距离得到所述键值对数据库中所述已缓存报表数据的权重值。可选地,本说明书一个或多个实施例中,所述装置还包括:清空更新单元,用于当所述报表的格式信息发生变化或主动触发清空所述键值对数据库的记录功能时,调用清空接口清空所述键值对数据库的数据信息,并根据所述报表的格式信息,更新所述键值对数据库的数据信息。本说明书一个或多个实施例提供了一种报表计算设备,所述设备包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有所述至少一个处理器的执行指令,以使所述至少一个处理器执行,所述执行指令包括:在进行报表计算时,确定出当前节点的标识;若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算;若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。本说明书一个或多个实施例提供了一种非易失性存储介质,存储有计算机的可执行指令,所述可执行指令包括:在进行报表计算时,确定出当前节点的标识;若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算;若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:借助键值对数据库本身提供的特性语法,针对不同类型的报表格式信息,以key-value的形式,记录在键值对数据库中。报表计算时,不需要频繁查询关系型数据库,减少了数据库的压力,使得多用户可以共享键值对数据库中的报表格式信息,减少了应用服务器内存的占用,达到了报表计算性能优化的效果。基于替换缓存算法和分支预测技术,对键值对数据库中的已缓存报表数据进行权重分配删除权重低的报表数据,以保证键值对数据库的内存不超过预设值,同时避免了报表计算过程中的乱序执行的问题。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本说明书实施例提供的一种报表计算方法的方法流程示意图;图2为本说明书实施例提供的一种应用场景下报表计算方法的流程示意图;图3为本说明书实施例提供的一种报表计算方法的装置内部结构示意图;图4为本说明书实施例提供的一种报表计算方法的设备内部结构示意图;图5为本说明书实施例提供的一种非易失性存储介质的内部结构示意图。具体实施方式本说明书实施例提供一种查询动态列的实现方法、装置与设备。为了使本
技术领域
:的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。日常企业运营过程中,需要对大量的数据进行处理计算并利用计算机处理数据和界面设计的功能来生成、展示报表。redis(remotedictionaryserver)是键值对数据库的一种,即远程字典服务,是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。目前,绝大多数系统都是使用内存对频繁使用的数据进行缓存,内存的大小决定了缓存的数据量。在进行一般的统计报表计算时,需要从关系型数据库中查询报表格式等相关的信息。并且,当多个用户同时计算时,经常出现sql语句重复执行且应用服务器内存占用较高的情况,导致报表的计算的性能下降。本发明借助键值对数据库本身的特殊性语法,针对不同类型的报表格式信息,以key-value的形式记录在键值对数据库中。通过使用键值对数据库对报表数据进行缓存,结合关系数据库进行报表数据获取,使得数据可以以键值匹配的方式直接获取报表数据。并且,在下次计算或者其他用户计算需要使用该报表数据时,可以直接从键值对数据库中获取。减少了关系型数据库的请求次数,降低了服务器内存的占用,使得报表计算的性能得到优化,提升了报表计算的速度。通过缓存替换算法对缓存到键值对数据库中的数据进行判断,使得键值对数据库缓存的报表数据可以进行有序的替换,提升报表计算的效率,缓解了非必要数据占用大量内存的问题。本说明书一个或多个实施例的执行主体为当前节点所在的执行单元。如图1所示为本说明书一个或多个实施例提供的一种报表计算方法的方法流程示意图,由图1可知,所述方法包括以下步骤:s101:在进行报表计算时,确定出当前节点的标识。在进行报表计算时,需要确定出当前节点的标识。在本说明书一个或多个实施例中,所述在进行报表计算时,确定出当前节点的标识之前,所述方法还包括:通过应用服务器,预先设置所述键值对数据库的配置文件;其中,所述键值对数据库预置于数据库服务器中;根据所述配置文件对数据库服务器中预先部署的键值对数据库进行实例编号,并为所述键值对数据库所在的服务器设置ip地址及端口号;通过所述配置文件的缓存设置机制选择是否启用所述键值对数据库,并对键值对数据库设置缓存有效时间;若超过所述有效时间,则从清空所述键值对数据库中缓存的报表数据,并基于所述关系型数据库重新获取所述计算节点需要的数据信息。在当前节点进行报表计算之前,需要确定进行报表数据缓存的数据库及相关信息,本说明书一个或多个实施例中,当前节点的执行单元需要预先在数据库服务器中部署键值对数据库,并在应用服务器中预设配置文件,以对键值对数据库及其所在的数据库服务器进行设定。例如:当选择redis数据库作为报表计算中所需要的键值对数据库时,可以在各台应用服务器中部署配置文件staticreportredisconfig.xml,以对redis数据库以及redis数据库所在的数据库服务器进行相关配置,配置的主要内容可以通过以下代码实现:<?xmlversion="1.0"?><cachesetting><appcode>mt88</appcode><ipandport>127.0.0.1:6379</ipandport><state>1</state><vaildtime>259200</vaildtime></cachesetting>需要说明的是:在进行当前节点的报表计算之前,需要对键值对数据库,以及键值对数据库所在的数据库服务器进行预先配置。当前节点的执行单元通过使用应用服务器中appcode来为数据库实例进行编号,例如:上述实例中的数据库实例编号为mt88;通过ipandport为数据库服务器设置ip地址以及端口号,例如:上述配置内容中配置的ip地址为127.0.0.1,数据库服务器的端口号为6379。现实应用中,某些用户进行的报表计算并非为常规计算,需要用到的报表数据在长时间内不会被其自身或者其他用户复用。此时,如果将该用户所需要的报表数据加入键值对数据库,不仅会占用键值对数据的存储空间,也会对报表计算的整体性能、运算速度产生不利影响。所以,配置文件通过state设置是否启用键值对数据库,以避免键值对数据库的滥用。其中,当state设置为1是代表使用键值对数据库,当设置为0是代表不适用键值对数据库。同样的,为了保证键值对数据库的数据更新能力,在配置文件中通过vaildtime设置键值对数据库的有效时间。其中,有效时间的长短可以根据具体的报表计算业务进行对应的设置。若超过有效时间,那么键值对数据库会将其缓存的数据进行清空,重新从关系型数据库中获取报表计算所需要的数据。其中,还需要说明的是redis是一个key-value存储系统。为了保证效率,数据都是缓存在内存中。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,保证掉电重启后缓存能从磁盘文件恢复。s102:若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算。在本说明书一个或多个实施例中,所述获取所述第一报表数据之前,所述方法包括:根据所述报表计算的历史数据,确定所述键值对数据库是否需要缓存所述当前节点的报表数据;若确定出所述报表数据需要被所述键值对数据库缓存,则缓存附带有时间戳的报表数据;其中,所述时间戳记载有所述报表数据的存入时间及有效时间,以便更新删除所述报表数据;若确定出所述报表数据不需要被所述键值对数据库缓存,则推迟将所述报表数据存入所述键值对数据库的时间点。如果根据当前节点的标识可以在键值对数据库中匹配到对应的报表数据则直接获取所述报表数据。与上述步骤101中相同以键值对数据库中的redis数据库为例,如果配置文件中state设置为1,即预先设置的配置文件中显示使用了redis数据库。则根据所述当前节点的标识查询redis数据库中,是否存在对应的报表数据,该查询步骤的主要代码如下所示:publicstaticboolcontainkey(stringdicname,stringkey){if(state=="1"){return=redishelper.hexists(dicname,key);}}如果根据上述查询步骤,确定在redis数据库中缓存有当前节点的报表数据,则可以直接从redis数据库中获得与当前节点的标识对应的报表数据。其中,获取报表数据的主要代码如下所示:若当前节点所需的报表数据可以直接在键值对数据库中获得,那么键值对数据库在当前节点之前就已经将相关的报表数据进行了缓存,但是为了保证内存的容量,使得报表计算的效率提升,键值对数据库中缓存的报表数据可能存在容量限制。所以,为了保证报表计算可以减少从关系数据库中调取报表数据的次数,在本说明书的一个或多个实施例中,可以根据报表计算的历史数据进行机器学习,获得报表计算过程中所需要的报表数据,并将需要的报表数据缓存到键值对数据库中。报表数据的信息格式存在不断更新的情况,当确定出当前节点的报表数据需要被缓存时,将包含存入时间和有效时间的时间戳附带在在报表数据中缓存到键值对数据库中。基于有效时间的限制可以不断更新键值对数据库中的报表数据,适应不同用户进行报表计算时所需的不同格式信息,保证键值对数据库的不断更新扩展。当根据历史数据确定所述当前节点的报表数据,不需要被键值对数据缓存时。即通过机器学习的历史数据进行分析时,确定当前节点所需要的的报表数据不存在复用或者复用概率极低时,会拒绝将该报表数据进行缓存或者推迟将该报表数据存入键值对数据库的时间点。通过该过程使得存入键值对数据库中的报表数据是大概率被重复调用的数据,达到了缓解内存的压力的效果。s103:若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。在本说明书一个或多个实施例中,所述通过预先部署的关系数据库获取对应的第二数据报表信息之前,所述方法包括:向所述关系数据库发送数据查询请求和sql查询语句,以便当前节点可以获取到第二报表数据;其中,所述数据查询请求包括所述当前节点的标识;通过将所述第二报表数据转换为与所述键值对数据库存储相对应的数据类型,获得所述第二报表数据的具体对象;将所述第二报表数据缓存到所述键值对数据库中。当前节点在获取报表计算所需要的第二报表数据时,如果配置文件中的state设置为0,即配置为不使用redis数据库,或者根据当前节点的标识在redis数据库中查询不到相应的第二报表数据时,需要向关系数据库发送数据查询请求并通过sql查询语句获得所需要的第二报表数据。同时,为了方便后续节点中报表计算,可以根据情况将从关系型数据库中获得的第二报表数据计入到redis数据库中。因为,redis数据库中数据的存储形式为key-value的形式,所以需要将从关系型数据库中获取到的第二报表数据转换为对应的datatable、list<string>等数据类型,再以标识-数据对象的形式记录在redis数据库中。以便下次计算或其他用户计算需要使用第二报表数据时,可以直接从redis数据库中,根据当前节点的标识查询获取,以便减少再次向关系型数据库中请求数据的次数,也提高了报表计算的效率和性能。通过关系型数据库与键值对数据库的结合使用,使得报表计算时能够进行高并发、高性能、且支持sql的查询计算,提高报表计算的性能。在本说明书一个或多个实施例中,所述将所述第二报表数据缓存到所述键值对数据库中之前,还包括:基于判断机制,确定待存入的所述第二报表数据的大小与所述键值对数据库中已缓存报表数据的大小之和,是否超过所述键值对数据库的预设限值;若超过所述预设限值,则根据缓存替换算法确定所述已缓存报表数据的最近最少使用次数,并结合所述报表数据的重用距离,划分所述已缓存报表数据的权重值;根据所述权重值依次删除所述已缓存报表数据,直到不超过所述键值对数据库的预设限值,以保证所述报表计算的正常进程。在本说明书一个或多个实施例中,所述根据缓存替换算法确定所述已缓存报表数据的最近最少使用次数,并结合所述报表数据的重用距离,划分所述已缓存报表数据的权重值,具体包括:基于预过滤的替换算法对所述已缓存报表数据进行分析,以获得所述键值对数据库中最近最少使用的报表数据;根据分支预测技术定位报表计算过程中报表数据的获取指令,进而对所述报表数据的重用距离进行预测;基于所述最近最少使用的报表数据和所述重用距离得到所述键值对数据库中所述已缓存报表数据的权重值。在需要进行报表计算的当前节点根据关系型数据库获得之前为缓存在键值对数据库中的第二报表数据库后,为了方便其他用户或者后续节点的报表计算,需要考虑将获得的第二报表数据记入到键值对数据库中。在本说明书一个或多个实施例中,为了保证键值对数据库的业务处理速度会对其可以缓存的数据容量进行限制,以保证其运行速率提升报表计算的效率。将第二报表数据保存到键值对数据库时,要判断带存入的第二报表数据大小加上已缓存报表数据的和是否超过了键值对数据库的预设限值。当超过限值时就需要删除键值对数据库中一个或多个已缓存报表数据,使得第二报表数据可以成功记入。本说明书一个或多个实施例中采用基于预过滤的缓存替换优化算法获得键值对数据库中最近最少使用的报表数据,并结合分支预测技术定位预测到的报表计算过程中报表数据的获取指令,得到报表数据的重用距离,计算已缓存报表数据的权重值。基于分支预测技术获得报表数据的重用距离,避免了报表数据的乱序执行以及缓存预取的干扰,减少了预测过程中所面对的不确定性,提高了缓存数据替换过程的精度。在说明书一个或多个实施例中,将所述已缓存报表数据的最近最少使用次数和1/重用距离的平均值作为已缓存报表数据的权重值,其中权重越小说明该数据的可用性越低。根据获得权重值依次删除权重小的数值,直到第二报表数据存入后不超过键值对数据库的预设限值。在本说明书一个或多个实施例中,所述方法还包括:若所述报表的格式信息发生变化或主动触发清空所述键值对数据库的记录功能,则调用清空接口清空所述键值对数据库的数据信息,并根据所述报表的格式信息,更新所述键值对数据库的数据信息。如果当前节点进行报表计算时,报表的格式信息发生了变化,或者在但前节点中用户出发了清空redis数据库的记录功能,则会调用清空redis数据接口来清空redis数据库中的内容,其中清空redis数据库的主要代码如下所示:当不同用户进行报表计算或多个线程进行报表计算时,不同用户和多个线程之间都可以共享键值对数据库中的数据,减少了数据从关系型数据中重复查询调用的过程,节省了查询语句的重复进行使得报表的计算速度得到提升,报表计算性能得到了优化。而当多应用服务器对键值对数据库及其所在的服务器进行配置和部署时,键值对数据库可以随时进行更新获取,避免了各个服务器之间数据不一致的情况,从而避免了报表计算不准确的情况出现。如图2所示,本说明书一个或多个实施例提供了一种应用场景下的报表计算的流程示意图。如图2所示,本说明书一个或多个实施例中,当前节点在进行报表计算之前,会通过数据库服务器部署redis服务,并基于应用服务器部署配置文件。当开始计算时,将计算的各个节点生成一个唯一节点标识,并根据此标识判断redis数据库中是否包含有此时需要的报表数据。如果redis数据库中为记录,则需要从关系型数据库中通过sql语句查询出来并记入redis数据库中;如果redis数据库中存在该报表数据则直接获取,通过获取相应的报表数据完成当前节点对应的业务操作,循环上述步骤进行下一个计算节点的计算直到完成报表的计算任务。通过键值对数据库与关系型数据库的结合使用,使报表计算时不需要频繁地查询关系型数据库获取报表数据,减少了数据库压力。并且多用户直接可以共享redis中的报表格式信息,减少了应用服务器内存占用,达到报表计算性能优化的目的。如图3所示,本说明书一个或多个实施例提供了一种报表计算装置的内部结构示意图,由图3所示,所述装置包括:标识确定单元301,用于在进行报表计算时,确定出当前节点的标识;第一报表数据获取单元302,用于若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算;第二报表数据获取单元302,用于若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。在本说明书一个或多个实施例中,所述装置还包括:文件配置单元,用于通过应用服务器,预先设置所述键值对数据库的配置文件;其中,所述键值对数据库预置于数据库服务器中;根据所述配置文件对数据库服务器中预先部署的键值对数据库进行实例编号,并为所述键值对数据库所在的服务器设置ip地址及端口号;通过所述配置文件的缓存设置机制选择是否启用所述键值对数据库,并对键值对数据库设置缓存有效时间;若超过所述有效时间,则从清空所述键值对数据库中缓存的报表数据,并基于所述关系型数据库重新获取所述计算节点需要的数据信息。在本说明书一个或多个实施例中,所述装置还包括:数据缓存单元,用于根据所述报表计算的历史数据,确定所述键值对数据库是否需要缓存所述当前节点的报表数据;若确定出所述报表数据需要被所述键值对数据库缓存,则缓存附带有时间戳的报表数据;其中,所述时间戳记载有所述报表数据的存入时间及有效时间,以便更新删除所述报表数据;若确定出所述报表数据不需要被所述键值对数据库缓存,则推迟将所述报表数据存入所述键值对数据库的时间点。在本说明书一个或多个实施例中,所述装置还包括:数据获取单元,用于向所述关系数据库发送数据查询请求和sql查询语句,以便当前节点可以获取到第二报表数据;其中,所述数据查询请求包括所述当前节点的标识;通过将所述第二报表数据转换为与所述键值对数据库存储相对应的数据类型,获得所述第二报表数据的具体对象;将所述第二报表数据缓存到所述键值对数据库中。在本说明书一个或多个实施例中,所述装置还包括:缓存替换单元,用于基于判断机制,确定待存入的所述第二报表数据的大小与所述键值对数据库中已缓存报表数据的大小之和,是否超过所述键值对数据库的预设限值;若超过所述预设限值,则根据缓存替换算法确定所述已缓存报表数据的最近最少使用次数,并结合所述报表数据的重用距离,划分所述已缓存报表数据的权重值;根据所述权重值依次删除所述已缓存报表数据,直到不超过所述键值对数据库的预设限值,以保证所述报表计算的正常进程。在本说明书一个或多个实施例中,所述装置还包括:权重设定单元,用于基于预过滤的替换算法对所述已缓存报表数据进行分析,以获得所述键值对数据库中最近最少使用的报表数据;根据分支预测技术定位报表计算过程中报表数据的获取指令,进而对所述报表数据的重用距离进行预测;基于所述最近最少使用的报表数据和所述重用距离得到所述键值对数据库中所述已缓存报表数据的权重值。在本说明书一个或多个实施例中,所述装置还包括:清空更新单元,用于当所述报表的格式信息发生变化或主动触发清空所述键值对数据库的记录功能时,调用清空接口清空所述键值对数据库的数据信息,并根据所述报表的格式信息,更新所述键值对数据库的数据信息。如图4所示,本说明书一个或多个实施例提供了一种报表计算设备,所述设备包括:至少一个处理器401;以及,与所述至少一个处理器通信连接的存储器402;其中,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述指令被所述至少一个处理器401执行,以使所述至少一个处理器401能够:在进行报表计算时,确定出当前节点的标识;若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算;若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。如图5所示,本说明书一个或多个实施例提供了一种非易失性存储介质,存储有计算机可执行指令501,所述计算机可执行指令501包括:在进行报表计算时,确定出当前节点的标识;若根据所述当前节点的标识与预先设置的配置文件,确定出预先部署的键值对数据库存在对应的第一报表数据,则获取所述第一报表数据,并根据所述第一报表数据完成所述报表计算;若根据所述当前节点的标识与所述配置文件,确定出预先部署的键值对数据库不存在对应的第二报表数据,则通过预先部署的关系数据库获取对应的所述第二报表数据,并根据所述第二报表数据完成所述报表计算。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1