...
通过优化数据模型的缓存机制,可以加速报表的访问,降低数据库的压力。
信息 |
---|
1、数据模型设置的缓存有效期只针对:仪表盘、透视分析、即席查询、模型查询。 3、数据模型里面表/查询的数据预览、整个模型数据预览不走数据模型设置的缓存失效时间。 |
2 功能介绍
在数据模型中可以设置缓存策略。如果是1、在模型的工具栏上增加了”清空缓存“按钮,可以基于单个模型进行清空缓存,每次清空缓存的操作都会被记录在操作日志中。
2、在数据模型中可以设置缓存策略。如果是禁用缓存,每次取数都会重新取数。 如果是 启用缓存 在缓存有效期内,如果查询字段或值(比如筛选器的条件)未改动,再次访问时将直接从缓存中获取数据。
缓存策略:系统配置项、 3、缓存策略:系统配置项、 禁用缓存、启动缓存3个选项, 默认选项:系统配置项。
选项 | 内容 |
---|---|
启用缓存 | 启用缓存 在缓存有效期内,如果查询字段或值未改动,再次访问时将直接从缓存中获取数据。 1、抽取模式下:
2、直连模型下:
|
禁用缓存 | 1、禁用缓存:不管是 抽取 还是 直连 模式每次请求都会发送新的请求,重新读取数据。
2、抽取模式下:
3、如果在报表层,比如仪表盘:
|
系统配置 | 默认读取运维设置/系统选项/性能优化/数据模型中的设置项值,跟着系统选项改变。 |
3 清除指定模型的缓存
通过接口定时清除具体某个/几个模型的缓存:
代码块 |
---|
① 接口方法全限定名:
smartbix.smartbi.AugmentedDataSetForVModule.clearCacheByDatasetId(String)
② 接口调用:
1、前端调用
var util = jsloader.resolve('freequery.common.util');util.remoteInvoke(‘AugmentedDataSetForVModule’,’clearCacheByDatasetId’,['I82808081017f72bb72bb395f017f72bb395f0000'])
1、 后端调用
AugmentedDataSetForVModule.getInstance().clearCacheByDatasetId方法
③ 接口参数及其说明:
● id: String 数据模型id。
● 无返回值
④ 调用示例:
AugmentedDataSetForVModule.getInstanceSAugmentedDataSetForVModule.getInstance().clearCacheByDatasetId("I82808081017f72bb72bb395f017f72bb395f0000"); |
计划任务调用示例
代码块 | ||
---|---|---|
| ||
//下面一行填数据模型的ID
var datasetId = "Iff80808101815cc05cc0a2d50181677795bc00bd";
Packages.smartbix.smartbi.AugmentedDataSetForVModule.getInstance().clearCacheByDatasetId(datasetId); |
...