历史版本12 :抽数缓存介绍 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

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

目录:

1. 插件基本介绍编辑

报表服务器版本

JAR 包版本

 插件版本 

10.02020-05-04V1.2.2

1.1 功能介绍

1)抽数缓存插件可先将其数据集查询的结果缓存下来,对于缓存下来的数据,再次进行相同查询时,无需再次连接数据库重新查询数据,直接使用缓存下来的结果,达到资源复用,减少取数时间从而提高了报表的展现速度。

2)能够基于模板的访问情况,推荐适合使用缓存的模板,并对经常访问的模板进行定时更新,避免用户出现“首次访问慢”的场景。

3)对于使用填报的客户,更能根据填报的情况,快速失效缓存,确保数据的一致性。

4)提供缓存管理界面,可以直观看到缓存使用情况并进行管理。

1.2 插件安装

注:本文暂不提供下载链接,请需要的客户联系技术支持获取。

设计器插件安装方法参照: 设计器插件管理

服务器安装插件方法参照: 服务器插件管理

2. 插件使用方法编辑

2.1 缓存推荐

通过对系统的智能检测,推荐系统中现有适合开启抽数缓存的模板

例如:

决策系统地址:http://localhost:8075/webroot/decision

缓存推荐访问地址:http://localhost:8075/webroot/decision/esd/recommend/cpt

也可以直接通过 2.3中平台的“增强缓存”——“缓存模板管理”页面进行分析并开启

2.2 服务器缓存配置

在平台的“增强缓存”——“缓存配置”页面中,可以对服务器的缓存进行设置

image.png

缓存设置:

1)开启缓存为总开关,关闭后服务器将停止使用缓存

2)  显示缓存提示用于设置是否在模板预览的工具栏处显示缓存提示,包括手动更新数据按钮和缓存生成时间,点击更新数据后可在预览时手动更新用到的缓存,用于用户在觉得数据不准确时立即进行更新。

image.png

3)允许缓存到磁盘用于设置是使用磁盘+内存进行缓存,或仅使用内存进行缓存

4)缓存内存空间限制用于限制缓存占用服务器内存空间的最大值

5)缓存磁盘空间限制用于限制缓存占用服务器磁盘空间的最大值

策略配置中为高级设置:

缓存策略提供两种选择:分别为按频率间隔更新或定时更新。

定时更新支持具体时间(如"07:00:00")或CRON表达式(如"0 50 8 * * ?"表示每天上午8:50)

其中按频率间隔更新支持开启缓存规则自动优化(建议开启),开启后将自动在运行过程中判断缓存更新间隔是否合理,并对相应规则进行调整优化。

注意:更新间隔是弹性的,如果sql结果每次变化,那么就会间隔缩短,表示这是一个需要加快更新的数据表,最短是sql执行的两倍间隔;如果sql每次结果都不变,间隔就会变成,最长6小时更新一次

关于支持数据量:能支持的模板的数据量是按照内存分配动态调整的,默认 500MB ,就是1kw上限(行 * 列),如有更大数据量的需求,可以计算模板占用内存自由调整分配内存(不建议用于过大数据量的缓存)


2.3 缓存模板管理页面

安装插件后,平台目录新增“增强缓存”标签,点击其中的“缓存模板管理”可进入缓存模板管理页面

image.png

其中包括“缓存模板推荐”和“缓存模板管理”

缓存模板推荐将根据系统的历史运行数据进行分析,并推荐可能适合使用缓存的模板,首次使用缓存建议进行检测

检测后将把推荐的模板以多选树形式展示,客户可快速开启推荐模板的缓存

image.png

缓存模板管理用于展示采用服务器设置(默认)的模板的缓存开启状态,可以手动进行模板的批量开启及关闭,通过缓存模版推荐开启的模板也将在这展示

2.4 数据集缓存设置

插件安装后,将替代原本共享数据集,在数据库查询和服务器数据集处显示新的缓存设置

企业微信截图_15991235862019.png

采用服务器设置时,将使用服务器默认的缓存策略,可以看到对应的缓存策略及缓存是否默认开启,但不允许修改

为该数据集单独设置时,允许单独设置此数据集是否使用缓存以及策略配置。

企业微信截图_1599123527543.png

企业微信截图_15991238262598.png

2.5 缓存快速开启/关闭

对于存在较多数据集的模板,一个个修改缓存设置较花时间

