我使用 Mondrian 作为我的服务器 olap 引擎。
我有一个场景,我的一些维度数据正在发生变化。发生这种情况时,我想清除蒙德里安缓存。
我无法理解如何获得蒙德里安的缓存控制。
我有一个对OlapConnection
对象的引用,但我找不到任何可以为 CacheControl 提供句柄的方法
有什么建议么?
约西
我使用 Mondrian 作为我的服务器 olap 引擎。
我有一个场景,我的一些维度数据正在发生变化。发生这种情况时,我想清除蒙德里安缓存。
我无法理解如何获得蒙德里安的缓存控制。
我有一个对OlapConnection
对象的引用,但我找不到任何可以为 CacheControl 提供句柄的方法
有什么建议么?
约西
bhuang3 给出的答案是对的。要从 olap4j 连接访问缓存控制:
OlapConnection.unwrap(mondrian.rolap.RolapConnection.class).getCacheControl(null)
好吧,您可以使用以下 API 来刷新多维数据集的缓存
mondrian.olap.CacheControl cacheControl = connection.getCacheControl(null);
mondrian.olap.Schema schema = connection.getSchema();
mondrian.olap.Cube cube = schema.lookupCube(cubeName, false);
mondrian.olap.CacheControl.CellRegion cellRegion = cacheControl.createMeasuresRegion(cube);
cacheControl.flush(cellRegion);
或者您可以刷新模式缓存
cacheControl.flushSchemaCache();
或者,请阅读此文档以获取更多详细信息。