1. 概述编辑
1.1 版本
报表服务器版本 | JAR 包版本 | 插件版本 |
---|---|---|
10.0 | 2020-05-04 | V1.3.1 |
1.2 应用场景
对于报表执行速度而言,数据源取数性能是存在较大影响的一环。
如果对于数据的实时性要求不高能接受半小时左右的更新频率,使用缓存是一种既能降低服务器和数据库压力,又能提升报表执行速度的方案。
1.3 功能简介
「抽数缓存」插件通过将数据集查询的结果缓存,再次进行相同查询时,无需再次连接数据库重新查询数据,直接使用缓存,达到资源复用,减少取数时间从而提高了报表的展现速度。同时通过定时抽取更新缓存数据,提升数据的准确性。
2. 插件介绍编辑
2.1 安装插件
插件下载:本文暂不提供下载链接,请需要的客户联系技术支持获取。技术支持联系方式:QQ「800049425」、电话「400-811-8890」。
设计器插件安装方法请参见: 设计器插件管理
服务器安装插件方法请参见: 服务器插件管理
2.2 对比共享数据集的优势
抽数缓存 | 共享数据集 |
---|---|
支持精准推荐缓存适用模板,批量一键开启缓存 | 需要每个数据集单独开启,自行识别适合的模板 |
支持资源占用自定义配置,限制最大资源占用,断绝对其他系统业务的影响 | 仅支持设置缓存个数,占用内存磁盘等不可控,可能影响业务使用 |
支持实时监控缓存资源占用及访问情况 | 不支持 |
支持用户工具栏显示数据更新时间并可手动获取最新数据 支持管理员手动停止缓存更新或立即更新最新数据 | 不支持,需要等到超时自动失效 |
支持定时更新,确保缓存始终延续并定期获取新数据 | 不支持,超时失效后访问重新生成 |
支持与报表自身的填报功能联动,填报后自动失效填报相关的缓存 | 不支持,发生填报后缓存相关数据依旧不变,可能出现数据不一致的问题 |
不常用或占用资源较多的缓存,动态存储至磁盘或直接停止自动更新,检测到缓存活跃将再次进入自动更新缓存状态 | 仅支持“最近使用”、“最不常使用”、“先进先出”三种简单策略 |
3. 插件使用编辑
「抽数缓存」插件安装后在平台中增加「管理系统>增强缓存」目录,当管理员进入数据决策系统,点击「管理系统>增强缓存」,界面如下图所示:
3.1 缓存模板推荐
首次安装「抽数缓存」插件并使用时,建议使用缓存模板推荐功能进行检测适合开启缓存的模板
点击开始分析后,插件将根据系统的历史运行数据进行分析,并推荐可能适合使用缓存的模板
检测后将把推荐的模板以多选树形式展示,客户可快速给对应推荐模板开启缓存,如下图所示:
3.2 缓存模板管理
用于展示采用服务器中模板的缓存开启状态,可以手动进行模板的批量开启及关闭,通过缓存模版推荐开启的模板也将在这展示。
3.3 缓存配置修改
缓存配置页面中,可以对服务器的缓存进行设置,如下图所示:
各设置项介绍如下表所示:
设置项 | 说明 |
---|---|
开启缓存 | 总开关,关闭后服务器将停止使用缓存 |
显示缓存提示 | 用于设置是否在模板预览的工具栏处显示缓存提示(无工具栏则不显示),包括手动更新数据按钮和缓存生成时间,点击更新数据后可在预览时手动更新用到的缓存,用于用户在觉得数据不准确时立即进行更新,如下图所示: |
允许缓存到磁盘 | 开启时使用磁盘+内存进行缓存,关闭时仅使用内存进行缓存 |
缓存内存空间限制 | 用于限制缓存占用服务器内存空间的最大值 |
缓存磁盘空间限制 | 用于限制缓存占用服务器磁盘空间的最大值 |
缓存更新规则 | 按频率间隔更新: 按照设定频率进行更新,支持开启缓存规则自动优化,开启后将在合理范围内动态调整缓存更新间隔,避免出现大量缓存同时更新。 定时更新: 支持具体时间(如"07:00:00")或CRON表达式(如"0 50 8 * * ?"表示每天上午8:50) 注:频率间隔更新在单一缓存被访问两次之后开始更新,开启缓存规则自动优化后将在被访问五次之后开始更新,主要用于避免低使用率的缓存占用资源 |
注:由于缓存主要是用于提升取数性能,缓存较大数据量会造成服务器资源紧张,因此目前限制最大缓存数据量为50W(行*列)
3.4 运行监控
如下图所示:
在此页面中可以一览目前使用缓存,并对其进行增删改等管理操作。其中包括缓存目前系统资源占用情况,缓存个数,缓存的来源模板、数据连接、具体缓存sql、数据量、缓存方式、缓存命中情况和具体的缓存更新情况等。
1)自动更新:
为避免出现无价值的缓存,浪费服务器和数据库资源,缓存存在 5 次的门槛,当数据查询达到 5 次,才会进入自动更新,避免用户出现「首次访问慢」的场景,每日定时更新的无门槛。
可以通过按钮对单一或全部的缓存进行清除,对单一或全部的缓存进行中止(不再使用缓存)
或对单一缓存进行立即更新
2)暂停抽数/恢复抽数:
表示暂停/恢复所有缓存自动更新。
3)暂停缓存/恢复缓存:
表示停止使用缓存,功能等同于缓存的总开关。
4)缓存计划明细:
点击「下次更新时间」可查看当前缓存的计划明细,如下图所示:
各字段介绍如下表所示:
字段 | 说明 |
---|---|
策略开启 | 目前默认是,表示会存取都走缓存,定时更新也会根据配置和访问情况执行 |
是否自动调整 | 目前默认是,表示更新间隔、是否自动更新都会根据访问情况自动调整 |
是否开启监控缓存访问 | 默认是,表示缓存的访问记录(访问命中更新失效的时间)都会被统计 |
策略开始时间 | 缓存及策略第一次访问被创建的时间 |
上次更新时间 | 缓存的上次更新时间 |
存活时间 | 缓存在超过存活时间后会被失效 |
终止前空闲时长 | 缓存超过这个时长没有被访问,就会被终止(终止表示清除此缓存、访问数据以及策略) |
更新间隔 | 缓存自动更新的间隔 |
终止时间 | 缓存及其策略被终止的时间,如果sql包含某些关键字认为不适合缓存,将会被设置终止时间 |
连续更新不同次数 | 每次自动更新的缓存数据都变化的次数 |
连续更新相同次数 | 每次自动更新的缓存数据都不变化的次数 |
连续更新失败次数 | 连续自动更新失败的累计次数,达到10次将会被终止 |
3.5 数据集单独缓存设置
系统中可能会存在一些模板的数据更新时间与其他大部分模板存在差异,不适合使用统一的设置进行抽数缓存,此时可以对相应数据集进行单独缓存设置
「抽数缓存」插件安装后,在数据集编辑面板中,将替代原本共享数据集显示新的缓存设置。
1)采用服务器设置时,将使用服务器默认的缓存策略,可以看到对应的缓存策略及缓存是否默认开启,但不允许修改。如下图所示:
2)为该数据集单独设置时,允许单独设置此数据集是否使用缓存以及策略配置。
3)对于存在较多数据集的模板,一个个修改缓存设置较花时间,可以通过数据集工具栏的按钮实现快速开启/关闭。如下图所示:
点击按钮将批量修改当前模板的数据集为单独设置,并开启缓存。
点击按钮将批量修改当前模板的数据集为单独设置,并关闭缓存。
4. 示例场景编辑
大屏/驾驶舱场景往往需要对多个指标同时进行分析,可能一个模板内存在大量的sql,就算每个sql的耗时不高,但十几个甚至更多指标的sql耗时累加起来,就会导致最后整个页面需要比较久的时间才能出来
如果再加上sql复杂,整体大屏/驾驶舱的预览耗时将更久
而这类页面往往还是领导、管理层常常使用的,对性能要求会更加严格
并行取数是一个优化办法,但由于取数先后关系、线程限制等因素的影响,只是能优化一部分取数性能。
可以直接将大屏/驾驶舱的对应模板开启抽数缓存,将模板内所有取数都缓存起来,保证大屏/驾驶舱的加载速度。