混合不同级别的数据

时间:2013-04-10 10:56:55

标签: activepivot

我已编辑以重新解释此问题:

我们希望存储贸易和子交易数据。因此,为了给出数据的概念,我们输入如下数据:

交易数据(关系商店)

| TradeKey1 | TradeLevelMeasure1 |
| TradeKey2 | TradeLevelMeasure2 |

子贸易数据

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

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

如果我们使用关系存储来创建具有与上面相同布局的2个商店(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 |

通过这种方式,我们应该能够正确聚合,然后在需要时扩展子交易措施。

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

1 个答案:

答案 0 :(得分:0)

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

在交易层面定义的衡量指标只在交易中汇总,而子交易指标只在子交易的背景下才有意义。

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

简而言之,您将定义两个简单的多维数据集,一个在交易级别,具有交易度量,另一个在子交易级别,仅汇总子交易度量。 ActivePivot Polymorphic Distribution会将它们动态合并到虚拟多维数据集中,加入共享维度,同时在每个多维数据集中提供独特的度量。

您将在http://www.youtube.com/watch?v=VnZoelJulM4的Quartet FS用户组2012中找到ActivePivot分布式架构的演示文稿。有关文档,您可以从http://support.quartetfs.com/confluence/display/AP4/ActivePivot+Distributed+Architecture开始。