我一直在嘗試構建一個專門用於Pentaho 5.0的Mondrian模式(我不確定這裏的版本是否重要)。我似乎一再遇到一個問題,是如何控制數據與數據本身的呈現。讓我舉一個例子來說明。Mondrian模式,數據和演示的分離
想象一個立方體,例如:(d的尺寸,H爲層次結構,L的水平)
D: time
H: default
L: year
L: month
L: day
D: currency
H: default
L: name
L: code
如果我們想想time.year
成員,我敢肯定,我們會都同意,他們將是..., 2008, 2009, 2010, 2011, 2012, 2013, ...
。所以我們來看看time.month
。這裏變得有趣。我們是否代表time.month
作爲數字或單詞?爲什麼不都有?
Mondrian提供了一種方法來指定成員的名稱以及成員的「標題」,它提供了與成員姓名不同的呈現值。大!但是,如果我提供標題,則在Pentaho中,您只能看到標題。從來沒有原始的成員名稱。我怎樣才能讓我的用戶選擇哪一個更合適?
月份級別(以及日級別和任何具有多級別的層次結構)都會導致另一個混淆源。如果月份表示爲12個值之一(數字或字詞在這裏沒有差別),那麼實際的成員值是time.[2012].[1], time.[2012].[2], ..., time.[2012][12], time.[2013].[1], ...
。因此,對於六月(第六個月),有許多成員,如..., 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沒有提供這樣做的選項,例如在過濾對話框中。我的想法是在會員的標題中包含年份,而不僅僅是6
或June
,您會看到2012 June
。不幸的是,這還不夠理想。如果每個等級都存在,(假設我們也在這一天遵循這個模式),那麼你的每一行看起來都像2012 | 2012 June | 2012 June 13 | your_measure
。這當然是愚蠢的。但是,在鑽入Pentaho的報告時,這可能會很容易出現。
我們的第二個維度有類似的問題。想象一下世界貨幣類型的數據集。有3個字母的ISO標準貨幣代碼和官方貨幣名稱。這兩個值是1:1並且完全相互依賴。每一個都是唯一的關鍵。兩者之間沒有實際的等級關係。我將它們看作是同一段數據的兩種不同表示。這裏最大的障礙是,如果它們不在同一層次,那麼Pentaho允許你將它們放置在相反的軸上。這使得看起來很荒謬的報告,如:
United States Dollar | Canadian Dollar | Euro | ...
USD | 12345 | - | - |
CAD | - | 12345 | - |
EUR | - | - | 1234 |
...
當你希望簡潔,代碼是優秀的。但是,也許您正在處理涉及多種非常規貨幣的特定情況,而您不希望報告閱讀者不得不查看更晦澀的代碼的含義。我探索了<Property>
元素的使用,但Pentaho再次缺乏靈活性,因爲您必須顯示成員列以顯示屬性值。如果該名稱是代碼成員的屬性,則無法在報表中僅顯示貨幣名稱,而不包括代碼,這是多餘的。
最終,我希望有一些機制來控制數據的呈現,或者是模式設計中的某些技術,以便爲最終用戶在Pentaho中進行分析提供明智,一致的體驗。
如果您是通過該文本牆壁,謝謝! –
我想現在你解決了其中的一些問題。會有興趣閱讀你的看法。 – Raffael