2013-04-10 66 views
1

我已经编辑过来改写这个问题:混合不同级别的数据

我们想要存储贸易和分贸易数据。所以,给数据的想法,我们有这样的输入数据:

贸易数据(关系存储)

| TradeKey1 | TradeLevelMeasure1 | 
| TradeKey2 | TradeLevelMeasure2 | 

子贸易数据

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

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

如果我们使用关系商店创建与上述布局相同的商店(以Sub-Trade商店为主ACTIVE_PIVOT商店)并基于TradeKey加入它们,那么我们最终会在贸易级别上错误地进行汇总措施,因为交易被复制到每个子贸易条目的立方体中。 (例如TradeLevelMeasure1的正确值是正方体的两倍,因为它存在于两个子交易条目的立方体中)

我们提出的解决方案是使用单个商店,并添加一个新维度以指示交易水平(贸易或子贸易)。因此,我们得到这样的:

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

这样,我们应该能够正确地聚合,然后在需要时对亚贸易措施扩大。

这是否看起来像一个可行的解决方案,还是有更好的方法来实现这一目标?

回答

0

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

在贸易层面定义的度量仅在交易中累计,而子贸易度量仅在子行业中有意义。

ActivePivot分布式体系结构提供了一种实时联合异构多维数据集的优雅方式:ActivePivot Polymorphic Distribution

简而言之,您将定义两个简单的立方体,一个在交易层面,一个在交易层面,一个在子交易层面,仅聚合子贸易量度。 ActivePivot Polymorphic Distribution将它们即时合并到虚拟立方体中,加入共享维度,同时还可以在每个立方体中提供独特的度量。

您将在Quartet FS User Group 2012的http://www.youtube.com/watch?v=VnZoelJulM4中找到ActivePivot Distributed Architecture的演示文稿。对于文档,您可以从http://support.quartetfs.com/confluence/display/AP4/ActivePivot+Distributed+Architecture开始。