页面树结构
转至元数据结尾
转至元数据起始

1 概述

 缓存是指可以进行高速数据交换的存储器,它先于内存CPU交换数据,因此速率很快。数据模型的缓存主要起到以下作用:提高数据加载速度、减少服务器负载和提升用户查询体验。

2 模型缓存介绍

选项内容
缓存策略

默认选项:系统配置项;可以选择 禁用缓存、启动缓存。

如果是禁用缓存,每次取数都会重新取数。 如果是 启用缓存 则取缓存数据。

禁用缓存

数据模型不管是 抽取 还是 直连 模式  禁用缓存 :

  • cube定义和维度成员继续缓存,从数据库中加载结果集数据的sql不缓存。
  • 更新模型、重抽数据 自动清理缓存
  • 如果 清理缓存 同时会清理 cube定义和维度成员 的缓存。
  • 如果是抽取模式,设置 禁用缓存 没有意义;所以抽取的时候都认为是启用缓存,同时产品本身在更新抽取时是会清空缓存。
  • 不同用户,如果角色一样,设置行权限一样,会使用同一个缓存。

如果在报表层,比如仪表盘:

  • 同一个组件的内容,引用到其他报表,会使用一个缓存;
  • 同数据不同组件,会使用同一个缓存
  • 清单表滚动加载,分页数据不会重新发送加载数据请求
  • 相同的筛选组合,重复查看只会生成一次缓存;不同的筛选器组合会重新生成缓存,并且重新请求数据。
启用缓存

数据模型不管是 抽取 还是 直连 模式 启用缓存 :

  • 直接启用,如果不触发清理服务器缓存的话,缓存一直存在。
  • 当数据模型的缓存对象已经满了时,再来一个新的数据模型对象,最近最少用的对象会自动清掉。
  • 点击 运维设置/系统选项 的 “清空缓存”可以一起清理引擎的缓存。
  • 更新模型或重抽会自动清理缓存。

如果在报表层,比如仪表盘:

  • 真的无缓存,每次都取最新数据。


2.1 清除指定模型的缓存

  通过接口定时清除具体某个/几个模型的缓存:

① 接口方法全限定名:
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);


  • 无标签