一种处理大数据量网络报表的方法技术

技术编号:24331397 阅读:18 留言:0更新日期:2020-05-29 19:44
本发明专利技术公开了一种处理大数据量网络报表的方法,属于报表系统技术领域。本发明专利技术的处理大数据量网络报表的方法包括分页展示、报表数据缓存和报表增量保存,分页展示时网络报表中数据行格式相同,且填报随时增减行数的区域为变动区;报表数据缓存分为前端缓存和后端本地缓存,前端缓存存储在浏览器内存中,后端本地缓存以字典结构存储在本地内存;报表增量保存过程中,若发生影响到数据的修改,则将发生的变更提交至后端本地缓存,同时后端本地缓存进行数据更新。该发明专利技术的处理大数据量网络报表的方法可避免浏览器同时加载过多数据造成卡顿及浏览器一次提交过多数据造成卡顿的问题,具有很好的推广应用价值。

A method of processing large data network report

【技术实现步骤摘要】
一种处理大数据量网络报表的方法
本专利技术涉及报表系统
,具体提供一种处理大数据量网络报表的方法。
技术介绍
WEB报表指无需安装客户端,直接可在浏览器打开进行查看填报的报表,方便随时随地的填报数据以及共享数据,查询数据。WEB报表需要数据一致性和负载均衡。其中数据一致性,由于对WEB报表性能的要求,需要对报表数据做前端以及后端的缓存,有可能导致缓存中的数据与数据库中的数据不一致的情况,必须通过某种手段能够保证数据的一致性。负载均衡,大型的报表系统的应用服务通常部署在多个应用服务器上以便在集中填报时将前端请求分发到不同服务器以减少单个服务器压力过大造成运行缓慢,提高总体性能。负载均衡会产生不同的本地缓存,为数据一致性的保持带来困难。大数据量填报,浏览器与传统单机客户端相比其性能有限,当展示大量数据,提交保存大量数据时会产生卡顿甚至卡死,有待进一步的改进。
技术实现思路
本专利技术的技术任务是针对上述存在的问题,提供一种可避免浏览器同时加载过多数据造成卡顿及浏览器一次提交过多数据造成卡顿,从而解决浏览器的网络报表的大数据量展示编辑问题的处理大数据量网络报表的方法。为实现上述目的,本专利技术提供了如下技术方案:一种处理大数据量网络报表的方法,包括分页展示、报表数据缓存和报表增量保存,分页展示时网络报表中数据行格式相同,且填报随时增减行数的区域为变动区;报表数据缓存分为前端缓存和后端本地缓存,前端缓存存储在浏览器内存中,后端本地缓存以字典结构存储在本地内存;报表增量保存过程中,若发生影响到数据的修改,则将发生的变更提交至后端本地缓存,同时后端本地缓存进行数据更新。作为优选,分页展示过程中变动区设定展示的最大行数即单页展示行数,总行数超过变动区可展示最大行数则超过部分不显示,并根据单页展示行数计算出总页数。作为优选,页面展示过程中点击翻页包括两种模式:模式一为当前页数据清除,展示下页数据;模式二为当前页数据保留,将下页数据插入到当前页数据之后。作为优选,分页展示时采用排序码比较规则,依据排序码排序,排序码为不定长的字符串,比较规则为从左至右依次比较,若能比较出大小则直接返回比较结果,若相等则寻找下一位进行比较,若下一位不存在则较短的字符串更小。作为优选,页面展示时采用排序码编码算法,报表行依据排序码排序,排序码类型为字符串类型,首次插入行时为12位字符串,每增加一行数据加1。若在两行之间插入N行,N行的排序码编码算法如下:设前行码为A后行码为B,以10为底计算logN得到x,若A与B位数相同,则需要扩位,扩位的规则为N行中的首行编码为A_{0,x-1}1其中{0,x}表示有x-1个0,其余行在首行码基础上依次增加,完整表达式为A_{0,x-1-[log(i)]}i,其中i表示N行中的第i行,[log(i)]以10为底取下整。若A与B位数不同,则在B字符串中查找最后一个“_”的位置,将该位置之后的字符全部替换为0记为b_0,插入的N行中第i行的完整表达式为b_0_{0,x-1-[log(i)]}i。若在最后一行后插入N行,则根据最后一行的值顺序加1,若最后一行存在扩位且要插入的行数大于扩充位数所能表达的数值上限,则继续进行扩位,扩充的位数为logN。作为优选,报表数据缓存的前端缓存以报表ID加时间戳标记数据,后端本地缓存中Key为用户名加报表ID加上下文信息的组合,Value为报表数据加时间戳标记。作为优选,报表数据缓存过程中,读取数据时先检查前端缓存时间戳是否最新,若为最新则直接从前端缓存读取数据,若不是最新且后端缓存时间戳为最新则从后端缓存读取数据,若后端缓存时间戳不是最新或不存在则从数据库中读取数据加入缓存之中,并返回前端缓存同时更新后端缓存时间戳。作为优选,报表增量保存过程中,发生影响到数据的修改包括排序、过滤、查询、新增、修改及删除,用户进行报表增量保存时,发送报表ID与上下文,后端缓存将已经变更的数据提交至数据库中,并刷新前端缓存、后端缓存及数据库中的所有时间戳。与现有技术相比,本专利技术的处理大数据量网络报表的方法具有以下突出的有益效果:所述处理大数据量网络报表的方法通过分页展示,可避免浏览器同时加载过多数据造成卡顿的问题,增量保存可以避免浏览器一次提交过多数据造成卡顿的问题,具有良好的推广应用价值。附图说明图1是本专利技术所述处理大数据量网络报表的方法中排序码生成示意图;图2是本专利技术所述处理大数据量网络报表的方法的具体实施例示意图。具体实施方式下面将结合附图和实施例,对本专利技术的处理大数据量网络报表的方法作进一步详细说明。实施例本专利技术的处理大数据量网络报表的方法,包括分页展示、报表数据缓存和报表增量保存。分页展示时网络报表中数据行格式相同,且填报随时增减行数的区域为变动区。分页展示过程中变动区设定展示的最大行数即单页展示行数,总行数超过变动区可展示最大行数则超过部分不显示,并根据单页展示行数计算出总页数。页面展示过程中点击翻页包括两种模式:模式一为当前页数据清除,展示下页数据;模式二为当前页数据保留,将下页数据插入到当前页数据之后。如图1所示,分页展示时采用排序码比较规则,依据排序码排序,排序码为不定长的字符串,比较规则为从左至右依次比较,若能比较出大小则直接返回比较结果,若相等则寻找下一位进行比较,若下一位不存在则较短的字符串更小。页面展示时采用排序码编码算法,报表行依据排序码排序,排序码类型为字符串类型,首次插入行时为12位字符串,每增加一行数据加1。若在两行之间插入N行,N行的排序码编码算法如下:设前行码为A后行码为B,以10为底计算logN得到x,若A与B位数相同,则需要扩位,扩位的规则为N行中的首行编码为A_{0,x-1}1其中{0,x}表示有x-1个0,其余行在首行码基础上依次增加,完整表达式为A_{0,x-1-[log(i)]}i,其中i表示N行中的第i行,[log(i)]以10为底取下整。若A与B位数不同,则在B字符串中查找最后一个“_”的位置,将该位置之后的字符全部替换为0记为b_0,插入的N行中第i行的完整表达式为b_0_{0,x-1-[log(i)]}i。若在最后一行后插入N行,则根据最后一行的值顺序加1,若最后一行存在扩位且要插入的行数大于扩充位数所能表达的数值上限,则继续进行扩位,扩充的位数为logN。报表数据缓存分为前端缓存和后端本地缓存,前端缓存存储在浏览器内存中,后端本地缓存以字典结构存储在本地内存。报表数据缓存的前端缓存以报表ID加时间戳标记数据,后端本地缓存中Key为用户名加报表ID加上下文信息的组合,Value为报表数据加时间戳标记。报表数据缓存过程中,读取数据时先检查前端缓存时间戳是否最新,若为最新则直接从前端缓存读取数据,若不是最新且后端缓存时间戳为最新则从后端缓存读取数据,若后端缓存时间戳不是最新或不存在则从数据库中读取数据加入缓存之中,并返回前端缓存同时更新后端缓存时间戳。本文档来自技高网...

