我一直在尝试构建一个专门用于Pentaho 5.0的Mondrian模式(我不确定版本在这里是否很重要。)我似乎反复遇到的一个问题是,如何控制数据的呈现与数据本身。让我举一个例子来说明。
想象一个立方体,例如:(D表示维度,H表示层次结构,L表示级别)
D: time
H: default
L: year
L: month
L: day
D: currency
H: default
L: name
L: code
如果我们考虑time.年
的成员,我相信我们都会同意他们将是…,2008,2009,2010,2011,2012,2013,…
。所以让我们继续time.月
。这里事情变得有趣了。我们将time.月
表示为数字还是单词?为什么不两者兼而有之呢?
Mondrian提供了一种方法来指定成员的名称以及成员的“标题”,它提供了与成员名称不同的表示值。太好了!但是,如果我提供标题,那么在Pentaho中,您只能看到标题。永远不会看到原始成员名称。我如何让我的用户选择更合适的名称?
我们的第二维度也有类似的问题。想象一下世界货币类型的数据集。有3个字母ISO标准货币代码和一个官方货币名称。这两个值是1:1并且完全相互依赖。每个都是唯一的键。两者之间没有实际的层次关系。我只是将它们视为同一条数据的两种不同表示。这里最大的障碍是,如果它们不在同一个层次结构中,那么Pentaho可以自由地允许您将它们放在相反的轴上。这使得看起来很荒谬的报告如下:
United States Dollar | Canadian Dollar | Euro | ...
USD | 12345 | - | - |
CAD | - | 12345 | - |
EUR | - | - | 1234 |
...
当您希望简洁时,代码非常出色。但是,也许您正在处理涉及几种不常见货币的特定情况,并且您不想让报告读者不得不查找更晦涩代码的含义。我探索了的使用
最终,我希望有一些机制来控制数据的呈现,或者模式设计中的一些技术,为最终用户在Pentaho中进行分析带来明智、连贯的体验。
这很常见。
关于属性——你不能在分析器中重新排序它们,这很烦人,它们似乎是二等公民。由于它们在Saiku中仍然不受支持或显示,这通常意味着它们无论如何都不能使用。然而,在你的例子中,这确实是对属性的预期正确使用——事实上是一个很好的描述!
所以有一个解决方案,但它不是非常干净。您可以根据用户偏好定义不同的层次结构,然后使用基于角色的安全性对最终用户隐藏一个或另一个层次结构。
我所做的一个主题的变体是让管理员级别、高级级别和初学者级别访问相同的多维数据集,在这些多维数据集中,您可以根据权限看到不同的级别和层次结构。
我没有时间去蒙德里安,这可能会改善这里的情况,因为现在一切都只是一个属性——但我不是100%确定。
最后,我肯定会在支持下提出这个问题(听起来你有一个支持合同),看看可以做些什么改进。在这里发布jira,我一定会支持它!