从OLAP多维数据集数据源中Tableau中的计算度量表现不佳

时间:2014-04-01 13:50:49

标签: olap tableau

Hello 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中创建计算度量时,我们应该注意什么?我无法在两次计算之间看到很多不同的东西?

我在平面数据源上创建计算度量的经验表明计算应该可以正常工作!

由于

2 个答案:

答案 0 :(得分:0)

确实非常奇怪,我认为在大多数应用中,CASE是一种效率较低的例程。我不知道这两个例程是如何在Tableau中设计的,但是也许使用sign([something])比[something]本身更容易,因为sign([something])只有3个可能的值。这不是因为结果与计算机做同样的事情是一样的。

顺便说一句,放弃CASE,直接使用sign([Price Net])作为衡量标准,它应该节省更多的内存和时间来处理

答案 1 :(得分:0)

我知道我在游戏方面有点迟了,但是对于那些将Tableau连接到OLAP数据源的人来说,了解this document

中描述的Tableau限制非常重要

This white paper阐述了一些问题。

结论课:将Tableau连接到OLAP源可以提高查询速度,避免灵活性和易于实现:连接到关系源时可以即时创建的许多计算度量必须在多维数据集本身中实现,或者使用MDX,这可以减少Tableau报告对非技术业务用户的拖累易用性。