【技术保护点】
1.一种处理大数据量网络报表的方法,其特征在于:包括分页展示、报表数据缓存和报表增量保存,分页展示时网络报表中数据行格式相同,且填报随时增减行数的区域为变动区;报表数据缓存分为前端缓存和后端本地缓存,前端缓存存储在浏览器内存中,后端本地缓存以字典结构存储在本地内存;报表增量保存过程中,若发生影响到数据的修改,则将发生的变更提交至后端本地缓存,同时后端本地缓存进行数据更新。/n

【技术特征摘要】
1.一种处理大数据量网络报表的方法,其特征在于:包括分页展示、报表数据缓存和报表增量保存,分页展示时网络报表中数据行格式相同,且填报随时增减行数的区域为变动区;报表数据缓存分为前端缓存和后端本地缓存,前端缓存存储在浏览器内存中,后端本地缓存以字典结构存储在本地内存;报表增量保存过程中,若发生影响到数据的修改,则将发生的变更提交至后端本地缓存,同时后端本地缓存进行数据更新。


2.根据权利要求1所述的处理大数据量网络报表的方法,其特征在于:分页展示过程中变动区设定展示的最大行数即单页展示行数,总行数超过变动区可展示最大行数则超过部分不显示,并根据单页展示行数计算出总页数。


3.根据权利要求2所述的处理大数据量网络报表的方法,其特征在于:页面展示过程中点击翻页包括两种模式:模式一为当前页数据清除,展示下页数据;模式二为当前页数据保留,将下页数据插入到当前页数据之后。


4.根据权利要求3所述的处理大数据量网络报表的方法,其特征在于:分页展示时采用排序码比较规则,依据排序码排序,排序码为不定长的字符串,比较规则为从左至右依次比较,若能比较出大小则直接返回比较结果,若相等则寻找下一位进行比较,若下一位不存在则较短的字符串...

【专利技术属性】
技术研发人员:彭鹏
申请(专利权)人:山东浪潮通软信息科技有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1