Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pentaho 蒙德里安模式,数据和表示的分离_Pentaho_Mondrian - Fatal编程技术网

Pentaho 蒙德里安模式,数据和表示的分离

Pentaho 蒙德里安模式,数据和表示的分离,pentaho,mondrian,Pentaho,Mondrian,我一直在尝试构建一个Mondrian模式,专门用于Pentaho 5.0(我不确定这个版本在这里有多重要)。我似乎反复遇到的一个问题是,如何控制数据的表示与数据本身。让我举个例子来说明 想象一个立方体,如:(D表示维度,H表示层次,L表示级别) 如果我们考虑一下《时代周刊》的成员,我相信我们都会同意他们是《时代周刊》,2008年、2009年、2010年、2011年、2012年、2013年。让我们继续看time.month。这里的事情变得有趣起来。我们是用数字还是文字来表示时间、月份?为什么不两者

我一直在尝试构建一个Mondrian模式,专门用于Pentaho 5.0(我不确定这个版本在这里有多重要)。我似乎反复遇到的一个问题是,如何控制数据的表示与数据本身。让我举个例子来说明

想象一个立方体,如:(D表示维度,H表示层次,L表示级别)

如果我们考虑一下《时代周刊》的成员,我相信我们都会同意他们是《时代周刊》,2008年、2009年、2010年、2011年、2012年、2013年。让我们继续看
time.month
。这里的事情变得有趣起来。我们是用数字还是文字来表示时间、月份?为什么不两者兼得呢

Mondrian提供了一种指定成员名称以及成员“标题”的方法,它提供了与成员名称不同的表示值。伟大的但是,如果我提供一个标题,那么在Pentaho中,您只能看到标题。永远不要使用原始成员名称。我如何让我的用户选择更合适的

月级别(以及日级别,以及任何具有多个级别的层次结构)会引起另一个混乱源。如果月份表示为12个值中的一个(此处数字或文字没有区别),则实际成员值为
time.[2012].[1],time.[2012].[2],…,time.[2012][12],time.[2013].[1],…
。因此,对于6月(第6个月),有许多成员,如
…,time.[2009].[6],time.[2010].[6],time.[2011].[6],…
。因此,如果显示成员列表,并且仅包含成员名称的月份部分,那么我们将看到
1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,
。你不能区分相等的月份。你说:“也包括年份栏。”。是的,这是有道理的,但是Pentaho在其他地方没有提供这样做的选项,例如在过滤对话框中。我的想法是在成员的标题中包括这一年,这样你就可以看到
2012年6月
,而不仅仅是
6月
6月
。不幸的是,这也不太理想。如果层次结构的每个级别都存在(假设我们当天也遵循此模式),那么您的每一行看起来都像
2012年| 2012年6月| 2012年6月13日|您的度量值
。这当然是愚蠢的。但在Pentaho钻取一份报告时,很容易出现这种情况

我们的第二维度也有类似的问题。想象一下世界货币类型的数据集。有三个字母的ISO标准货币代码和官方货币名称。这两个值是1:1,并且完全相互依赖。每一个都是唯一的钥匙。两者之间没有实际的层级关系。我把它们简单地看作是同一数据段的两种不同表示。这里最大的障碍是,如果它们不在同一层次结构中,那么Pentaho可以自由地将它们放置在相反的轴上。这使得看起来很可笑的报告如下:

     United States Dollar | Canadian Dollar | Euro | ...
USD |               12345 |               - |    - | 
CAD |                   - |           12345 |    - |
EUR |                   - |               - | 1234 |
...
当你想要简洁的时候,代码是非常好的。然而,也许你正在处理一个涉及几种不常见货币的特定情况,你不想让报告读者不得不查找更模糊代码的含义。我探讨了
元素的使用,但Pentaho再次缺乏灵活性,因为必须显示成员列才能同时显示属性值。如果名称是代码成员的属性,则无法在报告中仅显示货币名称而不包括代码,这是多余的

最终,我希望有某种机制来控制数据的表示,或者在模式设计中有某种技术,为最终用户在Pentaho中进行分析带来合理、连贯的体验。

这是很常见的

关于财产——你不能在analyzer中重新订购它们,这很烦人——它们似乎是二等公民。由于它们仍然不被支持或在赛库中显示,这通常意味着它们无论如何都不能被使用。然而,在您的示例中,这确实是对属性的预期正确使用-事实上是一个很好的描述

所以有一个解决方案,但它不是超干净的。您可以根据用户首选项定义不同的层次结构,然后使用基于角色的安全性对最终用户隐藏一个或另一个层次结构

我所做的主题的一个变体是让管理员级、高级和初学者级访问相同的多维数据集,在这些多维数据集中,您可以根据权限看到不同的级别和层次结构

我还没来得及深入了解蒙德里安,这可能会改善这里的情况,因为现在一切都只是一种属性——但我不是100%确定


最后,我会明确地提出支持(听起来你有一个支持合同),看看能做些什么改进。把jira贴在这里,我一定会投赞成票

如果你通过了那堵文字墙,谢谢你!我想现在你已经解决了其中的一些问题。我有兴趣阅读你对它的看法。
     United States Dollar | Canadian Dollar | Euro | ...
USD |               12345 |               - |    - | 
CAD |                   - |           12345 |    - |
EUR |                   - |               - | 1234 |
...