一、背景

        公司有需求要部署一套帆软的BI 和报表的产品, 进行数据统计和展示,但是发现在报表使用过程中展示数据过程缓慢,某些报表需要等待1min-2min 左右才能加载完成。通过运维平台的链路跟踪,发现是数据库执行相关Sql 较慢导致,后面通过查找官方文档,找到一个报表数据缓存的功能,随进行配置,配置后数据加载可以在5s内完成,效果较好。

使用场景

        如果对于数据的实时性要求不高能接受半小时左右的更新频率,使用缓存是一种既能降低服务器和数据库压力,又能提升报表执行速度的方案

二、操作步骤

1、配置Redis 服务器

Redis 服务器作为缓存服务器使用,相关数据缓存到Redis的内存中,并根据配置的刷新策略定期进行刷新

 Redis 官方推荐配置:8C  32G 内存 

2、配置加速配置

按照下图开启缓存配置,并配置缓存内存限制和更新策略

3、配置模版启动加速

根据下图开启对应模版的加速

4、查看加速情况

5、缓存限制

  • 命中策略

通过将数据集查询的结果缓存,再次进行相同查询时,无需连接数据库即可重新查询数据

  • 缓存个数限制

总体缓存个数不能无限制的增长,单个模板的缓存也是这样。

调度器提供了两种踢出规则,依次进行检查:

1)单个模板缓存不能超过1000个(可通过配置修改),超出后踢出

2)总缓存数量不能超过10000个(可通过配置修改),超出后踢出

  • 更新缓存

调度器默认提供了两种更新策略设置:

1)按固定间隔更新:如果设置30分钟,那么缓存将在从存储开始后的第30分钟自动更新

2)按CRON表达式更新:CRON表达式比较灵活的设置需要更新的时间点,当到达预设时间点也会自动更新。

更新缓存时,会根据当前缓存对应记录的sql,重新请求数据库得到结果集,并替换当前的缓存数据,此过程不会阻塞正常取数业务。

三、官网参考链接

抽数缓存介绍- FineReport帮助文档 - 全面的报表使用教程和学习资料

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