2014-04-01 84 views
0

Tableau專家您好!OLAP Cube數據源中Tableau中計算度量的性能不佳

我對Tableau相當陌生,目前正在處理與OLAP多維數據集連接的報表。但是,我用我創建的一些計算出來的度量值得到了一些奇怪的表現。

我在這一點上的查詢是非常基本的 - 我已經得到了訂單號,這是粒度的最低級別,我通過當前日期的輸入日期過濾數據。然後我在那裏得到了一個測量值,這是淨價格,總共查詢返回了大約200個結果。

我然後創建一個計算度量以下公式:

CASE sign([Price Net]) when 1 then 1 else 0 end 

當我然後把它納入報告,它工作正常,並返回以秒爲正確的值。然後,我創建了下面的公式,基本上返回相同的值:

IF [Price Net] <=0 then 1 else 0 end 

然而,在此計算字段的表現極差 - 它實際上只是用完了內存試圖運行它。它幾乎就好像第二個公式是查詢整個多維數據集而不是查詢中指定的過濾器,而不是第一個查詢只適用於過濾的記錄。

在多維數據集的Tableau中創建計算度量值時,有什麼我們應該注意的嗎?兩次計算之間我看不出什麼不同?

我從平面數據源創建計算度量的經驗表明,計算應該可以正常工作!

感謝

+0

你使用哪種品牌的魔方?分析服務?蒙德里安? COGNOS? – FrankPl

+0

其分析服務多維數據集 - 任何原因不同的多維數據集可能會更好/更糟? – user3485250

+0

也許你可以通過在多維數據集級別實現這個計算度量來獲得更好的性能。 – FrankPl

回答

0

這是非常奇怪事實上,我相信情況不是一個簡單的,如果在大多數應用中效率較低的程序。我不知道這兩個例程是如何在Tableau中設計的,但可能使用sign([something])比[something]本身更容易,因爲sign([something])只有3個可能的值。這不是因爲結果與計算機做同樣的事情相同。

順便說一句,降的情況下,僅使用符號([報價網])直接作爲您的措施,應該節省一些更多的內存和時間來處理

+0

感謝您的迴應 - 至少我沒有做任何明顯錯誤的事情!僅供參考 - 符號查詢做我想要的,但我想我也想寫更復雜的if,因此可能不得不重新考慮這一點。我們可以計算立方體中的度量,但老實說,我希望畫面能夠在前端測量這種性質:( – user3485250

+0

完全同意。在我完全探索此工具之前,不想急於下結論。我不知道Tableau中的數據源是如何構建的,但計算的字段在性能和侷限性方面讓我感到失望(後者可能是由於我迄今爲止的無知)。計算不是窗口計算(因此給出相同的結果,不管你使用什麼樣的視圖)都應該被計算一次並作爲數據存儲在數據庫中(並且只有在基礎被更新時才重新計算),這應該會提升性能 – Inox

0

我知道我有點太遲了,但對於那些將Tableau連接到OLAP數據源的人來說,瞭解Table 130中描述的Tableau限制非常重要,您需要了解this document

This white paper闡述了一些問題。

結論課:將Tableau連接到OLAP源根據靈活性和易用性折衷查詢速度:在連接到關係源時可以實時創建的許多計算度量值必須在多維數據集本身中實現或者使用MDX,這可以減少Tableau Report的非技術業務用戶的易用性。