我不知道如何在SSAS中为复杂的情况配置多维数据集,我可以简化如下:
请注意,使用此数据结构,每个销售可能与0、1或2个组织相关联,具体取决于促销部门和客户。因此,如果我按组织报告销售数量,总销售额不一定等于销售总数。
你会如何构造这个立方体?我不认为简单地建立一个来自Sales->促销->Organisation和另一个来自Sales->Customer->Organisation的引用关系是行不通的,因为SSAS不知道使用哪条路径(当然也不知道它应该在这两条路径之间聚集在一起)。我是否创建了两个组织维度?我是否将组织与其他维度断开,并定义了组织与销售之间的某种直接联系?我是否废除了组织维度,并将组织细节作为促销和客户的属性?
发布于 2015-01-13 08:50:18
您是正确的,因为SSAS将无法处理通过一个路径上的提升和另一个路径上的客户引用组织维度。当您试图构建多维数据集时,这将给您一个错误。
由于每一次销售都可以与0,1或2个组织相关,我建议在组织维度和销售事实之间建立一个桥接表(多到多)。这假设您在每个Sale-事务上都有一个唯一的ID,这样您就可以在Sale-事实(不需要在多维数据集中可见)上创建一个事实维度。
在ETL流中构造桥接器表。它应该只包含两个列,这些列将组织ID与销售ID联系起来。任何销售ID都不应超过两个组织ID。您的最终模型应该如下所示:
DimCustomer <---.
|
FactSale <---- BridgeSaleOrganisation ----> DimOrganisation
|
DimPromotion <---´在SSAS的维度使用中,您使用FactSale作为中间表,在DimOrganisation和BrdigeSaleOrganisation之间建立了多到多的关系。一旦这是到位,过滤销售由组织维度,将给予您所有的销售属于该组织通过桥牌表,无论他们是通过促销或客户。
更多的例子,许多许多建模,看看这篇优秀的论文由“古鲁”,马可拉索和阿尔贝托法拉利。
https://stackoverflow.com/questions/27855175
复制相似问题