1

我已经编辑以重新表述这个问题:

我们要存储贸易和子贸易数据。所以为了给出数据的概念,我们有这样的输入数据:

贸易数据(关系存储)

| TradeKey1 | TradeLevelMeasure1 |
| TradeKey2 | TradeLevelMeasure2 |

子交易数据

| TradeKey1 | SubTradeId1 | Measure2 | Measure3 |
| TradeKey1 | SubTradeId2 | Measure2 | Measure3 |    
| TradeKey2 | SubTradeId1 | Measure2 | Measure3 |    

我们正在寻找在 AP 中对此建模的最佳解决方案。

如果我们使用关系存储创建 2 个与上述布局相同的存储(子贸易存储是主要的 ACTIVE_PIVOT 存储)并基于 TradeKey 加入它们,那么我们最终会在贸易级别度量上错误地聚合,因为交易被复制到每个子交易条目的多维数据集中。(例如,TradeLevelMeasure1 具有两倍的正确值,因为它存在于两个子交易条目的立方体中)

我们提出的一个解决方案是使用单个商店,并添加一个新维度来指示交易级别(Trade 或 SubTrade)。所以我们得到这样的东西:

| Trade    | TradeKey1 | TradeLevelMeasure1 |             |          |          |
| SubTrade | TradeKey1 |                    | SubTradeId1 | Measure2 | Measure3 |
| SubTrade | TradeKey1 |                    | SubTradeId2 | Measure2 | Measure3 |
| Trade    | TradeKey2 | TradeLevelMeasure2 |             |          |          |
| SubTrade | TradeKey2 |                    | SubTradeId1 | Measure2 | Measure3 |

这样,我们应该能够正确汇总,然后在需要时扩展子贸易措施。

这似乎是一个可行的解决方案,还是有更好的方法来实现这一目标?

4

1 回答 1

0

您的数据集包含维度不同的度量,因此不属于单个多维数据集及其固定拓扑。

在贸易层面定义的措施仅在贸易之间汇总,而子贸易措施仅在子贸易的背景下才有意义。

ActivePivot 分布式架构提供了一种优雅的方式来动态联合异构多维数据集:ActivePivot 多态分布

简而言之,您将定义两个简单的多维数据集,一个在贸易级别,包含贸易措施,另一个在子贸易级别,仅聚合子贸易措施。ActivePivot 多态分布将它们即时合并到一个虚拟多维数据集中,加入共享维度,同时还提供每个多维数据集中的唯一度量。

您可以在http://www.youtube.com/watch?v=VnZoe ​​lJulM4 找到来自 Quartet FS User Group 2012 的 ActivePivot 分布式架构演示文稿。对于文档,您可以从http://support.quartetfs.com/confluence/display/AP4/ActivePivot+Distributed+Architecture开始。

于 2013-04-11T11:42:20.427 回答