我已经创建了XMLA来以增量的方式处理多维数据集。它使用类型"ProcessUpdate“表示维度,使用"ProcessAdd”表示度量分区。我面临着一个关于不同计数的问题。让我举一个例子:
Order Id CustId Amount
1 C1 100.00
2 C2 200.00
3 C3 300.00
4 C4 400.00
5 C5 500.00如果我们浏览多维数据集,SSAS显示订单总数为1500.00,所有订单的不同客户计数为5。现在添加新的事实记录,用于取消一个订单,例如:
Order Id CustId Amount
3 C3 -300.00经过增量处理后,订单总和显示为1200.00,这是正确的。但所有订单的不同客户计数保持不变,并显示5个,这是不正确的。我可以理解,行在增量过程中被追加,该过程适用于求和操作,但无法计算distinct计数。我想知道是否有任何方法可以在以增量方式处理的同时从所有聚合操作中删除订单#3。
发布于 2013-08-05 21:55:56
不同的客户计数保持在5是正确的,因为它不知道负300意味着客户不应该显示。如果您完全处理了多维数据集,它将显示为5个不同的客户。
这与增量处理无关,而是与SSAS如何处理不同的计数有关--它只是“在事实表中计算不同的客户Ids”,C3在那里有两次,销售额分别为300和-300。
您需要重新考虑如何处理此问题,最好是在加载数据仓库的阶段。您可以在MDX中通过不包括销售额为零或更少的任何人来处理它,但是整个不同的计数计算将在MDX中完成,并且将会非常非常慢。
https://stackoverflow.com/questions/18056510
复制相似问题