项目背景:
随着企业业务的快速发展和数据量的不断增加,当前使用的帆软报表系统在性能和规范管理方面面临诸多挑战。特别是由于报表数量持续增长且缺乏有效管理,这对服务器带来了较大的压力,甚至出现宕机风险,进而影响了业务运作。目前每次发生问题卡顿后只能被动地进行解决,无法提前避免导致会对业务造成一定的影响。
现状与问题分析:
1、报表数量只增不减
由于各部门不断新增报表,但缺乏相应的删除或归档机制,使得无效或冗余报表长期存在,占用大量系统资源。
2、缺乏规范管理与考核机制
通过梳理和完善开发规范,减少运维成本,并定期清理不再使用的报表,从而降低服务器负载压力。
3、性能问题引发服务器宕机风险
庞大的报表数量及复杂的数据查询操作,经常造成服务器负载过重,从而出现宕机等严重问题,对日常业务运营产生直接影响。
通过日志时长解析定位到相关问题点,每张报表进行归类,分为经营报告类,统计分析类,明细查询类。
项目目标:
通过本次优化项目,我们旨在提升帆软报表系统的整体性能,并建立完善的数据管理及考核体系,以确保系统稳定运行并支持公司未来发展需求。
平台整体通知各领域:经营报告类要求在5秒内打开,统计分析类要求在8秒内打开,明细查询类要求在12秒内打开。
解决措施:
- 拟定公司开发规范,并拟定报表发布及下架流程
拟定的规范审核指标如下:
(1)数据连接命名规范说明如下:
(2)数据集命名不规范的默认值:
写数据集SQL的时候必须写明数据集的用途,不能用ds1,ds2默认的写法,会导致后期更新加重运维量。
- 跳转命名不规范
默认的“网络报表”开头的都属于不规范
可直接在监控预警下面进行稽查,历史有问题的,进行通知领域更新,新上架的流程里会进行审核,不通过不能正常发起流程,需命名规范后再进行提交流程。
我们将对所有现有的报表进行全面整改,确保其符合最新标准。新的报表在提交前必须满足这些要求。通过完成这一闭环流程,可以更好地监控和管理平台的其他事项,提高整体效率和稳定性。
- 测试机进行流程同步到正式机,进行审核和预警归类
说明:审核指标:必须都满足的情况下,才能进行发布流程
预警指标:进行相关提醒,会影响整体报表性能,可查看具体的相关监控报表。
- 规范的命名及数据集的备注能减少重复建设
整体指标全部拟定完后,设置个总览界面,可让每个领域一目了然查看到开发的相关问题点,定期进行清理及优化。
我们将对所有现有的报表进行全面整改,确保其符合最新标准。新的报表在提交前必须满足这些要求。通过完成这一闭环流程,可以更好地监控和管理平台的其他事项,提高整体效率和稳定性。
不同角色进行报表的相关监控:
- 报表打开时长优化
基于平台拟定的管理时长要求,超出的都要求进行优化整改,各领域按计划排期进行优化整改,平台提供相对应的优化方案及在优化过程中针对场景的案例,并进行推进优化。
如下图:用logdb库定期同步到公司内部数据库,再进行相关展现结果:
模板时间默认5秒以上或SQL时间2秒以上的报表都需要进行关注,如模板打开超过12秒了是必须进行优化整改的。
相关问题平台主导进行拟定整改方案:
比如:帆软Report现存大数据量解决方案
目前帆软report相关明细表在用时存在的几个问题:
1、数据量超过50W行以上,发现打开较慢,超过规范拟定的12秒。
2、数据量大时,导出时长比较慢,有时候浏览器都会奔溃。
3、列不能根据选择字段进行自动聚合,只能全部字段放出导出再进行EXCEL透视。
4、还有些已经是明细表了,还设置成数据分析(内容全部加载出来,不分页)模式进行预览,造成对服务器的压力,导致服务器内存溢出宕机。
5、时间数据量不做限制查询,例如默认是当前月,但时间可以扩开选择,导致数据量过大。
开发角度初步判断说明:
场景一:帆软Report如在40列范围内,用帆软Report内部优化整改即可。
可直接使用新计算引擎功能“模板——报表引擎属性”,默认只加载第一页,不会把所有页面数据加载出来再计算页数。打开速度能直接提升。
针对导出:大数据集导出基础操作步骤示意图:
场景二:帆软Report超出40列,性能会比较慢,帆软BI对列的处理比较友好,超过40列以上的明细可以使用帆软BI实现,采取数据提取的方式。说明:提取方式,对SQL里默认的参数只是过滤作用,没法当成灵活参数来使用。
带参数的用直连数据进行实现:
SQL和帆软Report的保持一致:参数及样式方便在BI里复现。
场景三:给各事业部统一做的明细表,每个领域真正想要的字端都需自定义筛选过,可使用帆软BI放出对应的列,业务人员可以进行相关字段的选择进行自主分析。
平台或各领域在帆软BI开发好明细报表后,业务可自行在界面上进行筛选做处理。方便业务聚合,减少导出所有字段的场景。业务选择完后,数据列重新聚合后,数据行会变少,导出压力也有所减轻。截图说明:
场景四:如没有权限区分,可直接使用帆软BI的提取功能,首次初始化更新,或者可以局部加上时间进行更新数据,数据存放在服务器上的磁盘空间上,直接读取缓存性能较快。
公共数据,设置成“提取数据”,按业务场景要求定期同步数据。
如果数据量大时(超过500W以上)采用多次分段取历史数据,之后再定时增量更新数据。
增量更新概述-https://help.fanruan.com/finebi/doc-view-92.html
增量增加示例-https://help.fanruan.com/finebi/doc-view-671.html
增量修改示例-https://help.fanruan.com/finebi/doc-view-1663.html
场景五:如需添加对应的权限方式,在帆软BI里如设置成“直连模式”,数据量不大、数据及时性较高的情况下比较合适。一般情况下帆软BI使用提取比较方便调用数据,数据是存放在数据库磁盘内的,调用会比较快。
例如: 权限使用分为:用户表,权限表,事业部名称表。
提取模式还需要用到权限的:参考帆软自带的帮助文档进行相关分权处理。
说明:抽取模式SQL里面写的参数是不生效的,需要对应关系在帆软内部制作。
四联表模型-https://help.fanruan.com/finebi/doc-view-2137.html
四联表模型示例之多层级权限分配-
https://help.fanruan.com/finebi/doc-view-2174.html
多层级权限分配-https://help.fanruan.com/finebi/doc-view-378.html
公司内部开发一般遇到问题会先找帆软官方资料,如还解决不了的,我们会及时联系帆软专人服务或线上客服,更好的结合厂商提供解决方案,解决的相关场景问题,平台会整理成知识库,开发人员可进行相关场景学习并应用到自己的业务报表中。
|