自动均衡资源和效率的报表导出方法与流程
未命名
09-29
阅读:74
评论:0
1.本发明涉及一种报表导出技术,更具体的说是涉及一种自动均衡资源和效率的报表导出方法。
背景技术:
2.对于大部分企业而言,一般的经营统计类报表会以年/月单位产出,数据量往往很大,再加上稍复杂的多列结构,整个报表的单元格数少则几万,多则百万个。
3.通常报表低层引擎是以单元格作为渲染/导出的最小单元,单元格数越多,往往耗时越久,内存占用也就越高。多数企业为了应对周期性低频的报表场景,不得不提高硬件的配置,进一步增加企业信息化成本。
4.例如a企业在17年初采购了一套报表产品,并以2g内存的服务器资源进行部署。而后续数十种经营数据以天的周期产出,且财务部门通常以季度、年度的方式进行汇总展示,在经历2年之后,经营数据量达到几万条,一张报表的单元格数达到了百万个。而财务人员每次导出报表数据,百万单元格都会把服务器的资源全部占满,导致服务宕机,所有生产业务不可用。
5.对此,通常信息化部门只能通过提交硬件内存的方式,临时解决该问题。
6.而目前的报表处理技术,如专利号为2020108581179,名称为一种复杂报表引擎方法及装置的复杂报表处理技术,并不能够解决上述问题。
技术实现要素:
7.针对现有技术存在的不足,本发明的目的在于提供一种能够有效的解决报表处理过程中存在的硬件成本高和容易出现服务宕机的自动均衡资源和效率的报表导出方法。
8.为实现上述目的,本发明提供了如下技术方案:一种自动均衡资源和效率的报表导出方法,包括如下步骤:
9.步骤一,在启动报表导出流程后,针对当前用户的身份,是否有操作该报表的权限进行校验,若权限校验失败,则直接结束,权限校验成功则继续下一步;
10.步骤二,权衡单元格数、硬件内存和报表优先级计算出最佳值;
11.步骤三,将计算出针对本张报表导出的最佳值;
12.步骤四,将步骤三计算出的最佳值拼接到sql中;
13.步骤五,基于步骤三中的拼接sql的结果语句,直接在对应的数据库中执行查询数据;
14.步骤六,获取到步骤四的执行结果,将结果加载到内存,进行暂存;
15.步骤七,通过报表事先配置好的配置信息,进行样式、格式、公式计算,填充到单元格中完成单元格渲染或填充,之后判断是否完成报表导出,若完成直接结束,未完成则返回步骤四。
16.作为本发明的进一步改进,所述步骤三中计算最佳值的具体步骤如下:
17.步骤三一,优先级配置;
18.步骤三二,通过sql统计出本次操作的数据行、列数,并换算出单元格数;
19.步骤三三,通过java命令,获取当前运行的内存数来获取硬件内存;
20.步骤三四,通过步骤三二和步骤三三获取到的单元格数和内存值计算最佳值。
21.作为本发明的进一步改进,所述步骤三四中计算最佳值的具体步骤为:
22.步骤三四一,输入单元格数、内存值和列数;
23.步骤三四二,判断查询结果的单元格数是否小于等于50000个,若小于等于50000个,则直接返回50000对应的行数,作为sql查询的行数作为最佳值,若查询结果的单元格数大于50000个,同时当时可用内存小于800m的2倍,本次计算返回50000对应的行数,作为sql查询的行数作为最佳值,若查询结果的单元格数大于50000个,同时当时可用内存大于800m的2倍,同时小于800m的3倍,本次计算返回50000*2对应的行数,作为sql查询的行数作为最佳值;若查询结果的单元格数大于50000个,同时当时可用内存大于800m的3倍,同时小于800m的4倍,本次计算返回50000*3对应的行数,作为sql查询的行数作为最佳值。
24.作为本发明的进一步改进,所述步骤三一中的优先级配置中使用导出的报表名称进行匹配配置文件的信息,若匹配命中,则直接将配置的值返回,流程中断,如果未命中,则流转到下一步进行sql拼接。
25.本发明的有益效果,通过最佳值的计算,便可实现实时的统计报表行列数、硬件内存、操作耗时以及报表优先级等多个纬度的综合决策,动态计算出本次业务适应当前硬件配置的最佳值,既满足低配硬件正常执行大报表业务的诉求,同时也可以通过提高硬件,来提供报表产出效率。
附图说明
26.图1为本发明的自动均衡资源和效率的报表导出方法的流程示意图;
27.图2为图1中最佳值计算的流程示意图。
具体实施方式
28.下面将结合附图所给出的实施例对本发明做进一步的详述。
29.术语解释:
30.报表
31.用表格、图表等格式来动态显示数据。
32.可以用公式表示为:“报表=多样的格式+动态的数据”。
33.资源
34.此处的资源指计算机的算力和内存。
35.效率
36.此处的效率指用户渲染或导出一张完整报表的耗时。
37.参照图1至2所示,本实施例的一种自动均衡资源和效率的报表导出方法,包括如下步骤:
38.步骤一,在启动报表导出流程后,针对当前用户的身份,是否有操作该报表的权限进行校验,若权限校验失败,则直接结束,权限校验成功则继续下一步;
39.步骤二,权衡单元格数、硬件内存和报表优先级计算出最佳值;
40.步骤三,将计算出针对本张报表导出的最佳值;
41.步骤四,将步骤三计算出的最佳值拼接到sql中;
42.步骤五,基于步骤三中的拼接sql的结果语句,直接在对应的数据库中执行查询数据;
43.步骤六,获取到步骤四的执行结果,将结果加载到内存,进行暂存;
44.步骤七,通过报表事先配置好的配置信息,进行样式、格式、公式计算,填充到单元格中完成单元格渲染或填充,之后判断是否完成报表导出,若完成直接结束,未完成则返回步骤四,通过步骤三和步骤四的设置,便可有效的根据单元格数、硬件内存计算出最佳值,并且将最佳值拼接到sql中的方式,便可有效的实现通过多个纬度的综合决策,计算出本次业务适应当前硬件配置的最佳值,来完成大数据报表的产出,避免了更多企业成本的投入。
45.作为改进的一种具体实施方式,所述步骤三中计算最佳值的具体步骤如下:
46.步骤三一,优先级配置;
47.步骤三二,通过sql统计出本次操作的数据行、列数,并换算出单元格数;
48.步骤三三,通过java命令,获取当前运行的内存数来获取硬件内存;
49.步骤三四,通过步骤三二和步骤三三获取到的单元格数和内存值计算最佳值,通过上述步骤的设置,便可有效的实现通过本次操作的表格的单元格数来计算出最佳值了,由此有效的实现对于资源的分配了。
50.作为改进的一种具体实施方式,所述步骤三四中计算最佳值的具体步骤为:
51.步骤三四一,输入单元格数、内存值和列数;
52.步骤三四二,判断查询结果的单元格数是否小于等于50000个,若小于等于50000个,则直接返回50000对应的行数,作为sql查询的行数作为最佳值,若查询结果的单元格数大于50000个,同时当时可用内存小于800m的2倍,本次计算返回50000对应的行数,作为sql查询的行数作为最佳值,若查询结果的单元格数大于50000个,同时当时可用内存大于800m的2倍,同时小于800m的3倍,本次计算返回50000*2对应的行数,作为sql查询的行数作为最佳值;若查询结果的单元格数大于50000个,同时当时可用内存大于800m的3倍,同时小于800m的4倍,本次计算返回50000*3对应的行数,作为sql查询的行数作为最佳值,通过上述步骤的设置,便可有效的根据单元格数和可用内存计算出最佳值了。
53.作为改进的一种具体实施方式,所述步骤三一中的优先级配置中使用导出的报表名称进行匹配配置文件的信息,若匹配命中,则直接将配置的值返回,流程中断,如果未命中,则流转到下一步进行sql拼接,通过上述方式的设置,便可有效的实现快速配置优先级了。
54.综上所述,本实施例的导出方法,使用自动化的方式,结合企业在大数据报表渲染/导出场景的需求,而形成的一套大数据报表导出的通用解决方案,有效的均衡资源和效率,有效的满足客户硬件内存在低、中、高各服务器配置下对于报表使用的诉求。
55.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种自动均衡资源和效率的报表导出方法,其特征在于:包括如下步骤:步骤一,在启动报表导出流程后,针对当前用户的身份,是否有操作该报表的权限进行校验,若权限校验失败,则直接结束,权限校验成功则继续下一步;步骤二,权衡单元格数、硬件内存和报表优先级计算出最佳值;步骤三,将计算出针对本张报表导出的最佳值;步骤四,将步骤三计算出的最佳值拼接到sql中;步骤五,基于步骤三中的拼接sql的结果语句,直接在对应的数据库中执行查询数据;步骤六,获取到步骤四的执行结果,将结果加载到内存,进行暂存;步骤七,通过报表事先配置好的配置信息,进行样式、格式、公式计算,填充到单元格中完成单元格渲染或填充,之后判断是否完成报表导出,若完成直接结束,未完成则返回步骤四。2.根据权利要求1所述的自动均衡资源和效率的报表导出方法,其特征在于:所述步骤三中计算最佳值的具体步骤如下:步骤三一,优先级配置;步骤三二,通过sql统计出本次操作的数据行、列数,并换算出单元格数;步骤三三,通过java命令,获取当前运行的内存数来获取硬件内存;步骤三四,通过步骤三二和步骤三三获取到的单元格数和内存值计算最佳值。3.根据权利要求2所述的自动均衡资源和效率的报表导出方法,其特征在于:所述步骤三四中计算最佳值的具体步骤为:步骤三四一,输入单元格数、内存值和列数;步骤三四二,判断查询结果的单元格数是否小于等于50000个,若小于等于50000个,则直接返回50000对应的行数,作为sql查询的行数作为最佳值,若查询结果的单元格数大于50000个,同时当时可用内存小于800m的2倍,本次计算返回50000对应的行数,作为sql查询的行数作为最佳值,若查询结果的单元格数大于50000个,同时当时可用内存大于800m的2倍,同时小于800m的3倍,本次计算返回50000*2对应的行数,作为sql查询的行数作为最佳值;若查询结果的单元格数大于50000个,同时当时可用内存大于800m的3倍,同时小于800m的4倍,本次计算返回50000*3对应的行数,作为sql查询的行数作为最佳值。4.根据权利要求3所述的自动均衡资源和效率的报表导出方法,其特征在于:所述步骤三一中的优先级配置中使用导出的报表名称进行匹配配置文件的信息,若匹配命中,则直接将配置的值返回,流程中断,如果未命中,则流转到下一步进行sql拼接。
技术总结
本发明公开了一种自动均衡资源和效率的报表导出方法,包括如下步骤:步骤一,在启动报表导出流程后,针对当前用户的身份,是否有操作该报表的权限进行校验,若权限校验失败,则直接结束,权限校验成功则继续下一步;步骤二,权衡单元格数、硬件内存和报表优先级计算出最佳值;步骤三,将计算出针对本张报表导出的最佳值;步骤四,将步骤三计算出的最佳值拼接到SQL中;步骤五,基于步骤三中的拼接SQL的结果语句;步骤六,获取到步骤四的执行结果,将结果加载到内存,进行暂存;步骤七,通过报表事先配置好的配置信息。本发明的自动均衡资源和效率的报表导出方法,通过最佳值的计算,可有效的达到分批次查询、数据处理的目的。数据处理的目的。数据处理的目的。
技术研发人员:王轩 毕新锋 宋杨 秦钢 花京武
受保护的技术使用者:杭州指令集智能科技有限公司
技术研发日:2023.02.07
技术公布日:2023/9/25
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:车辆的门结构的制作方法 下一篇:一种新7β-羟基类固醇脱氢酶及应用