2013-10-21 25 views
1

我一直在嘗試構建一個專門用於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沒有提供這樣做的選項,例如在過濾對話框中。我的想法是在會員的標題中包含年份,而不僅僅是6June,您會看到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中進行分析提供明智,一致的體驗。

+0

如果您是通過該文本牆壁,謝謝! –

+0

我想現在你解決了其中的一些問題。會有興趣閱讀你的看法。 – Raffael

回答

2

這很常見。

關於屬性 - 這很煩人,你不能在分析儀中重新排序它們看起來像是二等公民。而且由於它們在Saiku中仍然不被支持或顯示,它通常意味着它們無法使用。然而在你的例子中,這確實是一個有意使用的財產 - 事實上是一個很好的描述!

所以有一個解決方案,但它不是超級乾淨。您可以根據用戶首選項定義不同的層次結構,然後使用基於角色的安全性來隱藏最終用戶的一個或其他層次結構。

我對此做過的一個主題變體是讓管理員級別,高級別和初學者級別訪問相同的多維數據集,您可以根據權限查看不同的級別和層次結構。

我沒有時間進入Mondrian4,這可能會改善這裏的一切,因爲現在一切都只是一個屬性 - 但我不是100%確定的。

最後,我會明確提出支持(聽起來像你有一個支持合同),看看可以做出什麼樣的改進。張貼傑拉在這裏,我肯定會upvote它!