MONDRIAN:刷新维度缓存

Posted

技术标签:

【中文标题】MONDRIAN:刷新维度缓存【英文标题】:MONDRIAN: Flushing the dimension cache 【发布时间】:2012-02-09 20:49:18 【问题描述】:

我在the Mondrian documentation 中读过这篇文章:

刷新维度缓存

应用程序可能还想修改维度表。 Mondrian 目前不允许应用程序控制成员的缓存...

我有一个动态尺寸的仓库。我尝试了flushMember(Member, boolean children)flushMembers(CellRegion),以完成刷新,但没有成功(可能我不知道如何调用它们)。

我使用的是 mondrian 3.0.4,所以我的问题是:新版本的 mondrian API 是否支持轻松刷新维度缓存?

或者在mondrian 3.0.4有什么办法吗?

【问题讨论】:

您是在 JSP servlet 还是在独立的 Java 类中使用这些 API? 【参考方案1】:

您始终可以在 XML 定义中的 <Cube> 元素上设置 cache="false"

【讨论】:

【参考方案2】:

根据您链接到的文章:

Mondrian 目前不允许应用程序控制成员的缓存

你甚至在你的引文中包含了这个(!)。

这是明确的,您目前不能这样做(至少不是以官方支持的方式)。据我了解,您提到的方法是将来添加此功能时可能提供的那种 API 的示例。它们目前不存在。

【讨论】:

【参考方案3】:

刷新整个架构缓存对我有用,因为没有办法只为成员执行此操作。禁用多维数据集架构中的缓存机制过于侵入性,并且存在巨大的性能问题。

CacheControl.flushSchema(catalogSchema);

【讨论】:

我们应该从哪里调用这个方法?

以上是关于MONDRIAN:刷新维度缓存的主要内容,如果未能解决你的问题,请参考以下文章

Mondrian MDX 中的最后日期和时间

mondrian mdx 过滤日期维度中年份级别的集合

SQL Power Architect Mondrian Schema:创建两个具有相同维度的多维数据集

Mondrian系列-星型和雪花模型-概述

Mondrian系列-星型和雪花模型-概述

Pentaho/Mondrian:如何为登录用户设置“动态角色”?