我已编辑以重新解释此问题:
我们希望存储贸易和子交易数据。因此,为了给出数据的概念,我们输入如下数据:
交易数据(关系商店)
| 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 |
通过这种方式,我们应该能够正确聚合,然后在需要时扩展子交易措施。
这看起来是一个可行的解决方案,还是有更好的方法来实现这个目标?
答案 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开始。