2014-04-01 30 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的非技术业务用户的易用性。