可以通过数据集工具栏的按钮实现快速开启/关闭

企业微信截图_16031085662343.png

点击1.png按钮将批量修改当前模板的数据集为单独设置,并开启缓存

点击2.png按钮将批量修改当前模板的数据集为单独设置,并关闭缓存

2.6 缓存运行监控页面

安装插件后,平台目录新增“增强缓存”标签,点击其中的运行监控可进入缓存运行监控页面

image.png

在此页面中可以一览目前使用缓存,并对其进行增删改等管理操作。

其中包括缓存目前系统资源占用情况,缓存个数(括号内为总生效缓存数,括号外为自动更新缓存数),缓存的来源模板、数据连接、具体缓存sql、数据量、缓存方式、缓存命中情况和具体的缓存更新情况等

“自动更新”:为避免出现无价值的缓存,浪费服务器和数据库资源,缓存存在5次的门槛,当数据查询达到5次,才会进入自动更新,避免用户出现“首次访问慢”的场景,每日定时更新的无门槛

可以通过按钮对单一或全部的缓存进行清除企业微信截图_15991245737709.png,对单一或全部的缓存进行中止(不再使用缓存)企业微信截图_1599124585687.png或对单一缓存进行立即更新企业微信截图_15991245597057.png

“暂停抽数”、“恢复抽数”:表示暂停/恢复所有缓存自动更新

企业微信截图_15991243045809.png

“暂停缓存”、“恢复缓存”:表示停止使用缓存,功能等同于缓存的总开关

企业微信截图_15991243376815.png

“缓存计划明细”:点击下次更新时间可查看当前缓存的计划明细,包括:

1)策略开启:目前默认是,表示会存取都走缓存,定时更新也会根据配置和访问情况执行;

2)是否自动调整:目前默认是,表示更新间隔、是否自动更新都会根据访问情况自动调整;

3)是否开启监控缓存访问:默认是,表示缓存的访问记录(访问命中更新失效的时间)都会被统计;

4)策略开始时间:缓存及策略第一次访问被创建的时间;

5)上次更新时间:缓存的上次更新时间;

6)存活时间:缓存在超过存活时间后会被失效;

7)终止前空闲时长:缓存超过这个时长没有被访问,就会被终止(终止表示清除此缓存、访问数据以及策略);

8)更新间隔:缓存自动更新的间隔;

9)终止时间:缓存及其策略被终止的时间,如果sql包含某些关键字认为不适合缓存,将会被设置终止时间;

10)连续更新不同次数:每次自动更新的缓存数据都变化的次数;

11)连续更新相同次数:每次自动更新的缓存数据都不变化的次数;

12)连续更新失败次数:连续自动更新失败的累计次数,达到10次将会被终止;

67c908d8-0a8a-4c01-9edd-10db9bf64d69.png

2.6 磁盘缓存目录修改

若启用了磁盘缓存,默认的会在C:\Users\用户名\.FineReport100(windows下)下创建 cache 即缓存文件夹,一般呢,C 盘的空间会很小,如保存在 C 盘会增加对 C 盘的压力,那么有没有方法让其保存到别的盘下呢?

磁盘缓存的目录可通过 FineDB 的 FINE_CONF_ENTITY 表中的配置信息进行修改,这里缓存地址修改的是 ESDCacheManagerConfig.diskStorePath 字段的值(如不存在自行添加),例如,将 ESDCacheManagerConfig.diskStorePath 的值改为D:\Cache,这里使用填报的方式,具体实现方法参考 报表内置 HSQL 数据库 FineDB

修改后保存并提交,重启(禁用再启用)插件,缓存文件将会保存在 D 盘 Cache 目录下,若没有 Cache 文件夹,会自动创建该文件夹;

注:缓存路径一定要设置为某个独立的文件夹下,切忌与其他文件共用一个目录,如报表的缓存目录跟Web服务器工程的相同,则会删除 Web 服务器工程下的内容。

3. 插件卸载说明编辑

由于目前是和老的共享数据集共用配置,如不希望再使用插件,建议还原关闭掉模板开启的缓存后再进行卸载,或直接关闭“系统管理”——“缓存”页面中的“开启缓存”按钮,否则可能出现卸载后模板依旧在使用共享数据集的问题。

注意:无需卸载插件,效果等同于禁用或卸载插件

企业微信截图_1599124825143.png